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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

硬件综合实验报告.docx

1、硬件综合实验报告 综合实验报告( 2009 - 2010年度第2学期)名 称: 硬件设计与实践 题 目: 交通信号灯 院 系: 班 级: 学 号: 学生姓名: 指导教师: 设计周数: 两周 成 绩: 日期:2010 年 07月08日硬件综合实验 任 务 书一、 目的、要求1 掌握8255的工作方式,掌握用8255集成电路芯片的接口电路硬件设计与连接,编写程序使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的规律变化,同时用二组2位数码管表示南北、东西方向交通信号灯的时间。2、 掌握8259的工作方式,掌握中断程序设计的基本方法和技能,掌握用汇编语言的调试和运行程序的方法。设计急救车到达时

2、,两个方向交通信号灯全变红,以便让急救车通过。二、 主要内容1、通过8255, 8259可编程接口芯片,利用实验台模拟实现十字路口交通信号灯的变化。2、画出流程图,硬件连接,编制程序,调试运行。3、实现十字路口交通信号灯的正常交替变化以及人工指挥交通。4、特殊情况下急救车紧急通过。三、 进度计划序号综合实验内容完成时间备注1任务需求分析2010年6月 29日2软件及硬件设计2010年 7月 1日3调试运行2010年 7月 9日4验收,并写课程设计报告2010年 7月 10日四、 综合实验成果要求1 课程设计报告,包括硬件连线图,程序设计流程图,实验数据2 软件程序,运行结果和结论五、 考核方式

3、1 分析设计报告(占50%)2 实验结果验收(占50%)学生姓名: 陈龙艳指导教师: 2010年 7月 8日一、实验的目的与要求1掌握8255的工作方式,掌握用8255集成电路芯片的接口电路硬件设计与连接,编写程序使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的规律变化,同时用二组2位数码管表示南北、东西方向交通信号灯的时间。2掌握8259的工作方式,掌握中断程序设计的基本方法和技能,掌握用汇编语言的调试和运行程序的方法。设计急救车到达时,两个方向交通信号灯全变红,以便让急救车通过。二、设计内容设有一十字路口,其道路为南北方向和东西方向,南北东西各用一组发光二极管表示。此路口交通信号灯

4、的亮灭规律如下:初态为南北、东西红灯全亮,禁止通行。1) 南北绿灯亮20s,东西红灯亮22s;2) 南北绿灯闪烁;3) 南北绿灯灭,黄灯亮2s;4) 南北黄灯灭,红灯亮22s,东西绿灯亮20s;5) 东西绿灯闪烁;6) 东西绿灯灭,黄灯亮2s;7) 东西黄灯灭;8) 转向1)循环执行。9) 若有急救车到达,两个方向灯全部变红。急救车过后恢复正常运行。说明:南北、东西各用一组2位数码管显示指示灯的剩余时间(倒计时),绿灯闪烁的时间包含在绿灯亮的20s时间内。三、设计主要思路1)交通信号灯及数码管显示的控制可通过8255实现。我们可编程设置8255的PA口为输出,且工作方式为方式0。其中PA0、P

5、A1、PA2控制南北方向的红、黄、绿灯,PA4、PA5、PA6控制东西方向的红、黄、绿灯;并且设置段码缓存,位码缓存,分别控制数码管的段码和位码。2)交通信号灯亮、灭的时间及数码管显示的时间通过8253控制,主要用实验箱上F/4端子输出地时钟作为8253的CLK1的计数源,OUT1的输出作为CLK0的输入,使得8253每隔1s向8259发送一次中断请求,OUT0作为中断脉冲,8259实现具体的计数功能。3)各芯片的主要工作原理和具体的功能:8253定时/计数器:其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0、CLK

6、1是计数器0、1的时钟脉冲输入端, GATE0、GATE1是门控脉冲输入端, OUT0、OUT1是输出端。本次实验设计的8253是工作在1MHZ的脉冲下,计时器的初值分别是100和10000,即每隔一秒发出一次信号。8255 可编程并行接口:数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出

7、锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。本实验主要是使用PA口控制LED 显示灯,通过A

