AEDK5196ET单片机高级工指导用书修订版

  • 格式:doc
  • 大小:431.50 KB
  • 文档页数:18

AEDK5196ET单片机实验箱学习笔记陆志刚修订××××出版社2012年10月前言AEDK5196ET单片机实验系统是新一代单片机实验开发系统。

它采用模块化设计,外围芯片丰富,功能完善,可进行MCS-51和MCS-96系列单片机实验;板上自带CPU和监控,具有独立运行和仿真功能,是大、中专院校开设单片机类课程的优选设备。

本学习笔记基于AEDK5196ET单片机实验系统的软件和硬件,充分体现单片机系统的特点和性能,学习记录了五个实验项目,并且分六个部分进行详细的说明:①实验要求②实验目的③实验电路及连线④实验说明⑤实验程序框图⑥参考程序(汇编)本学习笔记根据苏州技师学院电气工程系12大4班级单片机高级工考试安排及上课记录而修订!由于编者水平有限,书中不当之处再所难免,恳请读者批评指正。

陆志刚2012年10月目录实验一十字路口交通灯控制 (3)实验二定时器时序控制 (7)实验三计数器实验 (11)实验四串行口数据发送及串并转换电路 (14)实验五8255输入、输出实验 (16)第一章MCS51系列单片机实验实验一十字路口交通灯控制一.实验要求:以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。

有急救车到达时,两向交通信号为全红,以便让急救车通过。

假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。

本实验以按键为中断申请,表示有急救车通过。

二.实验目的:1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

3.学习模拟交通灯控制的方法。

4.学习双色灯的使用。

5. 学习在单片机系统中扩展简单I/O接口的方法。

三.实验电路及连线:四.实验说明:1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1南北绿灯通车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

五.实验框图:程序框图:六.实验程序参考.asmORG 0000H ;程序起始地址(ORG:伪指令)AJMP START ;相对跳转跳转至STARTORG 0003H ;外中断0入口地址LJMP INT_0 ;长跳转跳转至INT_0;---------------------------------------------------------------------------------主程序ORG 0040H ;主程序起始地址START:MOV SP,#60H ;#60H给堆栈指针SP(堆栈指针地址)SETB EX0 ;开外中断0(外中断0中断标志位有效)CLR IT0 ;外中断0低电平触发方式(SETB:下降沿触发)SETB EA ;开CPU总中断LCALL STATUS0 ;长调用调用子程序STATUS0CIRCLE:LCALL S TATUS1 ;长调用调用子程序STATUS1LCALL STATUS2 ;长调用调用子程序STATUS2LCALL STATUS3 ;长调用调用子程序STATUS3LCALL STATUS4 ;长调用调用子程序STATUS4LJMP CIRCLE ;长跳转跳转至CIRCLE;-----------------------------------------------------------------------外中断0服务子程序INT_0:PUSH PSW ;保护程序状态字PUSH 02H ;保护通用寄存器R2PUSH ACC ;保护累加器AMOV DPTR,#8300H ;数据指针地址为外RAM的8300H单元MOV A,#0FH ;立即寻址 A ←#0FH(东西、南北均为红灯)MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#30 ;立即寻址延时3S 恢复中断LCALL DELAY ;长调用DELAY延时子程序POP ACC ;恢复累加器APOP 02H ;恢复通用寄存器R2POP PSW ;恢复程序状态字RETI ;中断服务子程序返回;------------------------------------------------------------STATUS0南北红灯、东西红灯STATUS0:MOV DPTR,#8300H ;数据指针地址为外RAM的8300H单元MOV A,#0FH ;立即寻址 A ←#0FH(东西、南北均为红灯) MOVX @DPTR,A ;把累加器A中的内容送入外RAM的8300H MOV R2,#5 ;延时0.5S转下一状态LCALL DELAY ;长调用DELAY延时子程序RET ;子程序返回;------------------------------------------------------------------STATUS1南北绿、东西红STATUS1:MOV DPTR,#8300HMOV A,#96H ;立即寻址 A ←# 96H南北绿、东西红灯MOVX @DPTR,A ;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#10 ;延时1S转下一状态LCALL DELAY ;长调用DELAYRET;-------------------------------------------------------STATUS2南北绿闪转黄灯、东西红STATUS2:MOV DPTR,#8300HMOV R3,#03H ;绿灯闪烁3次(修改绿灯闪烁次数修改R3的值即可)FLASH:MOV A,#96H ;立即寻址 A ←# 96H南北绿、东西红灯)MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#03H ;延时0.3SLCALL DELAY ;长调用DELAYMOV A,#9FH ;南北不亮、东西红灯MOVX @DPTR,A ;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#03H ;延时0.3SLCALL DELAY ;长调用DELAYDJNZ R3,FLASH ;R3减一是否为0,不为0则跳转至FLASHMOV A,#06H ;南北黄灯、东西红灯MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#5 ;延时0.5S转下一个状态LCALL DELAY ;长调用DELAYRET;-----------------------------------------------------------------STATUS3南北红、东西绿STATUS3:MOV DPTR,#8300HMOV A,#69H ;南北红、东西绿MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#10 ;延时1S转下一状态LCALL DELAY ;长调用DELAYRET;-------------------------------------------------------STATUS3南北红、东西绿闪转黄灯STATUS4:MOV DPTR,#8300HMOV R3,#03H ;绿灯闪烁3次(修改绿灯闪烁次数修改R3的值即可)FLASH1:MOV A,#69H ;南北红、东西绿MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#03H ;延时0.3SLCALL DELAY ;长调用DELAYMOV A,#6FH ;南北红灯、东西不亮MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#03H ;延时0.3SLCALL DELAY ;长调用DELAYDJNZ R3,FLASH ;R3减一是否为0,不为0则跳转至FLASH1MOV A,#09H ;南北红、东西黄灯MOVX @DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元MOV R2,#5 ;延时0.5S转下一个状态LCALL DELAY ;长调用DELAYRET;-------------------------------------------------------------------------------延时子程序DELAY:PUSH 01H ;保护通用寄存器R1PUSH 00H ;保护通用寄存器R0DELAY1:MOV R1,#100DELAY2:MOV R0,#200DELAY3:NOPNOPNOPDJNZ R0,DELAY3 ;R0减一是否为0,不为0则跳转至DELAY3DJNZ R1,DELAY2 ;R1减一是否为0,不为0则跳转至DELAY2DJNZ R2,DELAY1 ;R2减一是否为0,不为0则跳转至DELAY1POP 00H ;恢复通用寄存器R0POP 01H ;恢复通用寄存器R1RET ;子程序返回END实验二定时器时序控制定时器实验一.实验要求:由8031内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.7分别接八个发光二极管。

要求编写程序模拟一时序控制装置。

开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮......一直循环下去。

二.实验目的:1.学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编程方法。

三.实验电路及连线:四.实验说明:1.关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。

内部计数器在单片机中主要有定时器和计数器两个功能。

本实验用的是定时器,有关计数器的说明请查阅实验七。

2.内部计数器用作定时器时,是对机器周期计数。

每个机器周期的长度是12个振荡器周期。

因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:机器周期=12÷11.0592MHz=1.0857μS(65536-定时常数)*1.0857μS=50mS定时常数=4C00H3.定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。