ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:206.64KB ,
资源ID:957615      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-957615.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈工大单片机原理及应用实验报告.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

哈工大单片机原理及应用实验报告.docx

1、哈工大单片机原理及应用实验报告微处理器原理与应用实验报告姓名:李声勇 同组人:袁钟达,张秋实学号:1080510123 班级:0805101指导教师:张云院系:电子与信息工程学院1 实验一 简单I/O口扩展实验(一) 交通灯控制实验1.1实验要求扩展实验箱上的74LS273作为输出口,控制八个发光二极管燃灭,模拟交通灯管理。1.2实验目的1.学习在单片机系统中扩展简单I/O接口的方法2.学习数据输出程序的设计方法3.学习模拟交通灯控制的实现方法1.3实验原理要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1、L3、L5作为

2、东西方向的指示灯,将L2、L4、L6作为南北方向的指示灯。而交通灯的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管共阳极,阴极接有与非门,因此使其点亮应使相应输入端为高电平。1.4 实验内容(包括实验电路和程序流程图)1.5 实验结果成功模拟交通灯管制系统,红绿灯方向指示正常,黄灯闪烁正常1.6 实验结果讨论分析实验中发

3、现交通灯在黄灯和红绿灯切换的时候有抖动和延时,初步估计是单片机定时系统不稳定以及程序的延时冗余没有添加所导致。1.7 实验程序代码变量说明: R1、R2、R3用来做延时控制变量。 EW段表示东西导通南北截止; SNBY是SN STAND BY的缩写,表示南北准备; SN段表示南北导通东西截止。 延时控制由若干延时控制单元组合而成(参考了一下老师的程序)。 片选地址和显示单元调用了老师的部分程序。PORT EQU 0CFA0H ;片选地址CS0CSEG AT 0000HLJMP BEGINCSEG AT 4100HBEGIN: MOV A,#03H ;1、2亮,其余灭 ACALL SHOW ;调

4、用273显示单元 ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止 ACALL SHOW ACALL T10 ;延时10秒 MOV A,#02H ;东西截止;南北截止 ACALL SHOW SNBY: MOV A,#04H ;东西黄灯闪烁;南北截止 ACALL SHOW ACALL T02 ;东西黄灯5次闪烁程序 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#04H ACALL SHOW ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#04H ACALL SHOW ACALL T0

5、2 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#04H ACALL SHOW ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#04H ACALL SHOW ACALL T02 MOV A,#00H ;东西黄灯闪烁程序结束 ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#02H ;东西路口黄灯灭;南北路口红灯亮 ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#03H ;东西南北都截止 ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#21H ;

6、东西截止;南北导通 ACALL SHOW ACALL T10 ;延时10秒 MOV A,#01H ;东西截止;南北截止 ACALL SHOW SN: MOV A,#08H ;东西截止,南北准备 ACALL SHOW ;南北黄灯闪烁程序 ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#08H ACALL SHOW ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#08H ACALL SHOW ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#08H A

7、CALL SHOW ACALL T02 MOV A,#00H ACALL SHOW ACALL T02 MOV A,#08H ACALL SHOW ACALL T02 MOV A,#00H ;南北黄灯闪烁截止 ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#01H ;东西截止;南北截止 ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#03H ;东西南北都截止 ACALL SHOW ACALL T02 ;延时0.2秒 JMP EW ;转EW循环T10: MOV R1,#100 ;延时10秒 JMP TU1T03: MOV R1,#30 ;延时3秒

8、JMP TU1T02: MOV R1,#02 ;延时0.2秒TU1: MOV R2,#200TU2: MOV R3,#126TU3: DJNZ R3,TU3 DJNZ R2,TU2 DJNZ R1,TU1 RETSHOW: MOV DPTR,#PORT ;273显示单元 MOVX DPTR,A RETEND2 实验二 简单I/O口扩展实验(二)2.1实验要求利用74LS244作为输入口,读取开状态,并将此状态通过发光二极管显示出来。2.2实验目的1、学习在单片机系统中扩展简单的I/O口的方法。2、学习数据输入,输出程序的编制方法。2.3实验原理MCS-51外部扩展空间很大,但数据总线口和控制信

