《单片机原理》PPT课件.ppt
《《单片机原理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机原理》PPT课件.ppt(59页珍藏版)》请在三一办公上搜索。
1、第5章 单片机内部功能的应用实例,5.1 I/O端口的应用实例,第5章 单片机内部功能的应用实例,P1.7P1.4驱动负载,P1.3P1.0输入K0K3状态。1输出控制 首先P1.7P1.4均输出高电平,各灯均灭;然后从P1.4开始依次轮流输出0,控制各灯轮流点亮,其间隔时间为1秒钟,最后使4个灯全暗再全亮,延时一段时间后又重新不断循环。实现上述功能的 控制程序,5.1.1 用P1口作基本输入/输出口控制,图5-1,如下,下一节,第5章 单片机内部功能的应用实例,2输入开关数据控制 读K0K3状态,送P1.7P1.4驱动亮或灭,控制程序如下:START:MOV A,#0FFH MOV P1,A
2、;使4个灯全灭 MOV A,P1;读入开关状态 SWAP A;读低4位交换到高4位 MOV P1,A;输出驱动相应灯亮 ACALL DELAY;延时 SJMP START;循环读入 外部有扩展存储时,P0口用作低8位地址/数据口;P1口仍可作通用I/O口;P2口作通用I/O口(外存256)或作高8位专用地址口(256外存64K);P3口工作于第二功能的输入/输出。,5.1.2 用I/O端口直接控制LED,第5章 单片机内部功能的应用实例,若使用P1.0P1.7控制LED(共阴)的段选位,用P3.0P3.3分别控制4个LED的位选,电路连接如 所示。,编程在四个LED上交叉轮流显示22和88字符
3、,用LED0、LED1为一组,显示内容相同;LED2、LED3为一组,显示内容相同,两组每隔1秒钟轮流交叉显示。设LED为共阴极,控制程序,图5-2,如下,第5章 单片机内部功能的应用实例,5.1.3 编码拨盘预置输入电路,8421拨盘的结构原理见 所示。,拨盘的工作原理,当要置入09的数时,对应的8421位开关与公共控制端A接通,8421引脚将输出相应的数。BCD码拨盘与单片机的接口见 所示,其中二极管隔离作用,为防止拨盘之间的窜扰。,试编程读入4#1#BCD拨盘置入的数据,并将读入的数据存入片内RAM的40H43H单元中,其程序,图5-3,图5-4,如下,5.1.4 交通信号灯控制,第5章
4、 单片机内部功能的应用实例,用I/O口直接控制交通灯,其控制电路如 所示。交通信号灯的控制方法如 所示。,图5-5,图5-6,当东西方向通车时绿灯亮,而南北方向红灯亮;当通车的时间到后,东西方向的绿灯灭,而黄灯亮,黄灯闪烁若干次后由东西方向切换到南北方向通车。此时东西方向黄灯灭,而红灯亮,南北方向红灯灭,而绿灯亮,南北方向开始通车。通车时间到后,南北方向绿灯灭,黄灯闪烁若干次后由南北方向切换到东西方向,南北方向黄灯灭,红灯亮;而东西方向红灯灭,绿灯亮如此不断循环。其控制,程序如下,5.2.1 定时计数器门控位的应用,第5章 单片机内部功能的应用实例,5.2 定时计数及中断功能的应用实例,例1.
5、一个外部脉冲高电平的宽度小于65536个机器周期,将此脉冲信号接到89C51的INT1(P3.3)引脚上,作为T1的门控启动信号,试测其正脉冲的宽度。已知fosc=12MHz,将所测得的高8位值存入片内41H,低8位存入40H单元中。,程序如下,上一节,下一节,5.2.2 定时/计数功能的综合应用举例,第5章 单片机内部功能的应用实例,例2试用89C51定时器0作外部工件计数值,外部工作信号由T0端引入,T1作定时器,每隔一秒钟检测一次T0中的计数值,当检测到100个工件数时,使P1.0端口输出信号变反,程序不断循环控制P1.0的输出,设fosc=12MHz。模式字:00010110=16H
6、T0计数:X0=256-100=156 T1定时:X1=65536-(50*12*1000)/12=3CB0H R7软件计数:R7=1*1000/50=20,程序如下,5.2.3 实时时钟中断,第5章 单片机内部功能的应用实例,T1定时加软件计数实现实时时钟控制。用T1定时50ms,工作于模式1,设fosc=12MHz,设置软件计数单元:20H单元为秒计数,计满20次为1秒钟;21H单元为分计数,计满60次为1分钟;22H单元为时计数,计满60次为1小时;23H单元为日计数,计满24次为1日;然后程序不断循环。,程序如下,5.2.4 航标灯控制,第5章 单片机内部功能的应用实例,(1)航标灯在
7、黑夜应能定时闪闪发光,设定时间隔为2s,即亮2s,熄灭2s周期循环进行;(2)当白天到来时,航标灯应熄灭,停止定时器工作。,解:方案一(1)航标灯的控制电路见;89C51定时的启停控制信号由INT0来控制。(2)采用T0定时加软件计数的方法实现定时2s钟。(3)可以用如图5-7所示的光敏三极管来区分白天与黑夜。,程序如下,图5-7,第5章 单片机内部功能的应用实例,方案二 将光敏管放大电路的输出端仍接INT0引脚作为T0的门控信号,此时T0的门控位应设置为1。电路中去掉非门,使INT0为高时触发T0定时器启动,否则停止T0工作。,程序如下,5.3.1 用单片机串行通信口扩展并行输入/输出口,第
8、5章 单片机内部功能的应用实例,5.3 单片机串行通信口的应用实例,是利用3根I/O口线扩展一个8位的并行输入口和一个8位的并行输出口的实用电路。用并行输入串行输出移位寄存器CD4014(类似74LS165)作并行开关状态的输入口;用串行输入并行输出移位寄存CD4094(类似74LS164)作显示输出口。编程读入开关状态存入片内RAM的40H单元中,并同时输出到LED上显示出来。,程序如下,图5-8,上一节,5.3.2 用单片机串行通信口作异步通信接口,第5章 单片机内部功能的应用实例,1.用串行口发送带奇校验的数据块 编程从片内RAM 20H3FH取出ASCII码数据,在最高位上加奇偶校验位
9、后由串行口发送,采用8位数据异步通信,串行口采用方式1发送,用T2作波特率发生器,设波特为1200波特,fosc=12MHz,12时钟模式。,解题思路及程序如下,2.用串行口接收带奇偶校验位的数据块,程序如下,5.3.3 用单片机串行通信口作多机通信接口,第5章 单片机内部功能的应用实例,单片机串行口多机通信的几条简单通信协议:,(1)系统中允许接有255台从机,地址分别为00HFFH。,(2)地址FFH是对所有从机都起作用的一条控制命令:该命令使各从机恢复SM2=1的状态。,(3)主机发送的控制命令代码为 00H:要求从机接收数据块;01H:要求从机发送数据块;其他:非法命令,(4)数据块长
10、度:16个字节;,第5章 单片机内部功能的应用实例,串行口,是多机通信程序流程图,通信程序,图5-9,(5)从机状态字格式为:,AU3:MOVX A,DPTR MOV R0,A INC R0 INC DPTR DJNZ R2,AU3 MOV DPTR,#9000H MOV R0,#50H MOV R2,#10HAU4:MOV A,R0 MOVX DPTR,A INC DPTR INC R0 DJNZ R2,AU4 MOV 3EH,#1AH MOV 3DH,#1AH MOV 3CH,#1AH MOV 3BH,#1AH MOV 3AH,#0EH MOV 39H,#0DHHERE:LCALL 002
11、6H SJMP HERE END,数据传送实验程序CAS02.ASMORG 8000H LJMP MAIN ORG 8030HMAIN:MOV R0,#40H MOV R2,#10H CLR AAU1:MOV R0,A INC R0 ADD A,#2 DJNZ R2,AU1 MOV R0,#40H MOV DPTR,#7E00H MOV R2,#10HAU2:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,AU2 MOV R0,#50H MOV DPTR,#7E00H MOV R2,#10H,定时计数器程序设计 CAS03.ASM ORG 8000HC
12、ART:LJMP CAIN ORG 800BH LJMP CIT0 ORG 8030HCAIN:MOV SP,#60H MOV R0,#39H MOV R7,#06HCL1:MOV R0,#00H INC R0 DJNZ R7,CL1 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#00H SETB TR0 MOV IE,#82H MOV 30H,#08HCL0:LCALL 0026H LJMP CL0,CIT0:PUSH PSW PUSH ACC SETB PSW.3 MOV TH0,#00H MOV TL0,#00H MOV A,30H DEC A MOV 30H,
13、A JNZ CRET MOV 30H,#08H MOV R0,#3AH LCALL CAAD MOV A,R2 XRL A,#60H JNZ CRET LCALL CLR0 MOV R0,#3CH LCALL CAAD,MOV A,R2 XRL A,#60H JNZ CRET LCALL CLR0 MOV R0,#3EH LCALL CAAD MOV A,R2 XRL A,#24H JNZ CRET LCALL CLR0CRET:POP ACC POP PSW RETICAAD:MOV A,R0 DEC R0 SWAP A ORL A,R0,ADD A,#01H DA A MOV R2,A A
14、NL A,#0FH MOV R0,A MOV A,R2 INC R0 ANL A,#0F0H SWAP A MOV R0,A RETCLR0:CLR A MOV R0,A DEC R0 MOV R0,A RET END,实验四 数字电子钟的实现,编程实现:分别从EICE51上键入或从主机键盘上输入时间初值。用T0定时256s,加软件计数4000次实现 1秒定时,对实时时钟计数器进行计数,并将时钟值实时地分另送EICE51和主机显示器上输出显示。相关说明:1、相关位的功能:位0:键入(或发送)两位数结束标志位;位1:输出两位数送EICE51显示结束标志位;位2:EICE51键入时间初值(6位)结
15、束标志位;,位F0:1秒定时到标志位。2、相关单元的功能:30H、31H、32H:时间初值存储和时、分、秒计数器;36H、37H:1秒定时的软件计数器(250*16=4000);39H3EH:显示存储单元;7F03H:8155的端口C,定义为EICE51的键入口。3、相关ASCII码:0DH:回车;0AH:换行;3AH:“:”冒号(分隔符);8HH:退格;30H39H:数字09的ASCII码。,电子钟的实现 CAS9254.ASM(定时、中断、串行口综合实验)ORG8000HCOCK:SJMPCXT4ORG800BHYTF0:DJNZ 36H,FT4RMOV 36H,#250DJNZ 37H,
16、FT4RMOV 37H,#16SETB F0FT4R:RETICXT4:MOVSP,#60H MOV R7,#6 MOV R0,#39HCELL:MOV R0,A INC R0 DJNZ R7,CELLMOV TMOD,#022HMOV SCON,#0DAHMOV TCON,#50H,WINT:MOV DPTR,#7F03H MOVX A,DPTR CPL A ANL A,#0FH JNZ KBIN;6位初值小键盘输入 JNB RI,WINT;主机输入显示处理 CLR 2 CLR RI ACALL YOUT;主机提示显示 DBINPUT TIME:,0;BP2GT41:MOV R0,#30H
17、CLR 0GT42:JNB RI,GT42;主机实现09的输入 CLR RI MOV A,SBUF CJNE A,#0DH,GT43;0DH回车HT4W:JNB TI,HT4WCLR TIMOV SBUF,#0AH;0AH换行SJMP GT44GT43:CJNE A,#3AH,GT46;主机输入9GT45:JNB TI,GT45;3AH:CLR TIMOV SBUF,A,SJMP GT42GT46:JNC CERRCJNE A,#30H,GT47GT47:JC CERR;主机输入0GT49:JNB TI,GT49CLRTIMOV SBUF,ASUBB A,#30HJBC0,GT4ASETB 0
18、SWAP AMOV R0,ASJMP GT42GT4A:XCHD A,R0INCR0SJMP GT42CERR:MOV SBUF,#08;08退格QRR1:SJMP GT42GT44:CJNE R0,#33H,QRR1BGIN:MOV IE,#82H;BP3MOV 36H,#250MOV 37H,#16,GT4L:JBC F0,GT4PLCALL 0026HSJMP GT4LGT4P:ACALL CCNT;计数并刷新显示 JB 2,$+5;3字节ACALL JOUT;2字节SJMP GT4LKBIN:MOV R0,#3EH;BP1 MOV R1,#30H MOV R7,#6 CLR 0HIL:
19、SETB PSW.3 LCALL 0036H CLR PSW.3 MOV R0,A DEC R0 JBC 0,HIL1 SETB 0 SWAP A MOV R1,AHIL2:DJNZ R7,HIL SETB 2,SJMP BGINHIL1:XCHD A,R1 INC R1 SJMP HIL2CCNT:MOV R0,#32H;BP4ACALL KCT;BCD加1送存CJNE A,#60H,CNTR;6位送显ACALL KCXCJNE A,#60H,CNTRACALL KCXCJNE A,#24H,CNTRACALL KCXCNTR:MOV R1,#39HMOV R0,#32HMOV R7,#3C
20、LR1EDTR:JBC 1,ERT2MOV A,R0ANL A,#0FHMOV R1,AINCR1SETB 1SJMP EDTR,ERT2:MOV A,R0ANL A,#0F0HSWAP AMOV R1,AINC R1DEC R0DJNZ R7,EDTRRETJOUT:ACALLYOUTDBIT IS:,0MOV R7,#3MOV R0,#30HCLR 0XT3:MOV A,R0;发主机显示XT1:JNB TI,XT1CLR TIJBC 0,XT2SWAP AANL A,#0FHADD A,#30HMOV SBUF,A,SETB0SJMPXT3 XT2:ANLA,#0FHADD A,#30HM
21、OVSBUF,ADJNZR7,XT4XTL:JNBTI,XTLCLR TIMOVSBUF,#0DHRETXT4:JNBTI,XT4CLR TIMOVSBUF,#3AHINCR0SJMPXT3YOUT:POPDPHPOP DPLSETBTI,JT0:CLRAMOVCA,A+DPTRINC DPTRCJNEA,#0,JT1PUSHDPLPUSHDPHRETJT1:JNBTI,JT1CLR TIMOVSBUF,ASJMPJT0KCX:CLRAMOVR0,ADEC R0KCT:MOVA,R0ADD A,#1DA AMOVR0,ARET END;,习题5,第5章 单片机内部功能的应用实例,1试用89C5
22、1的P0口外接8个LED,P1口和P2口外接8个BCD码拨盘。请画出该功能要求的连接电路图,并编程依次读入8个BCD拨盘数据存入片内40H47H单元中,然后依次取出送P0中显示,每次同时显示2个相邻的数据。2利用89C51单片机定时器的门控位测量某正脉冲高电平的宽度。已知正脉冲宽度小于10ms,fosc=6MHz.试编程测量脉宽,并把测得的结果转换为BCD码存入片内50H开始的连接单元,十位和个位存50H单元中。,1试用89C51的P0口外接8个LED,P1口和P2口外接8个BCD码拨盘。请画出该功能要求的连接电路图,并编程依次读入8个BCD拨盘数据存入片内40H47H单元中,然后依次取出送P
23、0中显示,每次同时显示2个相邻的数据,方案一:8个拨盘分别接P2.0P2.7作为输入数据及P1.0P1.3作为拨盘的片选信号,LED发光二极管负极接P0.0P0.7。RDIN:MOV R7,#08 MOV R0,#40H MOV A,#0FEHRDIN1:MOV R2,A MOV P2,A MOV A,P1 CPL A ANL A,#0FH MOV R0,A INC R0 MOV A,R2,RL A DJNZ R7,RDIN1 MOV R7,#04H MOV R0,#40HOUTRUT:MOV A,R0 SWAP A INC R0 XCHD A,R0 CPL A MOV P0,A CALL D
24、EALY INC R0 DJNZ R7,OUTRUT AJMP RDIN END,方案二:8个拨盘分别接P2.0P2.7及P1.0P1.3,8只数码管的段码由P0.0P0.7输出,位选信号由P3.0P3.7输出,读取拨盘的程序同方法一,其输出显示程序如下:,START:MOV A,#0FEH MOV P3,A MOV R2,A MOV DPTR,#TAB MOV R0,#40H SETB C LP:MOV A,R0 MOVC A,A+DPTR MOV P0,A CALL DELAY MOV A,R2 RLC A MOV R2,A MOV P3,A INC R0,LP1:MOV A,R0 MOV
25、C A,A+DPTR MOV P0,A CALL DELAY MOV A,R2 RLC A MOV R2,A MOV P3,A JNB C,LP2 INC R0 AJMP LPLP2:START 或 RETTAB:DB 3FH,06H,5BH,4FH,68H DB 6DH,7DH,07H,7FH,6FH(共阴LED显示段码),3 试用中断技术设计一个频闪电路,用以控制P1口上的8个彩灯闪烁,其闪烁频率为50Hz,设fosc=6MHz。,ORG 0000H AJMP STAR ORG 000BH AJMP INTR0 ORG 2000HSTAR:MOV TMOD,#01H MOV TL0,#78
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理 单片机 原理 PPT 课件
链接地址:https://www.31ppt.com/p-5475489.html