单片机最小系统设计

上传人:仙*** 文档编号:46987230 上传时间:2021-12-16 格式:PPT 页数:65 大小:483.02KB
收藏 版权申诉 举报 下载
单片机最小系统设计_第1页
第1页 / 共65页
单片机最小系统设计_第2页
第2页 / 共65页
单片机最小系统设计_第3页
第3页 / 共65页
资源描述:

《单片机最小系统设计》由会员分享,可在线阅读,更多相关《单片机最小系统设计(65页珍藏版)》请在装配图网上搜索。

1、单片机最小系统设计单片机最小系统设计熟悉单片机基本工作条件;熟悉单片机外围电路的设计及软件编程方法。 第一节 51单片机基本工作条件一、电源电路(+5V)第一节 51单片机基本工作条件二、时钟电路 时钟电路为整个单片机系统产生时间基准。时钟电路为整个单片机系统产生时间基准。是单片机系统必须的部分。是单片机系统必须的部分。XTAL2XTAL1GND8051VCC5VOSCCC第一节 51单片机基本工作条件三、复位电路复位电路是单片机系统复位电路是单片机系统必须必须的,用来为单片机提供的,用来为单片机提供正确的复位信号正确的复位信号。四、ISP下载电路第二节 单片机系统设计一、LED显示电路1、设

2、计任务:在 P0.0端口上接一个发光二极管 L1,使 L1在不停地一亮一灭,一亮一灭的时间间隔为 0.2秒。第二节 单片机系统设计2、源程序(1)、设计流程图第二节 单片机系统设计(2)、汇编源程序w ORG 00H wSTART:CLR P0.0 w LCALL DELAY w SETB P0.0 w LCALL DELAY w LJMP STARTwDELAY:MOV R5, #20 ;延时子程序,延时 0.2秒 wD1:MOV R6, #20 wD2: MOV R7,#248 w DJNZ R7, $ w DJNZ R6, D2 w DJNZ R5, D1 w RET w END第二节

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

4、V R2,#8w MOV A,#0FEHw SETB CwLOOP: MOV P1,Aw LCALL DELAYw RLC A第二节 单片机系统设计wDJNZ R2, LOOPwMOV R2,#8wLOOP1: MOV P1,AwLCALL DELAYwRRC AwDJNZ R2, LOOP1wLJMP STARTwDELAY: MOV R5,#20 ;wD1: MOV R6,#20wD2: MOV R7,#248wDJNZ R7,$wDJNZ R6,D2wDJNZ R5,D1wRETwEND第二节 单片机系统设计(2)、C语言 #include reg51.hw#include intrin

5、s.hw#define uchar unsigned charw#define uint unsigned intwvoid mDelay(unsigned int Delay)w unsigned int i;wfor(;Delay0;Delay-)w for(i=0;i124;i+)w;wwwvoid main()w unsigned char OutData=0 xfe;wfor(;)wP0=OutData;wOutData=_crol_(OutData,1); /循环左移wmDelay(1000); /*延时1000 毫秒*/ww第二节 单片机系统设计三、模拟开关灯1、设计任务:w监视

6、开关K1(接在P3.7 端口上),用发光二极管L1(接在单片机P0.0 端口上)显示开关状态,如果开关合上,L1 亮,开关打开,L1 熄灭。第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、汇编源程序 ORG 00HSTART: JB P3.7, LIG CLR P0.0 SJMP STARTLIG: SETB P0.0 SJMP START END第二节 单片机系统设计4、C语言源程序#include wsbit K1=P37;wsbit L1=P00;wvoid main(void)w while(1)w if(K1=0)w L1=0; w elsew L1=1; w第二节 单片

7、机系统设计四、多路开关状态指示1、设计任务:AT89S51 单片机的P0.0P0.3 接四个发光二极管L1L4,P3.4P3.7 接了四个开关S5S20,编程将开关的状态反映到发光二极管。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、汇编源程序wORG 00HwSTART: JB P3.4, NEXT1wCLR P0.0wSJMP NEX1wNEXT1: SETB P0.0wNEX1: JB P3.5,NEXT2wCLR P0.1wSJMP NEX2wNEXT2: SETB P0.1wNEX2: JB P3.6,NEXT3wCLR

