按键设置占空比PWM控速Word文档下载推荐.docx
- 文档编号:21904743
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:42.31KB
按键设置占空比PWM控速Word文档下载推荐.docx
《按键设置占空比PWM控速Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《按键设置占空比PWM控速Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
charflag=0;
//按键的一个标志按一次键加1,
ucharkey=0;
//存放键值
uchart0;
//存放占空比()
uinttimer1;
uintcount;
uintperiod;
uintt=0;
/******************************************************
子函数声明
********************************************************/
voiddelay10ms(void);
//10ms延时软件消抖的声明
voiddelayxms(uintx);
//延时xms的函数的声明
voidmatrixscan(void);
//键盘检测函数的声明
voidTime1Config(void);
//定时器设置函数的声明
voidset(void);
//设置占空比的函数
voiddisplay(void);
//数码管动态显示函数声明
主函数
******************************************************/
voidmain()
{
Time1Config();
while
(1)
{
set();
matrixscan();
display();
t0=duty[0]*10+duty[1];
}
}
/********************************************************
子函数定义
********************************************************/
/*延时10ms函数的定义(无入口参数无返回值)*/
voiddelay10ms()
uchara,b,c;
for(a=1;
a>
0;
a--)
for(b=38;
b>
b--)
for(c=130;
c>
c--);
/*延时xms函数的定义(入口参数是无符号整形数x的值是多少延时几毫秒,无返回值)*/
voiddelayxms(uintx)//误差0us
unsignedchara,b,c;
for(;
x>
x--)
for(c=1;
c--)
for(b=142;
for(a=2;
a--);
/*数码管动态显示函数的定义(无入口参数无返回值)*/
voiddisplay(void)
P0=table[duty[0]];
shi=0;
delayxms(10);
shi=1;
P0=table[duty[1]];
ge=0;
ge=1;
/*3×
5键盘扫描函数的定义(无入口参数无返回值)*/
voidmatrixscan()
uchartemp;
keyport=0xfe;
//第1行通低电平(1111,1110)
temp=keyport;
//读P3电平
temp=temp>
>
3;
//右移三位
if(temp!
=0x1f)//检测不等说明高5位中有低电平,有键按下
delay10ms();
//去抖延时
temp=keyport;
temp=temp>
//右移三位
if(temp!
=0x1f)//检测不等说明高5位中有低电平,有键按下
{
temp=keyport;
//读P3电平
flag++;
switch(temp)//根据temp分类
{
case0xf6:
//11110110
key=0;
break;
case0xee:
//11101110
key=1;
break;
case0xde:
//11011110
key=2;
case0xbe:
//10111110
key=3;
case0x7e:
//01111110
key=4;
default:
}
temp=temp>
while(temp!
=0x1f)//松键检测(加了这一段松开才给key赋值,不加这句按了就变)
temp=keyport;
//读P3电平
temp=temp>
//右移三位
}
keyport=0xfd;
//第2行通低电平(11111101)
=0x1f)//检测不等说明高5位中有低电平,有键按下
{
//读P3电平
{
switch(temp)
case0xf5:
//11110101
key=5;
case0xed:
//11101101
key=6;
case0xdd:
//11011101
key=7;
case0xbd:
//10111101
key=8;
case0x7d:
//01111101
key=9;
//右移三位
while(temp!
=0x1f)//松键检测(加了这一段松开才给key赋值,不加这句按了就变)
temp=keyport;
keyport=0xfb;
//第3行通低电平(11111011)
//延时消抖,
=0x1f)//检测不等
case0xf3:
//11110011
key=10;
case0xeb:
//11101011
key=11;
case0xdb:
//11011011
key=12;
case0xbb:
//10111011
key=13;
case0x7b:
//01111011
key=14;
=0x1f)//检测不等
/*定时器设置函数的定义(无入口参数无返回值)*/
voidTime1Config()
TMOD|=0x10;
//设置定时计数器工作方式1为定时器
/*定时器赋初始值,12MHZ下定时*/
TH1=0xFE;
TL1=0x0C;
ET1=1;
//开启定时器1中断
EA=1;
//开总中断
TR1=1;
//开启定时器
voidset(void)
while(key==14)//Reset键按下
flag=0;
while(key==14)//当Reset键按下
/*********************设置十位************************/
while(flag==0)
{
/*数码管十位闪烁*/
if(timer1<
1200)
{
P0=table[0];
shi=0;
}
else
shi=1;
/*************/
matrixscan();
//键盘扫描
if(key<
=9)//如果是0~9数字键
temp[0]=key;
//保存十位
if(key==10)//cancel键按下
flag=0;
break;
//出设置界面
if(key>
=11)//如果是sure,delete,clear或Reset
}
}
/*************************设置个位*****************************/
while(flag==1||flag>
=8)//flag=1时第一次输入个位,flag>
=8第2,3,4...输入个位
{
shi=0;
//十位的位选
P0=table[temp[0]];
//十位的段选
delayxms(10);
//延时显示
shi=1;
//关闭位选
/*******实现个位闪烁******/
1200&
&
flag<
8)
ge=0;
delayxms(10);
ge=1;
if(timer1>
=1200&
/**两位都输入后显示十位个位**/
flag>
=8)
P0=table[temp[1]];
/*****************************/
=9&
flag==2)//如果个位第一次按下数字键0~9
temp[1]=key;
//保存个位
flag=8;
if(key==10)//取消操作键
if(key==11&
flag==2)//如果个位第一次输入的是确定键
flag=1;
=8)//如果设置完毕,按下确定键
duty[0]=temp[0];
duty[1]=temp[1];
if(key==12)//按下退格键
if(flag==2)//如果清除十位
{
key=14;
flag=0;
}
if(flag>
=8)//如果清除个位
flag=1;
}
if(key==13)//按下清空键
key=14;
if(flag==0)//返回到设置界面重新来过
voidTime1(void)interrupt3//3为定时器1的中断号1定时器0的中断号0外部中断12外部中断24串口中断
//重新赋初值
timer1++;
count++;
period++;
/**************产生pwm*************/
if(period>
=100)//pwm周期0.5ms*100
period=0;
if(period<
t0)//t0决定pwm占空比,进而改变直流电机的速度
PWM=1;
else
PWM=0;
/***************控制LED**************/
if(t0==0)//占空比=0,LED灭
LED=0;
count=0;
t=(100-t0)*20;
if(count>
=t)
count=0;
LED=~LED;
/************************************/
if(timer1>
2400)//与数码管闪烁显示有关变量
timer1=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 按键 设置 PWM 控速
![提示](https://static.bdocx.com/images/bang_tan.gif)