9、号线的负载能力是很有限的。若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。程序中加了一段延时程序,以减少总线口读写的频繁程度,延时时间约为0.01秒,不会影响显示的稳定。2.4 实验内容(包括实验电路和程序流程图)2.5 实验结果利用74LS244,成功将开关的状态反应在发光二极管上。2.6 实验结果讨论分析在发光二极管显示的过程中,有抖动产生,通过消抖开关或者程序延时可以消除抖动。2.7 实验程序代码CSEG AT 0000HLJMP BEGINCSEG AT 4100HINPORT EQU 0CFA8H ;7

10、4LS244端口地址OUTPORT EQU 0CFB0H ;74LS273端口地址BEGIN: MOV DPTR,#INPORTDO: MOVX A,DPTR ;读开关 MOV DPTR,#OUTPORT MOVX DPTR,A ;显示状态 MOV R1,#10H ;延时T0: MOV R0,#0FFHT1: DJNZ R0,T1 DJNZ R1,T0 LJMP BEGINEND3 实验三 中断实验 有急救车的交通灯控制实验3.1实验要求在实验三的内容基础上增加允许急救车优先通过的要求。当有急救车到达的时候,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,

11、交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。3.2实验目的1、 学习外部中断技术的基本使用方法。2、 学习中断处理程序的编程方法。3.3实验原理交通灯的燃灭规律见实验三。本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC,标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延迟程序不能混用,本实验给出的程序中,主程序延迟用的是R3、R4、R5。中断延迟用的是R1、R2和新的R3。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据

12、保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作: MOV A, #0F0H (0) MOVX R1, A (1) MOV SAVE, A (2)程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下

13、则没有问题。发生中断时两方向的红灯一起亮10秒,然后返回中断前的状态。3.4 实验内容(包括实验电路和程序流程图)3.5实验结果成功在交通灯的正常循环中加入了中断操作,有急救车通过的时候两个红灯均点亮,通过后从寄存器中取出中断前的结果,继续循环。3.6 实验结果讨论分析实验成功模拟了中断操作,需要注意的是中断钱需要对堆栈进行操作,同时如果不设置恢复程序中断前的数据会较容易丢失。3.7 实验程序代码变量说明:R0用来控制黄灯闪烁次数; R1R7用来做延时控制变量。 EW段表示东西导通南北截止; SNBY是SN STAND BY的缩写,表示南北准备; SN段表示南北导通东西截止。 延时控制由若干延

14、时控制单元组合而成(这里参考了一下老师的做法)。 片选地址、显示单元调用和读入参考了老师的做法。OUTPORT EQU 0CFB0H ;端口地址SAVE EQU 55H ;save保存从端口cfa0输出的数据CSEG AT 0000H LJMP BEGINCSEG AT 4003H ; LJMP INTCSEG AT 4100HBEGIN: SETB IT0 SETB EX0 SETB EA MOV A,#03H ;置首显示码 MOV SAVE,A ;保存 ACALL SHOW ;显示输出 ACALL T03 ;延时3秒EW: MOV A,#12H ;东西导通;南北截止 MOV SAVE,A

15、ACALL SHOW ACALL T10 ;延时10秒 MOV A,#02H ;东西截止 MOV SAVE,A ACALL SHOW MOV R0,#05H ;东西黄灯闪烁5次SNBY: MOV A,#06H MOV SAVE,A ACALL SHOW ACALL T02 MOV A,#02H MOV SAVE,A ACALL SHOW ACALL T02 DJNZ R0,SNBY MOV A,#03H ;东西南北都截止 MOV SAVE,A ACALL SHOW ACALL T02 ;延时0.2秒 MOV A,#21H ;东西截止,南北导通 MOV SAVE,A ACALL SHOW ACA