8、口输出地二进制编码来实现某一时刻灯亮的情况,“1”表示灯亮,“0”表示灯灭。8259 中断控制器:初始化命令字(ICW1ICW4)操作命令字(OCW1OCW3)程序初始化中分别对各命令字初始化:ICW1 EQU 00010011BICW2 EQU 00100000BICW4 EQU 00000001BOCW1 EQU 11111110BCS8259A EQU 0B000HCS8259B EQU 0B001H置初始值IINIT PROC NEAR ; 中断初始化程序 MOV DX,CS8259A MOV AL,ICW1 OUT DX,AL MOV DX,CS8259B MOV AL,ICW2 O

9、UT DX,AL MOV AL,ICW4 OUT DX,AL MOV AL,OCW1 OUT DX,AL RETIINIT ENDP四、流程图 设计的大体流程图为: 主要思路是,定义数据段,初始化8255,8253,8259芯片,8253芯片设计成每隔一秒钟发出一次信号。出现紧急情况时,在状态位未复位时将一直保持着南北,东西全是亮红灯,当标志位复位后,将回到当前时间应该出现的状态。主程序流程图中断服务程序流程图时间显示子程序流程图LED灯显示程序流程图主要电路图五、实验心得体会及难点分析 本次实验基本达到了实验目的。通过本次实验,我基本掌握了数码显示管的使用方法,并且进一步掌握了8253、82

10、55、8259各芯片的使用,进一步熟悉了它们的工作方式以及各控制字的确定,编写,各芯片的初始化程序。经过设计,更改基本上实现了模拟十字路口的交通信号,即东西红灯亮时南北绿灯亮,当南北绿灯亮的时间小于三秒时进行闪烁,同时,在基本上实现基本程序之后,我们加入了比较简单的紧急情况控制信号,虽然结果看上去并没有什么太难的,但在编写程序和设计时我们花了很多时间,其中遇到了很多问题,但通过同学和老师的帮助、讲解,都一一的解决了。其中主要遇到的难点如下:本次实验,我们设计时首先是先将所用到的基本子程序和中断服务程序,先实现基本的功能后,才加上其他的功能。其中遇到了比较多的问题,首先,在实现数码管显示的时候遇

11、到了问题,我们通过研究数码管显示的实验初步了解了段码和位码,知道了显示数据的方法之一,但是在我们设计程序时是先确定位码,后确定段码的,但是实验显示上出现了一定的问题,主要是因为我们的显示程序中选择段码和位码并不是同步的,在上一次位码中显示了段码的数据后,选择下一个位码时仍然会显示该段码的数据,然后在显示新读入的数据,从而造成了有阴影的结果,我们知道,如果改成使用缓存将数据全部读入再同时显示在数码显示管中,将会解决此问题,但经过更改,程序出现了比较大的错误,未能调试成功。其次,我们程序中出现的错误也算是我们本次实验的一个难点,就是我们在实现实验时,因为有多个条件跳转语句,因此,我们在跳转上出现的

12、错误比较多,有没跳转对的,有条件出现偏差的,但这些难点都通过重头到尾理一次程序更改过来了。还有,在加入紧急情况下东西、南北全是红灯亮,时间照常进行,而当紧急信号结束时,为了让LED灯恢复到当前显示的时间所代表的状态下,我们在程序中加入了一些判断语句,但因为多次使用寄存器AX,从而开始的时候程序出现了显示错误,最后,我们在程序中加入了PUSH/POP语句,将其保存、释放,从而使得寄存器内的值不会改变。具体代码实现为PUSH AX MOV DX,PB IN AL,DX CMP AL,80H JZ DQ1 POP AX MOV DX,PA OUT DX,AL JMP DQ2 DQ1: POP AX

13、DQ2: PUSH AX . . . T3: CALL LEDDISP POP AX CMP TEMP,0 JZ T1 RET最后,感谢老师的耐心指导,让我们比较顺利的完成了本次实验。附件:实验程序代码:DATA SEGMENTOUTBIT EQU 08002HOUTSEG EQU 08004HCONTROL EQU 9003HCOUNT0 EQU 9000HCOUNT1 EQU 9001HCOUNT2 EQU 9002HMODE EQU 082HPA EQU 0A000HPB EQU 0A001HPC EQU 0A002HCTL8255 EQU 0A003HICW1 EQU 00010011

