按键设置占空比,PWM控速.doc

按键设置占空比,PWM控速.doc

ID:53874782

大小:58.50 KB

页数:10页

时间:2020-04-10

按键设置占空比,PWM控速.doc_第1页
按键设置占空比,PWM控速.doc_第2页
按键设置占空比,PWM控速.doc_第3页
按键设置占空比,PWM控速.doc_第4页
按键设置占空比,PWM控速.doc_第5页
资源描述:

《按键设置占空比,PWM控速.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/**********************************************************接法:P0段选;P3键盘功能:通过按键设置PWM占空比进而控制电机转速**********************************************************/原理图:程序:#include#include#defineuintunsignedint//下面用uint代替unsignedint(无符号整数)#defineucharunsignedchar//下面用uchar代替unsignedchar(无符号字

2、符型数)#defineGPIO_DIGP0//下面用GPIO_DIG代替P0口,P0口送数码管段选信号#definekeyportP3//keyport代替P3,P3口键盘扫描sbitshi=P2^5;//数码管位选(十位),用shi代替P2^5sbitge=P2^6;//数码管位选(个位)sbitLED=P2^7;//P2^7控制LED闪烁sbitPWM=P1^0;//P1^0输出pwmunsignedcharcodetable[17]={//定义一个数组存放共阴极数码管码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0

3、x7c,0x39,0x5e,0x79,0x71};uchartemp[]={0,0};//临时存放占空比的数组ucharduty[]={0,0};//存放占空比的数组,duty[0]存十位duty[1]存个位charflag=0;//按键的一个标志按一次键加1,ucharkey=0;//存放键值uchart0;//存放占空比()uinttimer1;uintcount;uintperiod;uintt=0;/******************************************************子函数声明********************************

4、************************/voiddelay10ms(void);//10ms延时软件消抖的声明voiddelayxms(uintx);//延时xms的函数的声明voidmatrixscan(void);//键盘检测函数的声明voidTime1Config(void);//定时器设置函数的声明voidset(void);//设置占空比的函数voiddisplay(void);//数码管动态显示函数声明/******************************************************主函数*************************

5、*****************************/voidmain(){Time1Config();while(1){set();matrixscan();display();t0=duty[0]*10+duty[1];}}/********************************************************子函数定义********************************************************//*延时10ms函数的定义(无入口参数无返回值)*/voiddelay10ms(){uchara,b,c;for(a=1;

6、a>0;a--)for(b=38;b>0;b--)for(c=130;c>0;c--);}/*延时xms函数的定义(入口参数是无符号整形数x的值是多少延时几毫秒,无返回值)*/voiddelayxms(uintx)//误差0us{unsignedchara,b,c;for(;x>0;x--)for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}/*数码管动态显示函数的定义(无入口参数无返回值)*/voiddisplay(void){P0=table[duty[0]];shi=0;delayxms(10);shi=1;P0=table[du

7、ty[1]];ge=0;delayxms(10);ge=1;}/*3×5键盘扫描函数的定义(无入口参数无返回值)*/voidmatrixscan(){uchartemp;keyport=0xfe;//第1行通低电平(1111,1110)temp=keyport;//读P3电平temp=temp>>3;//右移三位if(temp!=0x1f)//检测不等说明高5位中有低电平,有键按下{delay10ms();//去抖延时temp=ke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。