8、P0.2wSJMP NEX3wNEXT3: SETB P0.2wNEX3: JB P3.7,NEXT4wCLR P0.3wSJMP NEX4wNEXT4: SETB P0.3wNEX4: SJMP STARTwEND第二节 单片机系统设计4、C语言w#include wvoid main(void)wwhile(1)wif(P3_4=0)w P0_0=0;welsew P0_0=1;wif(P3_5=0)w P0_1=0;welsew P0_1=1;wif(P3_6=0)w P0_2=0;welseP0_2=1;wif(P3_7=0)wP0_3=0;welseP0_3=1;ww第二节 单片机系

9、统设计五、广告灯的设计1、设计任务:利用取表的方法,使端口P0 做单一灯的变化:左移2 次,右移2 次,闪烁2 次(延时的时间0.2秒)第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、汇编源程序 ORG 0wSTART: MOV DPTR,#TABLE LOOP: CLR Aw MOVC A, A+DPTRw CJNE A,#01H,LOOP1w LJMP STARTwLOOP1: MOV P0, Aw MOV R3, #20w LCALL DELAYw INC DPTRw LJMP LOOPwDELAY: MOV R4,#20wD1: MOV R5,#248w DJNZ R5,$

10、 w DJNZ R4,D1w DJNZ R3,DELAY第二节 单片机系统设计wRETwTABLE: DB 0FEH,0FDH,0FBH,0F7HwDB 0EFH,0DFH,0BFH,07FHwDB 0FEH,0FDH,0FBH,0F7HwDB 0EFH,0DFH,0BFH,07FHwDB 07FH,0BFH,0DFH,0EFHwDB 0F7H,0FBH,0FDH,0FEHwDB 07FH,0BFH,0DFH,0EFHwDB 0F7H,0FBH,0FDH,0FEHwDB 00H, 0FFH,00H, 0FFHwDB 01HwEND第二节 单片机系统设计4、C语言w#include wunsig

11、ned char code table=0 xfe,0 xfd,0 xfb,0 xf7,w0 xef,0 xdf,0 xbf,0 x7f,w0 xfe,0 xfd,0 xfb,0 xf7,w0 xef,0 xdf,0 xbf,0 x7f,w0 x7f,0 xbf,0 xdf,0 xef,w0 xf7,0 xfb,0 xfd,0 xfe,w0 x7f,0 xbf,0 xdf,0 xef,w0 xf7,0 xfb,0 xfd,0 xfe,w0 x00,0 xff,0 x00,0 xff,w0 x01;wunsigned char i;wvoid delay(void)第二节 单片机系统设计wwun

12、signed char m,n,s;wfor(m=20;m0;m-)wfor(n=20;n0;n-)wfor(s=248;s0;s-);wwvoid main(void)wwwhile(1)wwif(tablei!=0 x01)wwP1=tablei;wi+;wdelay();wwelsewwi=0;www第二节 单片机系统设计六、按键识别方法1、设计任务: 每按下一次开关S20,计数值加1,通过AT89S51 单片机的P0 端口的P0.0 到P0.7 显示出其的二进制计数值。2、电路原理第二节 单片机系统设计第二节 单片机系统设计3、源程序(1)、汇编语言wORG 0wSTART: MOV

13、R1,#00H ;初始化初始化R1为为0,表示从,表示从0开始计数开始计数wMOV A,R1 ;wCPL A ;取反指令取反指令wMOV P0,A ;送出送出P1端口由发光二极管显示端口由发光二极管显示wREL: JB P3.7,REL ;判断判断SP1是否按下是否按下wLCALL DELAY10MS ;若按下,则延时若按下,则延时10ms左右左右wJB P3.7,REL ;再判断再判断SP1是否真得按下是否真得按下wINC R1 ;若真得按下,则进行按键处理,使若真得按下,则进行按键处理,使wMOV A,R1 ;计数内容加计数内容加1,并送出,并送出P1端口由端口由wCPL A ;发光二极管

