完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/**********************1000hz的pwm******************/
#include "reg52.h" #define uchar unsigned char #define uint unsigned int ***it flag=P1^3; ***it k1=P3^1; ***it k2=P3^0; uint number; uint speed=10; uint pwm=100; /**************************设置延时函数**********************/ void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } /***********************设置定时器0控制函数*****************/ void init() { TMOD=0X01; TH0=0XFF; TL0=0XF6; ET0=1; TR0=1; EA=1; } /***********************加速**********************/ void speed_add() { if(k1==0) { delayms(2); if(k1==0) { pwm+=speed; if(pwm>=100) { pwm=0; } } } } /************************减速************************/ void speed_dec() { if(k2==0) { delayms(2); if(k2==0) { pwm-=speed; if(pwm<=0) { pwm=0; } } } } void main() { init(); flag=1; while(1) { speed_add(); speed_dec(); if(number==pwm) { flag=!flag; } if(number>100) { flag=!flag; number=0; } } } void pwm_time() interrupt 1 { TH0=0XFF; TL0=0XF6; number++; } |
|
|
|
只有小组成员才能发言,加入小组>>
3322 浏览 9 评论
3000 浏览 16 评论
3497 浏览 1 评论
9070 浏览 16 评论
4090 浏览 18 评论
1190浏览 3评论
613浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2341浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1899浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 12:12 , Processed in 1.211871 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号