基本单片机C程序编程分析.ppt
《基本单片机C程序编程分析.ppt》由会员分享,可在线阅读,更多相关《基本单片机C程序编程分析.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1TM1单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 第五部分第五部分 基本单片机基本单片机C C程序分析程序分析1 1、任务:点亮、任务:点亮LEDLED灯灯在在KeilKeil软件编辑窗口输软件编辑窗口输入以下程序:入以下程序:#include sbit P3_0=P30;void main(void)while(1)P3_0=0;2TM2单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 2 2、任务:闪烁灯、任务:闪烁灯#include void delay02s(void)unsig
2、ned char i,j,k;for(i=20;i0;i-)for(j=20;j0;j-)for(k=248;k0;k-);void main(void)while(1)P3_0=0;delay02s();P3_0=1;delay02s();要求:前面例子是让要求:前面例子是让LEDLED灯亮,灯亮,现在实现现在实现LEDLED灯的闪烁。灯的闪烁。3TM3单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 3 3、任务:按键识别、任务:按键识别要求:要求:通过按下一次按键通过按下一次按键INT0INT0,使小灯,使小灯D1 D1 亮灭交替变换。亮
3、灭交替变换。实验原理:实验原理:只要判断只要判断P3.2 的电平就可的电平就可以知道按键是否被按下;以知道按键是否被按下;而在按键按下的过程中,而在按键按下的过程中,由于机械抖动,将产生干由于机械抖动,将产生干扰,电平高低变化扰,电平高低变化。可以可以采用软件滤波的方法去除采用软件滤波的方法去除这些干扰信号,在程序设这些干扰信号,在程序设计时,一旦发现计时,一旦发现P3.2 为低为低电平,进入按键判断状态,电平,进入按键判断状态,软件延时软件延时10-20ms,从而避,从而避开了干扰信号区域,再重开了干扰信号区域,再重新检测新检测P3.2 状态,看按键状态,看按键是否真的已经按下。是否真的已经
4、按下。4TM4单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 参考程序参考程序(传统的延时消抖按键程序)(传统的延时消抖按键程序)include sbit INT_0=P32;/定定义义按按键键的的输输入端入端 sbit D1=P30;/D1小灯定小灯定义义void delay10ms(void)/延延时时程序程序 unsigned char i,j;for(i=20;i0;i-)for(j=248;j0;j-);key()/按按键键判断程序判断程序 if(INT_0=0)/判断是否按下判断是否按下键盘键盘 delay10ms();/延延时时
5、,软软件去干件去干扰扰if(INT_0=0)/确确认认按按键键按下按下 D1=!D1;/D1亮亮灭灭交替交替变变化化 while(INT_0=0);/按按键锁键锁定定,每按一次每按一次D1只只变变化一次化一次 5TM5单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:main()while(1)/永永远远循循环环,扫扫描判断按描判断按键键是否按下是否按下 key();/对对于此于此处处CPU只按只按键键判断判断 一直一直扫扫描描;课后请实践:1.1.用两个按键来控制用两个按键来控制D1 D1 的亮灭;的亮灭;2.2.使用一个按键
6、,控制小灯亮的顺序使用一个按键,控制小灯亮的顺序D1D2D3D4D8D7D1D2D3D4D8D7 D0 D0 亮重复循环;亮重复循环;6TM6单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 4 4、任务:数码管静态显示、任务:数码管静态显示要求:要求:用数码管用数码管LED LED 的个位,静态显示数字的个位,静态显示数字“4”4”字样;字样;注意:因采用共阴数码显示管,故此图因采用共阴数码显示管,故此图P0P0口还应接口还应接1K1K或或10K10K的排阻作为上拉电阻。的排阻作为上拉电阻。7TM7单片机单片机C语言编程基础语言编程基础 成都
7、理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 参考程序:参考程序:#include sbit GE=P13;code unsigned char seg7code10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/显显示段示段码码main()unsigned char display_date=4;/定定义义并并赋值赋值要要显显示的数据示的数据while(1)P0=seg7codedisplay_date;/查查表表,输输出出 GE=0;/P13为为低低电电平平,相当于把数相当于把数码码管的管的4H端接地端接
8、地课后请实践:1.1.让显示的数据动起来,比如做一个让显示的数据动起来,比如做一个0 0 到到9 9 的秒表(用软件延时);的秒表(用软件延时);2.2.和按键判断程序结合,用按键控制数字变化;和按键判断程序结合,用按键控制数字变化;8TM8单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 5 5、任务:数码管动态显示、任务:数码管动态显示要求:要求:用数码管用数码管LED LED 的显示四位数据,比如显示数字的显示四位数据,比如显示数字“1234”1234”;参考程序:参考程序:#include sbit qian=P10;sbit bai=
9、P11;sbit shi=P12;sbit ge=P13;code unsigned char seg7code10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/显显示段示段码码void Delay(unsigned int tc)/延延时时程序程序while(tc!=0)/如果如果tc为为0则终则终止延止延时时unsigned int i;/局部正整数局部正整数变变量量 ifor(i=0;i100;i+);/执执行行400次将耗次将耗时时1毫秒毫秒tc-;/tc计计数减一数减一9TM9单片机单片机C语言编程基础语言
10、编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:void Led(int date)/显显示函数示函数qian=0;/P1.0输输出低出低电电平,平,选选通千位数通千位数P0=seg7codedate/1000;/取出千位数,取出千位数,查查表,表,输输出。出。Delay(10);/延延时时qian=1;/销隐销隐bai=0;/P1.1输输出低出低电电平,平,选选通百位数通百位数P0=seg7codedate%1000/100;/取出百位数,取出百位数,查查表,表,输输出。出。Delay(10);/延延时时bai=1;/销隐销隐shi=0;/P1.2输输出
11、低出低电电平,平,选选通十位数通十位数P0=seg7codedate%100/10;/取出十位数,取出十位数,查查表,表,输输出。出。Delay(10);/延延时时shi=1;/销隐销隐ge=0;/P1.3输输出低出低电电平,平,选选通十位数通十位数P0=seg7codedate%10;/取出个位数,取出个位数,查查表,表,输输出。出。Delay(10);ge=1;10TM10单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:main()int display_date=1234;/定定义义并并赋值赋值要要显显示的数据示的数据
12、while(1)Led(display_date);/调调用用显显示函数示函数显显示数据示数据display_date 11TM11单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 上述数码管动态显示程序的另一种写法上述数码管动态显示程序的另一种写法参考程序:参考程序:#include unsigned char datebit=0 xfe,0 xfd,0 xfb,0 xf7;/存储数码管的位选值存储数码管的位选值unsigned char tvdate=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x
13、07,0 x7f,0 x6f,;unsigned int disdata;/定义要显示的数据定义要显示的数据unsigned char disdat4;/存储要显示的四位数据存储要显示的四位数据void delay(time)unsigned char i,j;for(j=0;jtime;j+)for(i=0;i250;i+);display(void)unsigned char k;disdata=1234;/显示显示1234 12TM12单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:disdat0=disdat/1000
14、;/取出千位取出千位disdat1=disdat%1000/100;/取出百位取出百位disdat2=disdat%100/10;/取出十位取出十位disdat3=disdat%10;/取出个位取出个位for(k=0;k4;k+)/显显示四位数据示四位数据 P0=tvdatedisdatk;/送出要送出要显显示数据的段示数据的段码码P1=datebitk;/P2位位选选delay(10);/延延时时 main()while(1)display();这种写法比上一种复杂这种写法比上一种复杂,占用空间要多一些占用空间要多一些.但是使但是使用方便用方便,可以在此基础上方便的加上比如显示小数可以在此基
15、础上方便的加上比如显示小数点点,指定某位数码管闪烁等。指定某位数码管闪烁等。课后思考:课后思考:如何用软件延时来做一个如何用软件延时来做一个0 0 到到60 60 秒的计数器吗?秒的计数器吗?13TM13单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 6 6、任务:、任务:4X44X4矩阵键盘识别矩阵键盘识别要求:要求:用用AT89S51 AT89S51 的并行口的并行口P2 P2 接接44 44 矩阵键盘,以矩阵键盘,以P3.0P3.0P3.3 P3.3 作输入线,作输入线,以以P3.4P3.4P3.7 P3.7 作输出线;在每一个数码管上
16、显示每个按键的作输出线;在每一个数码管上显示每个按键的“0 0F”F”序号。序号。实验原理实验原理 每个按键有它的行值和列值,行每个按键有它的行值和列值,行值和列值的组合就是识别这个按值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分键的编码。矩阵的行线和列线分别通过两并行接口和别通过两并行接口和CPU CPU 通信。通信。键盘处理程序的任务是:确定有键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,无键按下,判断哪一个键按下,键的功能是什么;还要消除按键键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按行口中,一个输出
17、扫描码,使按键逐行动态接地,另一个并行口键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按馈信号共同形成键编码而识别按键,通过软件查表,查出该键的键,通过软件查表,查出该键的功能。功能。14TM14单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 键盘识别的两种方法键盘识别的两种方法逐行扫描法逐行扫描法:(1 1)首先判断有无键按下:令矩阵行线输出全)首先判断有无键按下:令矩阵行线输出全0 0信号,检测信号,检测列线状态,若有一列电平为低,则有键按下。列线状态,若有一列电平为低,则有
18、键按下。(2 2)确定闭合键位置:依次将各行线置为低电平,逐行检)确定闭合键位置:依次将各行线置为低电平,逐行检测各列线的电平状态,若某列为低,则该行线和列线交叉处测各列线的电平状态,若某列为低,则该行线和列线交叉处按键就是闭合键。按键就是闭合键。线反转法线反转法:(1 1)令矩阵键盘列线输出全)令矩阵键盘列线输出全0 0信号,行线作为输入接口接收信号,行线作为输入接口接收信号,可判断按键处于哪一行。信号,可判断按键处于哪一行。(2 2)令矩阵键盘行线输出全)令矩阵键盘行线输出全0 0信号,列线作为输入接口接收信号,列线作为输入接口接收信号,可判断按键处于哪一列。信号,可判断按键处于哪一列。(
19、3 3)将输入信号相或后形成键盘的唯一键码。)将输入信号相或后形成键盘的唯一键码。15TM15单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 程序程序:(线反转法):(线反转法)#include unsigned char code seg7code=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;unsigned char k;void delay10ms(void)/延延时时程序程序 unsign
20、ed char i,j;for(i=20;i0;i-)for(j=248;j0;j-);void Getch()unsigned char X,Y,Z;P2=0 xff;P2=0 x0f;/先先对对P2置数置数 行行扫扫描描if(P2!=0 x0f)/判断是否有判断是否有键键按下按下 delay10ms();/延延时时,软软件去干件去干扰扰 if(P2!=0 x0f)/确确认认按按键键按下按下X=P2;16TM16单片机单片机C语言编程基础语言编程基础 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:X=P2;/保存行保存行扫扫描描时时有有键键按下按下时时状状态态P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 单片机 程序 编程 分析
限制150内