14、显示发光二极管显示wMOV P0,A ;wJNB P3.7,$ ;等待等待SP1释放释放wSJMP REL ;继续对继续对K1按键扫描按键扫描wDELAY10MS: MOV R6,#20 ;延时延时10ms子程序子程序wL1: MOV R7,#248wDJNZ R7,$wDJNZ R6,L1wRETwEND第二节 单片机系统设计(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

15、_7=0)delay10ms();if(P3_7=0)第二节 单片机系统设计wcount+;wif(count=256)wwcount=0;wwP0=count;wwhile(P3_7=0);wwww第二节 单片机系统设计七、流水灯定时器1、设计任务: 隔1S,通过AT89S51 单片机的P0.0 端口的LED闪亮。2、电路原理第二节 单片机系统设计第二节 单片机系统设计C程序设计w#include w#define uchar unsigned charw#define uint unsigned intwsbit d1=P00;wuchar tt;wvoid main()wuchar te

16、mp=0 xfe;w tt=0;wTMOD=0 x10;wTH1=(65536-50000)/256;wTL1=(65536-50000)%256;wEA=1;wET1=1;wTR1=1;第二节 单片机系统设计wwhile(1)wif(tt=20)wtt=0;wd1=!d1;wwwvoid ex() interrupt 3wwTH1=(65536-50000)/256;wTL1=(65536-50000)%256;wtt+;w第二节 单片机系统设计八、LED显示1、设计任务:w利用AT89S51 单片机的P0 端口的P0.0P0.7 连接到一个共阴数码管的ah 的笔段上,数码管的公共端接地。在

17、数码管上循环显示09 数字,时间间隔0.2 秒。2.系统工作原理系统工作原理 数码管由8个发光二极管构成,可以用来显示数字、字符等,它在家电及工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等,具有显示醒目、直观的有点,如图2.3所示。 图2.3 数码管实物图【项目实践】 数码管实际上是由7个发光管组成“8”字形构成的,加上小数点就是8个。这些段分别由字母a、b、c、d、e、f、g、dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样。例如:显示一个“3”字,那么应当是a亮、b亮、c亮、d亮、e不亮、f不亮、g亮、dp不亮。数码管的内部结构

18、如图2.4所示,其中COM引脚为公共端,用来控制数码管显示的打开或关闭,即起到“使能”作用。 根据公共端接法的不同,数码管又分为共阴极和共阳极两种结构,分别如图2.4(b)和图 2.4(c)所示。 共阳极就是将8个LED的阳极连接到一起组成公共端COM,接正极,当相应字段为低电平“0”时,可以点亮该字段;当相应字段为高电平“1”时,该字段不亮。 共阴极就是将8个LED的阴极连接到一起组成公共端COM,接负极,当相应字段为高电平“1”时,可以点亮该字段;当相应字段为低电平“0”时,该字段不亮。【项目实践】图2.4 数码管内部结构图【项目实践】 表2.1 数码管显示数字的段码表段名称GFAEBDP

19、CD对应段码对应引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0数字01000010084H数字111110101F5H数字20100011046H数字30101010054H数字40010010135H数字5000111001CH数字6000011000CH数字711010101D5H数字80000010004H数字90001010014H【项目实践】第二节 单片机系统设计3、电路原理第二节 单片机系统设计w#include w#define uchar unsigned charw#include wsbit we=P20;wsbit du=P21;wunsigned

20、char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,w0 x6d,0 x7d,0 x07,0 x7f,0 x6f;wunsigned char dispcount;wvoid delay02s(void)w unsigned char i,j,k;wfor(i=10;i0;i-)wfor(j=200;j0;j-)wfor(k=248;k0;k-);wwvoid main(void)w while(1)w for(dispcount=0;dispcount10;dispcount+)w we=1;w P0=0 x00;w we=0;w du=1;w P0=

