AEDK5196ET单片机高级工指导用书修订版.docx
- 文档编号:2876043
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:23
- 大小:242.33KB
AEDK5196ET单片机高级工指导用书修订版.docx
《AEDK5196ET单片机高级工指导用书修订版.docx》由会员分享,可在线阅读,更多相关《AEDK5196ET单片机高级工指导用书修订版.docx(23页珍藏版)》请在冰豆网上搜索。
AEDK5196ET单片机高级工指导用书修订版
AEDK5196ET单片机实验箱
学习笔记
陆志刚
修订
××××出版社
2012年10月
前言
AEDK5196ET单片机实验系统是新一代单片机实验开发系统。
它采用模块化设计,外围芯片丰富,功能完善,可进行MCS-51和MCS-96系列单片机实验;板上自带CPU和监控,具有独立运行和仿真功能,是大、中专院校开设单片机类课程的优选设备。
本学习笔记基于AEDK5196ET单片机实验系统的软件和硬件,充分体现单片机系统的特点和性能,学习记录了五个实验项目,并且分六个部分进行详细的说明:
①实验要求
②实验目的
③实验电路及连线
④实验说明
5实验程序框图
⑥参考程序(汇编)
本学习笔记根据苏州技师学院电气工程系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管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
五.实验框图:
程序框图:
六.实验程序参考.asm
ORG0000H;程序起始地址(ORG:
伪指令)
AJMPSTART;相对跳转跳转至START
ORG0003H;外中断0入口地址
LJMPINT_0;长跳转跳转至INT_0
;---------------------------------------------------------------------------------主程序
ORG0040H;主程序起始地址
START:
MOVSP,#60H;#60H给堆栈指针SP(堆栈指针地址)
SETBEX0;开外中断0(外中断0中断标志位有效)
CLRIT0;外中断0低电平触发方式(SETB:
下降沿触发)
SETBEA;开CPU总中断
LCALLSTATUS0;长调用调用子程序STATUS0
CIRCLE:
LCALLSTATUS1;长调用调用子程序STATUS1
LCALLSTATUS2;长调用调用子程序STATUS2
LCALLSTATUS3;长调用调用子程序STATUS3
LCALLSTATUS4;长调用调用子程序STATUS4
LJMPCIRCLE;长跳转跳转至CIRCLE
;-----------------------------------------------------------------------外中断0服务子程序
INT_0:
PUSHPSW;保护程序状态字
PUSH02H;保护通用寄存器R2
PUSHACC;保护累加器A
MOVDPTR,#8300H;数据指针地址为外RAM的8300H单元
MOVA,#0FH;立即寻址A←#0FH(东西、南北均为红灯)
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#30;立即寻址延时3S恢复中断
LCALLDELAY;长调用DELAY延时子程序
POPACC;恢复累加器A
POP02H;恢复通用寄存器R2
POPPSW;恢复程序状态字
RETI;中断服务子程序返回
;------------------------------------------------------------STATUS0南北红灯、东西红灯
STATUS0:
MOVDPTR,#8300H;数据指针地址为外RAM的8300H单元
MOVA,#0FH;立即寻址A←#0FH(东西、南北均为红灯)
MOVX@DPTR,A;把累加器A中的内容送入外RAM的8300H
MOVR2,#5;延时0.5S转下一状态
LCALLDELAY;长调用DELAY延时子程序
RET;子程序返回
;------------------------------------------------------------------STATUS1南北绿、东西红
STATUS1:
MOVDPTR,#8300H
MOVA,#96H;立即寻址A←#96H南北绿、东西红灯
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#10;延时1S转下一状态
LCALLDELAY;长调用DELAY
RET
;-------------------------------------------------------STATUS2南北绿闪转黄灯、东西红
STATUS2:
MOVDPTR,#8300H
MOVR3,#03H;绿灯闪烁3次(修改绿灯闪烁次数修改R3的值即可)
FLASH:
MOVA,#96H;立即寻址A←#96H南北绿、东西红灯)
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#03H;延时0.3S
LCALLDELAY;长调用DELAY
MOVA,#9FH;南北不亮、东西红灯
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#03H;延时0.3S
LCALLDELAY;长调用DELAY
DJNZR3,FLASH;R3减一是否为0,不为0则跳转至FLASHMOVA,#06H;南北黄灯、东西红灯
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#5;延时0.5S转下一个状态
LCALLDELAY;长调用DELAY
RET
;-----------------------------------------------------------------STATUS3南北红、东西绿
STATUS3:
MOVDPTR,#8300H
MOVA,#69H;南北红、东西绿
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#10;延时1S转下一状态
LCALLDELAY;长调用DELAY
RET
;-------------------------------------------------------STATUS3南北红、东西绿闪转黄灯
STATUS4:
MOVDPTR,#8300H
MOVR3,#03H;绿灯闪烁3次(修改绿灯闪烁次数修改R3的值即可)
FLASH1:
MOVA,#69H;南北红、东西绿
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#03H;延时0.3S
LCALLDELAY;长调用DELAY
MOVA,#6FH;南北红灯、东西不亮
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#03H;延时0.3S
LCALLDELAY;长调用DELAY
DJNZR3,FLASH;R3减一是否为0,不为0则跳转至FLASH1MOVA,#09H;南北红、东西黄灯
MOVX@DPTR,A;把A中的内容送入以8300H为地址的外部数据存储单元
MOVR2,#5;延时0.5S转下一个状态
LCALLDELAY;长调用DELAY
RET
;-------------------------------------------------------------------------------延时子程序
DELAY:
PUSH01H;保护通用寄存器R1
PUSH00H;保护通用寄存器R0
DELAY1:
MOVR1,#100
DELAY2:
MOVR0,#200
DELAY3:
NOP
NOP
NOP
DJNZR0,DELAY3;R0减一是否为0,不为0则跳转至DELAY3DJNZR1,DELAY2;R1减一是否为0,不为0则跳转至DELAY2DJNZR2,DELAY1;R2减一是否为0,不为0则跳转至DELAY1POP00H;恢复通用寄存器R0
POP01H;恢复通用寄存器R1
RET;子程序返回
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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AEDK5196ET 单片机 高级工 指导 修订版