单片机最小系统设计.课件_第1页
单片机最小系统设计.课件_第2页
单片机最小系统设计.课件_第3页
单片机最小系统设计.课件_第4页
单片机最小系统设计.课件_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机最小系统设计熟悉单片机基本工作条件;熟悉单片机外围电路的设计及软件编程方法。第一节 51单片机基本工作条件一、电源电路(+5V)第一节 51单片机基本工作条件二、时钟电路 时钟电路为整个单片机系统产生时间基准。是单片机系统必须的部分。XTAL2XTAL1GND8051VCC5VOSCCC第一节 51单片机基本工作条件三、复位电路复位电路是单片机系统必须的,用来为单片机提供正确的复位信号。第二节 单片机系统设计一、LED显示电路1、设计任务:在 P0.0端口上接一个发光二极管 L1,使 L1在不停地一亮一灭,一亮一灭的时间间隔为 0.2秒。第二节 单片机系统设计2、源程序(1)、设计流程图

2、第二节 单片机系统设计(3)、C语言#include sbit L1=P00; void delay02s(void) /延时 0.2秒子程序 unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) while(1) L1=0; delay02s(); L1=1; delay02s(); 第二节 单片机系统设计二、流水灯1、设计任务:设计P0口让8个LED间隔1S从右至左依次闪烁。2、源程序(1)、汇编语言ORG 00HSTART: MOV R2,#8 MOV A,#0FEH

3、SETB CLOOP: MOV P1,A LCALL DELAY RLC A第二节 单片机系统设计DJNZ R2, LOOPMOV R2,#8LOOP1: MOV P1,ALCALL DELAYRRC ADJNZ R2, LOOP1LJMP STARTDELAY: MOV R5,#20 ;D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND第二节 单片机系统设计三、模拟开关灯1、设计任务:监视开关K1(接在P3.7 端口上),用发光二极管L1(接在单片机P0.0 端口上)显示开关状态,如果开关合上,L1 亮,开关打开,

4、L1 熄灭。第二节 单片机系统设计2、电路原理第二节 单片机系统设计4、C语言源程序#include sbit K1=P37;sbit L1=P00;void main(void) while(1) if(K1=0) L1=0; else L1=1; 第二节 单片机系统设计四、多路开关状态指示1、设计任务:AT89S51 单片机的P0.0P0.3 接四个发光二极管L1L4,P3.4P3.7 接了四个开关S5S20,编程将开关的状态反映到发光二极管。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、汇编源程序ORG 00HSTART: J

5、B P3.4, NEXT1CLR P0.0SJMP NEX1NEXT1: SETB P0.0NEX1: JB P3.5,NEXT2CLR P0.1SJMP NEX2NEXT2: SETB P0.1NEX2: JB P3.6,NEXT3CLR P0.2SJMP NEX3NEXT3: SETB P0.2NEX3: JB P3.7,NEXT4CLR P0.3SJMP NEX4NEXT4: SETB P0.3NEX4: SJMP STARTEND第二节 单片机系统设计4、C语言#include void main(void)while(1)if(P3_4=0) P0_0=0;else P0_0=1;i

6、f(P3_5=0) P0_1=0;else P0_1=1;if(P3_6=0) P0_2=0;elseP0_2=1;if(P3_7=0)P0_3=0;elseP0_3=1;第二节 单片机系统设计五、广告灯的设计1、设计任务:利用取表的方法,使端口P0 做单一灯的变化:左移2 次,右移2 次,闪烁2 次(延时的时间0.2秒)第二节 单片机系统设计3、汇编源程序 ORG 0START: MOV DPTR,#TABLE LOOP: CLR A MOVC A, A+DPTR CJNE A,#01H,LOOP1 LJMP STARTLOOP1: MOV P0, A MOV R3, #20 LCALL D

7、ELAY INC DPTR LJMP LOOPDELAY: MOV R4,#20D1: MOV R5,#248 DJNZ R5,$ DJNZ R4,D1 DJNZ R3,DELAY第二节 单片机系统设计RETTABLE: DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 07FH,0BFH,0DFH,0EFHDB 0F7H,0FBH,0FDH,0FEHDB 00H, 0FFH,

8、00H, 0FFHDB 01HEND第二节 单片机系统设计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)if(tablei!=0 x01)P1=tablei;i+;delay();elsei=0;第二节 单片机系统设计六、按键识别方法1、设计任务: 每按下一次开关S20,计数值加1,通过AT89S51 单片机的P0 端口的P0.0 到P0.7 显示出其的二进制计数值。2、电路原理第二节 单片机系统设计第二节 单片机系统设计3、源程序(1)、汇编语言ORG 0ST

