基本单片机c程序编程分析

基本单片机c程序编程分析

ID:20640152

大小:405.50 KB

页数:31页

时间:2018-10-14

基本单片机c程序编程分析_第1页
基本单片机c程序编程分析_第2页
基本单片机c程序编程分析_第3页
基本单片机c程序编程分析_第4页
基本单片机c程序编程分析_第5页
资源描述:

《基本单片机c程序编程分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五部分基本单片机C程序分析1、任务:点亮LED灯在Keil软件编辑窗口输入以下程序:#includesbitP3_0=P3^0;voidmain(void){while(1){P3_0=0;}}2、任务:闪烁灯#includevoiddelay02s(void){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}voidmain(void){while(1){P3_0=0;delay02s();P3_0=1;delay02s();}}要求:前面例

2、子是让LED灯亮,现在实现LED灯的闪烁。3、任务:按键识别要求:通过按下一次按键INT0,使小灯D1亮灭交替变换。实验原理:只要判断P3.2的电平就可以知道按键是否被按下;而在按键按下的过程中,由于机械抖动,将产生干扰,电平高低变化。可以采用软件滤波的方法去除这些干扰信号,在程序设计时,一旦发现P3.2为低电平,进入按键判断状态,软件延时10-20ms,从而避开了干扰信号区域,再重新检测P3.2状态,看按键是否真的已经按下。参考程序(传统的延时消抖按键程序)includesbitINT_0=P3^2;//定义按键的输入端sbitD1=P3^0;//D1

3、小灯定义voiddelay10ms(void)//延时程序{unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}key()//按键判断程序{if(INT_0==0)//判断是否按下键盘{delay10ms();//延时,软件去干扰if(INT_0==0)//确认按键按下{D1=!D1;//D1亮灭交替变化}while(INT_0==0);//按键锁定,每按一次D1只变化一次}续前页:}main(){while(1)//永远循环,扫描判断按键是否按下{key();//对于此处CPU只按键判断一直扫描;}}课后请实践:1.用两

4、个按键来控制D1的亮灭;2.使用一个按键,控制小灯亮的顺序D1→D2→D3→D4→┅→D8→D7→→┅D0亮重复循环;4、任务:数码管静态显示要求:用数码管LED的个位,静态显示数字“4”字样;注意:因采用共阴数码显示管,故此图P0口还应接1K或10K的排阻作为上拉电阻。参考程序:#includesbitGE=P1^3;codeunsignedcharseg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码main(){unsignedchardisplay_date=

5、4;//定义并赋值要显示的数据while(1){P0=seg7code[display_date];//查表,输出GE=0;//P1^3为低电平,相当于把数码管的4H端接地}}课后请实践:1.让显示的数据动起来,比如做一个0到9的秒表(用软件延时);2.和按键判断程序结合,用按键控制数字变化;5、任务:数码管动态显示要求:用数码管LED的显示四位数据,比如显示数字“1234”;参考程序:#includesbitqian=P1^0;sbitbai=P1^1;sbitshi=P1^2;sbitge=P1^3;codeunsignedcharseg7code[

6、10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码voidDelay(unsignedinttc)//延时程序{while(tc!=0)//如果tc为0则终止延时{unsignedinti;//局部正整数变量ifor(i=0;i<100;i++);//执行400次将耗时1毫秒tc--;//tc计数减一}}续前页:voidLed(intdate)//显示函数{qian=0;//P1.0输出低电平,选通千位数P0=seg7code[date/1000];//取出千位数,查表,输出。Delay(10);//延

7、时qian=1;//销隐bai=0;//P1.1输出低电平,选通百位数P0=seg7code[date%1000/100];//取出百位数,查表,输出。Delay(10);//延时bai=1;//销隐shi=0;//P1.2输出低电平,选通十位数P0=seg7code[date%100/10];//取出十位数,查表,输出。Delay(10);//延时shi=1;//销隐ge=0;//P1.3输出低电平,选通十位数P0=seg7code[date%10];//取出个位数,查表,输出。Delay(10);g

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

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

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