14、BICW2 EQU 00100000BICW4 EQU 00000001BOCW1 EQU 11111110BCS8259A EQU 0B000HCS8259B EQU 0B001HTEMP DB 0NSR DW 0NSY DW 0NSG DW 0EWR DW 0EWY DW 0EWG DW 0DATA ENDS;*CODE SEGMENT ASSUME CS:CODE,DS:DATASTART PROC NEAR MOV DX,CTL8255 MOV AL,MODE OUT DX,AL CLI MOV AL,00010001B MOV DX,PA OUT DX,AL MOV DX,OUTBI

15、T MOV AL,0 OUT DX,AL mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 10000 mov dx, COUNT0 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 mov al, 76h; 01110110B ; 计数器1,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 100 mov dx, COUNT1 out dx, al ; 计数器低字节 mov al, ah out

16、 dx, al ; 计数器高字节 MOV AX,0 MOV DS,AX MOV BX,4*ICW2 MOV AX,CODE SHL AX,4 ADD AX,OFFSET IENTER MOV BX,AX MOV AX,0 INC BX INC BX MOV BX,AX CALL IINIT MOV AX,DATA MOV DS,AX STI LP: MOV DX,PB IN AL,DX CMP AL,80H JNZ LY0 MOV AL,00010001B MOV DX,PA OUT DX,AL MOV AL,00010100B JMP LY00 LY0: mov al,00010100B m

17、ov dx,PA out dx,al LY00: MOV NSG,20 MOV EWR,22 CALL TIMEDISP MOV DX,PB IN AL,DX CMP AL,80H JNZ LY1 MOV AL,00010001B MOV DX,PA OUT DX,AL MOV AL,00010010B JMP LY11 LY1: mov al,00010010B mov dx,PA out dx,al LY11: MOV NSY,2 CALL TIMEDISP MOV DX,PB IN AL,DX CMP AL,80H JNZ LY2 MOV AL,00010001B MOV DX,PA O

18、UT DX,AL MOV AL,01000001B JMP LY22 LY2: mov al,01000001B mov dx,PA out dx,al LY22: MOV NSR,22 MOV EWG,20 CALL TIMEDISP MOV DX,PB IN AL,DX CMP AL,80H JNZ LY3 MOV AL,00010001B MOV DX,PA OUT DX,AL MOV AL,00100001B JMP LY33 LY3: mov al,00100001B mov dx,PA out dx,al LY33: MOV EWY,2 CALL TIMEDISP JMP LPST

19、ART ENDPIINIT PROC NEAR ; 初始化子程序 MOV DX,CS8259A MOV AL,ICW1 OUT DX,AL MOV DX,CS8259B MOV AL,ICW2 OUT DX,AL MOV AL,ICW4 OUT DX,AL MOV AL,OCW1 OUT DX,AL RETIINIT ENDPIENTER PROC NEAR ;中断服务程序 PUSH AX PUSH DX CMP NSG,3 JZ L1 CMP NSG,2 JZ L2 CMP EWG,3 JZ L3 CMP EWG,2 JZ L4 JMP CNS L1: MOV DX,PA MOV AL,00

20、010000B OUT DX,AL JMP CNS L2: MOV DX,PA MOV AL,00010100B OUT DX,AL JMP CNS L3: MOV DX,PA MOV AL,00000001B OUT DX,AL JMP CNS L4: MOV DX,PA MOV AL,01000001B OUT DX,AL CNS: CMP NSR,0 JNZ C1 CMP NSY,0 JNZ C2 CMP NSG,0 JNZ C3 JMP CEW C1: DEC NSR JMP CEW C2: DEC NSY JMP CEW C3: DEC NSG CEW: CMP EWR,0 JNZ

21、C4 CMP EWY,0 JNZ C5 CMP EWG,0 JNZ C6 JMP EXIT C4: DEC EWR JMP EXIT C5: DEC EWY JMP EXIT C6: DEC EWG EXIT: MOV DX,PB IN AL,DX CMP AL,80H JNZ J MOV AL,00010001B MOV DX,PA OUT DX,AL J: MOV DX,CS8259A MOV AL,20H OUT DX,AL POP DX POP AX IRETIENTER ENDPTIMEDISP PROC NEAR ;时间显示子程序 MOV TEMP,0 T1: PUSH AX MO