9、ART: MOV R1,#00H ;初始化R1为0,表示从0开始计数MOV A,R1 ;CPL A ;取反指令MOV P0,A ;送出P1端口由发光二极管显示REL: JB P3.7,REL ;判断SP1是否按下LCALL DELAY10MS ;若按下,则延时10ms左右JB P3.7,REL ;再判断SP1是否真得按下INC R1 ;若真得按下,则进行按键处理,使MOV A,R1 ;计数内容加1,并送出P1端口由CPL A ;发光二极管显示MOV P0,A ;JNB P3.7,$ ;等待SP1释放SJMP REL ;继续对K1按键扫描DELAY10MS: MOV R6,#20 ;延时10ms

10、子程序L1: MOV R7,#248DJNZ R7,$DJNZ R6,L1RETEND第二节 单片机系统设计(2)、C语言#include unsigned char count;void delay10ms(void)unsigned char i,j;for(i=250;i0;i-)for(j=248;j0;j-);void main(void)while(1)if(P3_7=0)delay10ms();if(P3_7=0)第二节 单片机系统设计count+;if(count=256)count=0;P0=count;while(P3_7=0);第二节 单片机系统设计七、流水灯定时器1、设

11、计任务: 隔1S,通过AT89S51 单片机的P0.0 端口的LED闪亮。2、电路原理第二节 单片机系统设计第二节 单片机系统设计C程序设计#include #define uchar unsigned char#define uint unsigned intsbit d1=P00;uchar tt;void main()uchar temp=0 xfe; tt=0;TMOD=0 x10;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET1=1;TR1=1;第二节 单片机系统设计while(1)if(tt=20)tt=0;d1=!d1;vo

12、id ex() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;tt+;第二节 单片机系统设计八、LED显示1、设计任务:利用AT89S51 单片机的P0 端口的P0.0P0.7 连接到一个共阴数码管的ah 的笔段上,数码管的公共端接地。在数码管上循环显示09 数字,时间间隔0.2 秒。2.系统工作原理 数码管由8个发光二极管构成,可以用来显示数字、字符等,它在家电及工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等,具有显示醒目、直观的有点,如图2.3所示。 图2.3 数码管实物图【项目实践】 数码管实际上是由

13、7个发光管组成“8”字形构成的,加上小数点就是8个。这些段分别由字母a、b、c、d、e、f、g、dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样。例如:显示一个“3”字,那么应当是a亮、b亮、c亮、d亮、e不亮、f不亮、g亮、dp不亮。数码管的内部结构如图2.4所示,其中COM引脚为公共端,用来控制数码管显示的打开或关闭,即起到“使能”作用。 根据公共端接法的不同,数码管又分为共阴极和共阳极两种结构,分别如图2.4(b)和图 2.4(c)所示。 共阳极就是将8个LED的阳极连接到一起组成公共端COM,接正极,当相应字段为低电平“0”时,可以点亮该字段;当相

14、应字段为高电平“1”时,该字段不亮。 共阴极就是将8个LED的阴极连接到一起组成公共端COM,接负极,当相应字段为高电平“1”时,可以点亮该字段;当相应字段为低电平“0”时,该字段不亮。【项目实践】图2.4 数码管内部结构图【项目实践】 表2.1 数码管显示数字的段码表段名称GFAEBDPCD对应段码对应引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0数字01000010084H数字111110101F5H数字20100011046H数字30101010054H数字40010010135H数字5000111001CH数字6000011000CH数字711010101D5H数

15、字80000010004H数字90001010014H【项目实践】第二节 单片机系统设计3、电路原理第二节 单片机系统设计#include #define uchar unsigned char#include sbit we=P20;sbit du=P21;unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char dispcount;void delay02s(void) unsigned char i,j,k;for(i=10;i0;i-)for(j=

16、200;j0;j-)for(k=248;k0;k-);void main(void) while(1) for(dispcount=0;dispcount10;dispcount+) we=1; P0=0 x00; we=0; du=1; P0=tabledispcount; du=0; delay02s(); 第二节 单片机系统设计九、0-9计数器1、设计任务:利用AT89S51 单片机来制作一个手动计数器,在AT89S51 单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P0.0P0.7 接一个共阴数码管,作为09 计数的数显示;第二节 单片机系统设计2、电路原理第二节