21、tabledispcount;w du=0;w delay02s();w ww第二节 单片机系统设计九、0-9计数器1、设计任务:w利用AT89S51 单片机来制作一个手动计数器,在AT89S51 单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P0.0P0.7 接一个共阴数码管,作为09 计数的数显示;第二节 单片机系统设计2、电路原理第二节 单片机系统设计3、源程序(1)、汇编语言wORG 0wSTART: MOV R1,#00H ;初始化初始化R1为为0, REL: JB P3.7,REL ;判断判断SP1是否按下是否按下w LCALL DELAY ;若按下,则延时若

22、按下,则延时10ms左右左右w JB P3.7,REL ;再判断再判断SP1是否真得按下是否真得按下w MOV A,R1w MOV DPTR,#TABLEw setb P2.0w MOV p0,#00hw clr p2.0w MOVC A,A+DPTRw MOV P0,Aw INC R1第二节 单片机系统设计wJNB P3.7,$ ;等待等待SP1释放释放wCJNE R1,#10,RELwSJMP START ;继续对继续对K1按键扫描按键扫描wDELAY: MOV R6,#20 ;延时延时10ms子程序子程序wL1: MOV R7,#248w DJNZ R7,$w DJNZ R6,L1w R

23、ETwTABLE: DB 3FH,06H,5BH,4FH,66H,6DHw DB 7DH,07H,7FH,6FHw END第二节 单片机系统设计wLCALL DELY10MSwJB SP1,WAITwINC CountwMOV A,CountwCJNE A,#100,NEXTwLJMP STARTwDELY10MS: MOV R6,#20wD1: MOV R7,#248wDJNZ R7,$wDJNZ R6,D1wRETwTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHwEND第二节 单片机系统设计(2)C语言w#include wunsigne

24、d char count;wunsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,w0 x6d,0 x7d,0 x07,0 x7f,0 x6f;wsbit d1=P20;wvoid delay10ms(void)wunsigned char i,j;wfor(i=250;i0;i-)wfor(j=248;j0;j-);wvoid main(void)wwhile(1)w if(P3_7=0)w delay10ms();w if(P3_7=0)w 第二节 单片机系统设计wcount+;w if(count=10)w count=0; w d

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

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

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

28、始以0.2 秒的速率闪烁,如此循环下去。0.2 秒的闪烁速率也由定时/计数器T0 来完成。第二节 单片机系统设计2、程序w#include wunsigned char tcount2s;wunsigned char tcount02s;wunsigned char ID;wvoid main(void)w TMOD=0 x01;wTH0=(65536-50000)/256;wTL0=(65536-50000)%256;wTR0=1;wET0=1;wEA=1;wwhile(1);wvoid t0(void) interrupt 1 using 0wtcount2s+;wif(tcount2s=

29、40)w tcount2s=0;w ID+;wif(ID=4)wID=0;w 第二节 单片机系统设计wtcount02s+;wif(tcount02s=4)wtcount02s=0;wswitch(ID)wcase 0:wP0_0=P0_0;wbreak;wcase 1:wP0_1=P0_1;wbreak;wcase 2:wP0_2=P0_2;wbreak;wcase 3:wP0_3=P0_3;wbreak;ww第二节 单片机系统设计十二、A/D 转换器基本应用 1、设计任务 从ADC0804 的通道4输入05V 之间的模拟量,通过ADC0804 转换成数字量在数码管上以十进制形成显示出来。第

30、二节 单片机系统设计2、电路原理:第二节 单片机系统设计十一、00-99计数器1、设计任务:w利用AT89S51 单片机来制作一个手动计数器,在AT89S51 单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0P2.7 接一个共阴数码管,作为0099 计数的个位数显示,用单片机w的P0.0P0.7 接一个共阴数码管,作为0099 计数的十位数显示;第二节 单片机系统设计2、电路原理第二节 单片机系统设计十一、00-99计数器1、设计任务:w利用AT89S51 单片机来制作一个手动计数器,在AT89S51 单片机的P3.7 管脚接一个轻触开关,作为手动计数的按钮,用单片机的P2.0P2.7 接一个共阴数码管,作为0099 计数的个位数显示,用单片机w的P0.0P0.7 接一个共阴数码管,作为0099 计数的十位数显示;第二节 单片机系统设计2、电路原理

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!