22、V DX,PB IN AL,DX CMP AL,80H JZ DQ1 POP AX MOV DX,PA OUT DX,AL JMP DQ2 DQ1: POP AX DQ2: PUSH AX MOV CH,0 CMP NSR,0 JNZ TIME1 CMP NSY,0 JNZ TIME2 CMP NSG,0 JNZ TIME3 MOV TEMP,1 JMP TIME3 TIME1: MOV AX,NSR JMP T2 TIME2: MOV AX,NSY JMP T2 TIME3: MOV AX,NSG T2: CMP EWR,0 JNZ TIME4 CMP EWY,0 JNZ TIME5 CMP

23、 EWG,0 JNZ TIME6 MOV TEMP,1 JMP TIME6 TIME4: MOV BX, EWR JMP T3 TIME5: MOV BX,EWY JMP T3 TIME6: MOV BX,EWG T3: CALL LEDDISP POP AX CMP TEMP,0 JZ T1 RETTIMEDISP ENDPLEDDISP PROC NEAR ;数码管显示子程序 CALL STOR MOV AX,BX CALL STOR RETLEDDISP ENDPSTOR PROC NEAR MOV CL,10 DIV CL CALL COMP MOV AL,AH CALL COMP R

24、ETSTOR ENDPCOMP PROC NEAR cmp al,0 jz d0 cmp al,1 jz d1 cmp al,2 jz d2 cmp al,3 jz d3 cmp al,4 jz d4 cmp al,5 jz d5 cmp al,6 jz d6 cmp al,7 jz d7 cmp al,8 jz d8 cmp al,9 jz d9 d0: call display0 JMP EX d1: call display1 JMP EX d2: call display2 JMP EX d3: call display3 JMP EX d4: call display4 JMP EX

25、 d5: call display5 JMP EX d6: call display6 JMP EX d7: call display7 JMP EX d8: call display8 JMP EX d9: call display9 EX: RETCOMP ENDPdisplay0 proc near cmp ch,0 jz l01 cmp ch,1 jz l02 cmp ch,2 jz l03 cmp ch,3 jz l04 l01: mov dx,8002h mov al,20h out dx,al JMP exit0 l02: mov dx,8002h mov al,10h out

26、dx,al jmp exit0 l03: mov dx,8002h mov al,08h out dx,al JMP exit0 l04: mov dx,8002h mov al,04h out dx,al jmp exit0 exit0: mov al,3fh mov dx,8004h out dx,al INC CH RETdisplay0 endpdisplay1 proc near cmp ch,0 jz l11 cmp ch,1 jz l12 cmp ch,2 jz l13 cmp ch,3 jz l14 l11: mov dx,8002h mov al,20h out dx,al

27、jmp exit1 l12: mov dx,8002h mov al,10h out dx,al jmp exit1 l13: mov dx,8002h mov al,08h out dx,al jmp exit1 l14: mov dx,8002h mov al,04h out dx,al jmp exit1 exit1: mov al,06h mov dx,8004h out dx,al INC ch RETdisplay1 endpdisplay2 proc near cmp ch,0 jz l21 cmp ch,1 jz l22 cmp ch,2 jz l23 cmp ch,3 jz

28、l24 l21: mov dx,8002h mov al,20h out dx,al jmp exit2 l22: mov dx,8002h mov al,10h out dx,al jmp exit2 l23: mov dx,8002h mov al,08h out dx,al jmp exit2 l24: mov dx,8002h mov al,04h out dx,al jmp exit2 exit2: mov al,5bh mov dx,8004h out dx,al INC ch RETdisplay2 endpdisplay3 proc near cmp ch,0 jz l31 cmp ch,1 jz l32 cmp ch,2 jz l33 cmp ch,3 jz l34 l31: mov dx,8002h mov al,20h out dx,al jmp exit3 l32: mov dx,8002h mov al,10h out dx,al jmp exit3 l33: mov dx,8002h mov al,08h out dx,al jmp exit2 l34: mov dx,8002h mov al,04h out dx,al jmp exit3

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

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