单片机实验报告二.docx
- 文档编号:25236469
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:16
- 大小:105.38KB
单片机实验报告二.docx
《单片机实验报告二.docx》由会员分享,可在线阅读,更多相关《单片机实验报告二.docx(16页珍藏版)》请在冰豆网上搜索。
单片机实验报告二
实验报告
课程名称:
单片机原理及应用
实验项目:
实验三、四、五、六
专业班级:
通信工程1003班
姓名:
学号:
实验室号:
320实验组号:
实验时间:
批阅时间:
指导教师:
成绩:
一、实验目的
实验三
1、学习在单片机系统中扩展简单I/O接口的方法。
2、学习数据输出程序的设计方法。
3、学习模拟交通灯控制的实现方法。
实验四
1、学习在单片机系统中扩展简单I/O口的方法。
2、学习数据输入,输出程序的编制方法。
实验五
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
实验六
1、学习8031内部计数器的使用和编程方法。
2、进一步掌握中断处理程序的编写方法。
二、实验原理
实验三
要完成本实验,首先必须了解交通路灯的亮灭规律。
本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
而交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
实验四
MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。
若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度。
延时时间约为0.01秒,不会影响显示的稳定。
实验五
交通灯的燃灭规律见实验三。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。
要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:
一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。
第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。
因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。
还要注意一点,主程序中往端口输出数据操作要先保存再输出。
实验六
1、定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×106)=2us
设计数初值为X,则(2e+16-X)×2×106=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH
2、初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3、设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
三、实验设备
EL-8051-III型单片机实验箱
四、实验原理图
实验三、五
实验四
实验六
五、实验步骤
实验三
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO,此时74LS273的片选地址为CFA0H~CFA7H之间任选。
运行实验程序,观察LED显示情况是否与实验内容相符。
实验四
1、74LS244的IN0~IN7接开关的K1~K8,片选信号CS244接CS1。
2、74LS273的O0~O7接发光二极管的L1~L8,片选信号CS273接CS2。
3、编程、全速执行。
4、拨动开关K1~K8,观察发光二极管状态的变化。
实验五
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。
单脉冲输出端P-接CPU板上的INT0。
实验六
P1.0~P1.7分别接发光二极管L1~L8即可。
六、程序框图
实验四实验五(与实验三一致)实验六中断程序框图
中断程序框图
实验三实验六
七、实验程序
实验三
NAMET3;I/O口扩展实验一
PORTEQU0CFA0H;片选地址CS0
CSEGAT0000H
LJMPSTART
CSEGAT4100H
START:
MOVA,#11H;两个红灯亮,黄灯、绿灯灭
ACALLDISP;调用273显示单元(以下雷同)
ACALLDE3S;延时3秒
LLL:
MOVA,#12H;东西路口绿灯亮;南北路口红灯亮
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#10H;东西路口绿灯灭;南北路口红灯亮
ACALLDISP
MOVR2,#05H;R2中的值为黄灯闪烁次数
TTT:
MOVA,#14H;东西路口黄灯亮;南北路口红灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#10H;东西路口黄灯灭;南北路口红灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
DJNZR2,TTT;返回TTT,使东西路口;黄灯闪烁五次
MOVA,#11H;两个红灯亮,黄灯、绿灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#21H;东西路口红灯亮;南北路口绿灯亮
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#01H;东西路口红灯亮;南北路口绿灯灭
ACALLDISP
MOVR2,#05H;黄灯闪烁五次
GGG:
MOVA,#41H;东西路口红灯亮;南北路口黄灯亮
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#01H;东西路口红灯亮;南北路口黄灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
DJNZR2,GGG;返回GGG,使南北路口;黄灯闪烁五次
MOVA,#03H;两个红灯亮,黄灯、绿灯灭
ACALLDISP
ACALLDE02S;延时0.2秒
JMPLLL;转LLL循环
DE10S:
MOVR5,#100;延时10秒
JMPDE1
DE3S:
MOVR5,#30;延时3秒
JMPDE1
DE02S:
MOVR5,#02;延时0.2秒
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
DISP:
MOVDPTR,#PORT;273显示单元
CPLA
MOVX@DPTR,A
RET
END
实验四
NAMET4;I/O口扩展实验
CSEGAT0000H
LJMPSTART
CSEGAT4100H
INPORTEQU0CFA8H;74LS244端口地址
OUTPORTEQU0CFB0H;74LS273端口地址
START:
MOVDPTR,#INPORT
LOOP:
MOVXA,@DPTR;读开关状态
MOVDPTR,#OUTPORT
MOVX@DPTR,A;显示开关状态
MOVR7,#10000H;延时
DEL0:
MOVR6,#0FFH
DEL1:
DJNZR6,DEL1
DJNZR7,DEL0
JMPSTART
END
实验五
NAMET5;中断控制实验
OUTPORTEQU0CFB0H;端口地址
SAVEEQU55H;save保存从端口cfa0输出的数据
CSEGAT0000H
LJMPSTART
CSEGAT4003H
LJMPINT
CSEGAT4100H
START:
SETBIT0
SETBEX0
SETBEA
MOVA,#11H;置首显示码
MOVSAVE,A;保存
ACALLDISP;显示输出
ACALLDE3S;延时3秒
LLL:
MOVA,#12H;东西路口绿灯亮,南北路口红灯亮
MOVSAVE,A
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#10H;东西路口绿灯灭
MOVSAVE,A
ACALLDISP
MOVR2,#05H;东西路口黄灯闪烁5次
TTT:
MOVA,#14H
MOVSAVE,A
ACALLDISP
ACALLDE02S
MOVA,#10H
MOVSAVE,A
ACALLDISP
ACALLDE02S
DJNZR2,TTT
MOVA,#11H;红灯全亮
MOVSAVE,A
ACALLDISP
ACALLDE02S;延时0.2秒
MOVA,#21H;东西路口红灯亮,南北路口绿灯亮
MOVSAVE,A
ACALLDISP
ACALLDE10S;延时10秒
MOVA,#01H;南北路口绿灯灭
MOVSAVE,A
ACALLDISP
MOVR2,#05H;南北路口黄灯闪烁5次
GGG:
MOVA,#41H
MOVSAVE,A
ACALLDISP
ACALLDE02S
MOVA,#01H
MOVSAVE,A
ACALLDISP
ACALLDE02S
DJNZR2,GGG
MOVA,#11H;红灯全亮
MOVSAVE,A
ACALLDISP
ACALLDE02S;延时0.2秒
JMPLLL;转LLL循环
DE10S:
MOVR5,#100;延时10秒
JMPDE1
DE3S:
MOVR5,#30;延时3秒
JMPDE1
DE02S:
MOVR5,#02;延时0.2秒
DE1:
MOVR6,#200
DE2:
MOVR7,#126
DE3:
DJNZR7,DE3
DJNZR6,DE2
DJNZR5,DE1
RET
INT:
CLREA
PUSHACC;中断处理
PUSHPSW
MOVA,R5
PUSHACC
MOVA,#11H;红灯全亮,绿、黄灯全灭
ACALLDISP
DEL10S:
MOVR3,#100;延时10秒
DEL1:
MOVR2,#200
DEL2:
MOVR5,#126
DEL3:
DJNZR5,DEL3
DJNZR4,DEL2
DJNZR3,DEL1
MOVA,SAVE;取SAVE中保存数据输出到cfa0端口
ACALLDISP
POPACC;出栈
MOVR5,A
POPPSW
POPACC
SETBEA;允许外部中断
RETI
DISP:
MOVDPTR,#OUTPORT
CPLA
MOVX@DPTR,A
RET
END
实验六
NAMET6;定时器实验
OUTPORTEQU0CFB0H
CSEGAT0000H
LJMPSTART
CSEGAT401BH;定时器/计数器1中断程序入口地址
LJMPINT
CSEGAT4100H
START:
MOVA,#01H;首显示码
MOVR1,#03H;03是偏移量,即从基址寄存器到表首的距离
MOVR0,#5H;05是计数值
MOVTMOD,#10H;计数器置为方式1
MOVTL1,#0AFH;装入时间常数
MOVTH1,#03CH
ORLIE,#88H;CPU中断开放标志位和定时器
;1溢出中断允许位均置位
SETBTR1;开始计数
LOOP1:
CJNER0,#00,DISP
MOVR0,#5H;R0计数计完一个周期,重置初值
INCR1;表地址偏移量加1
CJNER1,#31H,LOOP2
MOVR1,#03H;如到表尾,则重置偏移量初值
LOOP2:
MOVA,R1;从表中取显示码入累加器
MOVCA,@A+PC
JMPDISP
DB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH
DB0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH
DB0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH
DB0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00H
DISP:
;MOVDPTR,#OUTPORT
;MOVX@DPTR,A
MOVP1,A;将取得的显示码从P1口输出显示
JMPLOOP1
INT:
CLRTR1;停止计数
DECR0;计数值减一
MOVTL1,#0AFH;重置时间常数初值
MOVTH1,#03CH
SETBTR1;开始计数
RETI;中断返回
END
八、实验总结
通过本次试验,我进一步了解了如何使用单片机软件。
通过连接试验箱,读程序,我对单片机有了更深入的了解,实验中也锻炼了我的动手能力。
当然实验中也出现了一些小小的问题,但和同学们讨论过后也都得到了解决。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告