16、LL T10 ;延时10秒 MOV A,#01H ;南北截止 MOV SAVE,A ACALL SHOW MOV R0,#05H ;南北黄灯闪烁5次SN: MOV A,#09H MOV SAVE,A ACALL SHOW ACALL T02 MOV A,#01H MOV SAVE,A ACALL SHOW ACALL T02 DJNZ R0,SN MOV A,#03H ;东西南北都截止 MOV SAVE,A ACALL SHOW ACALL T02 ;延时0.2秒 LJMP EW ;转EW循环T10: MOV R3,#100 ;延时10秒 LJMP TU1T03: MOV R3,#30 ;延时

17、3秒 LJMP TU1T02: MOV R3,#02 ;延时0.2秒TU1: MOV R4,#200TU2: MOV R5,#126TU3: DJNZ R5,TU3 DJNZ R4,TU2 DJNZ R3,TU1 RETINT: CLR EA PUSH ACC ;中断处理 PUSH PSW MOV A,R3 PUSH ACC MOV A,R0 PUSH ACC MOV A,#03H ;东西南北都截止 ACALL SHOW TT10: MOV R1,#100 ;延时10秒 TT01: MOV R0,#200TT02: MOV R3,#126TT03: DJNZ R3,TT03 DJNZ R2,T

18、T02 DJNZ R1,TT01 MOV A,SAVE ;取SAVE中保存数据输出到cfa0端口 ACALL SHOW POP ACC ;出栈 MOV R0,A POP ACC ;出栈 MOV R3,A POP PSW POP ACC SETB EA ;允许外部中断 RETISHOW: MOV DPTR,#OUTPORT MOVX DPTR,A RETEND4 实验四 定时器实验 -循环彩灯实验4.1实验要求由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0P1.7分别接发光二极管的L1L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行

19、设计。例程给出的变化花样为:L1、L2、L8依次点亮;L1、L2、L8依次熄灭;L1、L2、L8全亮、全灭。各时序时间间隔为0.5秒。让发光二极管按以上规律循环显示下去。4.2实验目的1、 学习8031内部计数器的使用和编程方法。2、 进一步掌握中断处理程序的编写方法。4.3实验原理1、定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。本实验中时钟频率为6.144MHz,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.1秒延时。时间常数可按下述方法确定

20、:机器周期=12/晶振频率=126.144106=1.953110-6s设计数初值为X,则(2e+16-X)1.953110-6=0.1,可求得X=14336化为十六进制则X=3800H,故初始值为TH1=38H,TL1=00H2、初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。3、设计中断服务程序和主程序中断服务程序除了完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。4.4 实验内容(包括实验电路和程序流程图

21、)4.5 实验结果彩灯按照tab表里的规则依次点亮。4.6 实验结果讨论分析彩灯点亮实验中,需要注意衔接的处理,以使其美观。同时彩灯的样式受tab表大小的限制,样式容易单一。4.7 实验程序代码变量说明:R0用来储存计数值; R1为查表控制变量。OUTPORT EQU 0CFB0HCSEG AT 0000HLJMP BEGINCSEG AT 401BH ;定时器/计数器1中断程序入口地址LJMP INTCSEG AT 4100HBEGIN: MOV A,#01H ;首显示码 MOV R1,#03H ;03为基址寄存器到表首的距离 MOV R0,#5H ;05是计数值 MOV TMOD,#10H

22、 ;计数器置为方式1 MOV TL1,#00H ;装入时间常数 MOV TH1,#038H ORL IE,#88H ;CPU中断开放标志位和定时器 SETB TR1 ;开始计数DO1: CJNE R0,#00,SHOW MOV R0,#5H ;重置计数值 INC R1 ;表地址偏移量加1 CJNE R1,#27H,DO2 MOV R1,#03H ;如到表尾,则重置偏移量初值DO2: MOV A,R1 ;从表中取显示码入累加器 MOVC A,A+PC JMP SHOW DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH DB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH DB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH DB 0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00HSHOW: MOV DPTR,#OUTPORT MOVX DPTR,A MOV P1,A ;将取得的显示码从P1口输出显示 JMP DO1INT: CLR TR1 ;停止计数 DEC R0 MOV TL1,#00H ;重置时间常数初值 MOV TH1,#038H END 教师评语:实验分数:指导教师签字:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2