17、 单片机系统设计3、源程序(1)、汇编语言ORG 0START: MOV R1,#00H ;初始化R1为0, REL: JB P3.7,REL ;判断SP1是否按下 LCALL DELAY ;若按下,则延时10ms左右 JB P3.7,REL ;再判断SP1是否真得按下 MOV A,R1 MOV DPTR,#TABLE setb P2.0 MOV p0,#00h clr p2.0 MOVC A,A+DPTR MOV P0,A INC R1第二节 单片机系统设计JNB P3.7,$ ;等待SP1释放CJNE R1,#10,RELSJMP START ;继续对K1按键扫描DELAY: MOV R6

18、,#20 ;延时10ms子程序L1: MOV R7,#248 DJNZ R7,$ DJNZ R6,L1 RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH END第二节 单片机系统设计LCALL DELY10MSJB SP1,WAITINC CountMOV A,CountCJNE A,#100,NEXTLJMP STARTDELY10MS: MOV R6,#20D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHE

19、ND第二节 单片机系统设计(2)C语言#include unsigned char count;unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;sbit d1=P20;void delay10ms(void)unsigned char i,j;for(i=250;i0;i-)for(j=248;j0;j-);void main(void)while(1) if(P3_7=0) delay10ms(); if(P3_7=0) 第二节 单片机系统设计count+; if(cou

20、nt=10) count=0; d1=1; P0=0; d1=0; P0=tablecount; while(P3_7=0); 第二节 单片机系统设计十、LED动态显示1、设计任务:利用AT89S51 单片机来显示12345678,用单片机的P0.0P0.7 接一个共阴数码管。第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、程序#include sbit d1=P20;sbit d2=P21;unsigned char code tabledu=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07;unsigned char code ta

21、blewe=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;unsigned char dispcount;void delay02s(void) unsigned char i,j,k;for(i=10;i0;i-)for(j=10;j0;j-)for(k=10;k0;k-);第二节 单片机系统设计void main(void) while(1) for(dispcount=0;dispcount8;dispcount+) d1=1; P0=tablewedispcount; d1=0;d2=1; P0=tabledudispcount; d2

22、=0; delay02s();第二节 单片机系统设计十、44 矩阵式键盘识别1、设计任务: 用AT89S51 的并行口P1 接44 矩阵键盘,以P1.0P1.3 作输入线,以P1.4P1.7作输出线;在数码管上显示每个按键的“0F”序号。第二节 单片机系统设计2、电路原理第二节 单片机系统设计3.程序第二节 单片机系统设计十一、 定时计数器T0 作定时应用技术1、设计任务: 用AT89S51 的定时/计数器T0 产生2 秒钟的定时,每当2 秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2 秒,也就是说,开始L1 指示灯以0.2 秒的速率闪烁,当2 秒定时到来之后,L2 开始以0.2 秒

23、的速率闪烁,如此循环下去。0.2 秒的闪烁速率也由定时/计数器T0 来完成。第二节 单片机系统设计2、程序#include unsigned char tcount2s;unsigned char tcount02s;unsigned char ID;void main(void) TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1);void t0(void) interrupt 1 using 0tcount2s+;if(tcount2s=40) tcount2s=0; ID+;if

24、(ID=4)ID=0; 第二节 单片机系统设计tcount02s+;if(tcount02s=4)tcount02s=0;switch(ID)case 0:P0_0=P0_0;break;case 1:P0_1=P0_1;break;case 2:P0_2=P0_2;break;case 3:P0_3=P0_3;break;第二节 单片机系统设计十二、A/D 转换器基本应用 1、设计任务 从ADC0804 的通道4输入05V 之间的模拟量,通过ADC0804 转换成数字量在数码管上以十进制形成显示出来。第二节 单片机系统设计2、电路原理:第二节 单片机系统设计第二节 单片机系统设计3、源程序(1)、汇编语言第二节 单片机系统设计(2)、C语言第二节 单片机系统设计十一、1、设计任务:第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、源程序(1)、汇编语言第二节 单片机系统设计(2)、C语言第二节 单片机系统设计十一、1、设计任务:第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、源程序(1)、汇编语言第二节 单片机系统设计(2)、C语言第二节 单片机系统设计十一、00-99计数器1、设计任务:利用AT89S51 单片机来制作一个手动计数器,在AT89S51 单片机的P3.7 管脚接一个轻触开关,作为手动计数的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论