电子系统设计——第5章以单片机为核心的智能型电子系统设计1(讲稿)ppt课件.ppt
《电子系统设计——第5章以单片机为核心的智能型电子系统设计1(讲稿)ppt课件.ppt》由会员分享,可在线阅读,更多相关《电子系统设计——第5章以单片机为核心的智能型电子系统设计1(讲稿)ppt课件.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1TM成都理工大学工程技术学院电子信息工程系成都理工大学工程技术学院电子信息工程系第第5 5章章 以单片机为核心的智能型电子系统设计以单片机为核心的智能型电子系统设计授课人:石坚授课人:石坚 (讲师)(讲师) 2TM2电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 1 1、AT89S5xAT89S5x单片机开发板应用单片机开发板应用3TM3电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 1 1、AT89S5xAT89S5x单片机开发板设计及应用单片机开发板设计及应用(1)(1)任务:点亮任务:点亮LEDLED灯灯在在K
2、eilKeil软件编辑窗口输软件编辑窗口输入以下程序:入以下程序:#include sbit P3_0=P30;void main(void) while(1) P3_0=0; 4TM4电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 Easy51Pro v2.0 软件的使用软件的使用硬件连接硬件连接5TM5电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 Easy51Pro v2.0 软件的使用软件的使用软件操作软件操作6TM6电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (2)A
3、T89S51(2)AT89S51单片机最小系统介绍单片机最小系统介绍单片机要工单片机要工作必须具备作必须具备以下条件:以下条件:(1 1)+5V+5V电电源;(源;(2 2)起振电路;起振电路;(3 3)复位)复位电路;电路;(4 4)一块)一块正常的单片正常的单片机。机。注意:注意:另外P0 口要加上拉电阻,才有足够的驱动能力驱动外围器件工作;EA接高电平,表示单片机使用的是片内FLASH ROM。7TM7电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (3 3)任务:闪烁灯)任务:闪烁灯#include void delay02s(void) unsi
4、gned 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灯的闪烁。灯的闪烁。8TM8电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (4 4)任务:流水灯)任务:流水灯要求:要求:做广告灯的左移右移,八个发光二极管分别接在单片机的P3.0P3.7 接口上,输出“0”
5、时,发光二极管亮,左移右移按D1D2D3D4D8D7D6 D1 亮,重复循环。9TM9电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (4 4)任务:流水灯)任务:流水灯程序:程序:#include unsigned char i; unsigned char temp; void delay(void) /延时子程序延时子程序 unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void) /主程序主程序 while(1) /循环条件永远为真,以
6、下程序一直执行下去。循环条件永远为真,以下程序一直执行下去。 10TM10电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页: temp=0 x7f; P3=temp; /直接对直接对I/O口口P3赋值,使赋值,使P3.0输出低点平。输出低点平。delay(); /延时延时for(i=1;i1)|0 x80; P3=temp;delay(); temp=0 xfe; P3=temp;delay(); for(i=1;i8;i+) /实现广告灯的从实现广告灯的从D7到到D1移动移动 temp=(temp1)|0 x01; P3=temp;dela
7、y(); 11TM11电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 思考:如何实现更为复杂的花样灯?思考:如何实现更为复杂的花样灯?参考程序:参考程序:#include reg51.h#define uchar unsigned charconst uchar tab= 0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f, /下移下移 0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe, /上移上移 0 xef,0 xbd,0 xdb,0 xfe, /两边向中间移两边向中间移 0
8、 xdb,0 xbd,0 xef, /中间向两边移中间向两边移 0 xaa,0 x55,0 xaa,0 x55,0 xaa,0 x55, /1357,2468交替交替3次次 0 xf0,0 x0f,0 xf0,0 x0f, /1234,5678交替交替2次次 0 x33,0 xcc,0 x33,0 xcc,0 x33,0 xcc, /1256,3478交替交替3次次 0 x00 ; /结束码结束码uchar t=0;/以下初始化子函数以下初始化子函数/void sys_init(void) TMOD=0 x01; TH0=0 xd8; 12TM12电子系统设计电子系统设计 成都理工大学工程技术
9、学院成都理工大学工程技术学院 石坚石坚 续前页:续前页: TL0=0 xef; ET0=1; EA=1; TR0=1;/以下主函数以下主函数/void main(void) uchar i=0; P3=tabi;i+; sys_init(); while(1) while(t100); t=0; if(tabi=0 x00) i=0; P3=tabi;i+; 续左页:续左页:/以下定时器以下定时器0中断函数中断函数/void timer0(void) interrupt 1 TR0=0; TH0=0 xd8; TL0=0 xef; t+; TR0=1;13TM13电子系统设计电子系统设计 成都
10、理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (5 5)任务:按键识别)任务:按键识别要求:要求:通过按下一次按键通过按下一次按键INT0INT0,使小灯,使小灯D1 D1 亮灭交替变换。亮灭交替变换。实验原理:实验原理:只要判断只要判断P3.2 的电平就可的电平就可以知道按键是否被按下;以知道按键是否被按下;而在按键按下的过程中,而在按键按下的过程中,由于机械抖动,将产生干由于机械抖动,将产生干扰,电平高低变化扰,电平高低变化。可以可以采用软件滤波的方法去除采用软件滤波的方法去除这些干扰信号,在程序设这些干扰信号,在程序设计时,一旦发现计时,一旦发现P3.2 为低为低电平,进入按键
11、判断状态电平,进入按键判断状态,软件延时,软件延时10-20ms,从,从而避开了干扰信号区域,而避开了干扰信号区域,再重新检测再重新检测P3.2 状态,看状态,看按键是否真的已经按下。按键是否真的已经按下。14TM14电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 参考程序:参考程序:include sbit INT_0=P32; /定义按键的输入端定义按键的输入端 sbit D1=P30; /D1小灯定义小灯定义void delay10ms(void) /延时程序延时程序 unsigned char i,j; for(i=20;i0;i-) for(j=
12、248;j0;j-); key( ) /按键判断程序按键判断程序 if(INT_0=0) /判断是否按下键盘判断是否按下键盘 delay10ms( ); /延时延时,软件去干扰软件去干扰if(INT_0=0) /确认按键按下确认按键按下 D1=!D1; /D1亮灭交替变化亮灭交替变化 while(INT_0=0);/按键锁定按键锁定,每按一次每按一次D1只变化一次只变化一次 15TM15电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页: main()while(1) /永远循环永远循环,扫描判断按键是否按下扫描判断按键是否按下 key();
13、/对于此处对于此处CPU只按键判断只按键判断 一直扫描一直扫描;课后请实践:1.1.用两个按键来控制用两个按键来控制D1 D1 的亮灭;的亮灭;2. 2. 使用一个按键,控制小灯亮的顺序使用一个按键,控制小灯亮的顺序D1D2D3D4D8D7D1D2D3D4D8D7D0 D0 亮重复循环;亮重复循环;16TM16电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (6 6)任务:数码管静态显示)任务:数码管静态显示要求:要求:用数码管用数码管LED LED 的个位,静态显示数字的个位,静态显示数字“4”4”字样字样;注意:因采用共阴数码显示管,故此图因采用共阴数
14、码显示管,故此图P0P0口还应接口还应接1K1K或或10K10K的排阻作为上拉电阻。的排阻作为上拉电阻。17TM17电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 参考程序:参考程序:#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)
15、 P0=seg7codedisplay_date; /查表查表,输出输出 GE=0; /P13为低电平为低电平,相当于把数码管的相当于把数码管的4H端接地端接地课后请实践:1.1.让显示的数据动起来,比如做一个让显示的数据动起来,比如做一个0 0 到到9 9 的秒表(用软件延时);的秒表(用软件延时);2.2.和按键判断程序结合,用按键控制数字变化;和按键判断程序结合,用按键控制数字变化;18TM18电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (7 7)任务:数码管动态显示)任务:数码管动态显示要求:要求:用数码管用数码管LED LED 的显示四位数据
16、,比如显示数字的显示四位数据,比如显示数字“1234”1234”;参考程序:参考程序:#include sbit qian=P10;sbit bai=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;/局部正整数变量
17、局部正整数变量 ifor(i=0; i100; i+);/执行执行400次将耗时次将耗时1毫秒毫秒tc-;/tc计数减一计数减一19TM19电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:void Led(int date) /显示函数显示函数qian=0; /P1.0输出低电平,选通千位数输出低电平,选通千位数P0=seg7codedate/1000; /取出千位数,查表,输出取出千位数,查表,输出。Delay(10); /延时延时qian=1; /销隐销隐bai=0; /P1.1输出低电平,选通百位数输出低电平,选通百位数P0=seg7
18、codedate%1000/100; /取出百位数,查表,输出取出百位数,查表,输出。Delay(10); /延时延时bai=1; /销隐销隐shi=0; /P1.2输出低电平,选通十位数输出低电平,选通十位数P0=seg7codedate%100/10; /取出十位数,查表,输出取出十位数,查表,输出。Delay(10); /延时延时shi=1; /销隐销隐ge=0;/P1.3输出低电平,选通十位数输出低电平,选通十位数P0=seg7codedate%10; /取出个位数,查表,输出取出个位数,查表,输出。Delay(10);ge=1;20TM20电子系统设计电子系统设计 成都理工大学工程技
19、术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页:main() int display_date=1234; /定义并赋值要显示的数据定义并赋值要显示的数据 while(1) Led(display_date);/调用显示函数显示数据调用显示函数显示数据display_date 21TM21电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 上述数码管动态显示程序的另一种写法上述数码管动态显示程序的另一种写法参考程序:参考程序:#include unsigned char datebit=0 xfe,0 xfd,0 xfb,0 xf7;/存储数码管的位
20、选值存储数码管的位选值unsigned char tvdate=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,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
21、22TM22电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 续前页:续前页: disdat0=disdat/1000;/取出千位取出千位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) di
22、splay(); 这种写法比上一种复杂这种写法比上一种复杂, ,占用空间要多一些占用空间要多一些. .但是使但是使用方便用方便, ,可以在此基础上方便的加上比如显示小数可以在此基础上方便的加上比如显示小数点点, ,指定某位数码管闪烁等。指定某位数码管闪烁等。课后思考:课后思考:如何用软件延时来做一个如何用软件延时来做一个0 0 到到60 60 秒的计数器吗?秒的计数器吗?23TM23电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 (8 8)任务:)任务:4X44X4矩阵键盘识别矩阵键盘识别要求:要求:用用AT89S51 AT89S51 的并行口的并行口P2
23、 P2 接接4 44 4 矩阵键盘,以矩阵键盘,以P3.0P3.0P3.3 P3.3 作输入线作输入线,以,以P3.4P3.4P3.7 P3.7 作输出线;在每一个数码管上显示每个按键的作输出线;在每一个数码管上显示每个按键的“0 0F”F”序号序号。 实验原理实验原理 每个按键有它的行值和列值,行每个按键有它的行值和列值,行值和列值的组合就是识别这个按值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分键的编码。矩阵的行线和列线分别通过两并行接口和别通过两并行接口和CPU CPU 通信。通信。键盘处理程序的任务是:确定有键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,无键按下,判
24、断哪一个键按下,键的功能是什么;还要消除按键键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按馈信号共同形成键编码而识别按键,通过软件查表,查出该键的键,通过软件查表,查出该键的功能。功能。24TM24电子系统设计电子系统设计 成都理工大学工程技术学院成都理工大学工程技术学院 石坚石坚 键盘识别的两种方法键盘识别的两种方法逐行扫描法逐行扫描法:(1 1)首先判断有无键
25、按下:令矩阵行线输出全)首先判断有无键按下:令矩阵行线输出全0 0信号,检测信号,检测列线状态,若有一列电平为低,则有键按下。列线状态,若有一列电平为低,则有键按下。(2 2)确定闭合键位置:依次将各行线置为低电平,逐行检)确定闭合键位置:依次将各行线置为低电平,逐行检测各列线的电平状态,若某列为低,则该行线和列线交叉处测各列线的电平状态,若某列为低,则该行线和列线交叉处按键就是闭合键。按键就是闭合键。线反转法线反转法:(1 1)令矩阵键盘列线输出全)令矩阵键盘列线输出全0 0信号,行线作为输入接口接收信号,行线作为输入接口接收信号,可判断按键处于哪一行。信号,可判断按键处于哪一行。(2 2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 系统 设计 单片机 核心 智能型 讲稿 ppt 课件
限制150内