收藏 分销(赏)

硬件课程设计交通灯指挥系统.doc

上传人:精**** 文档编号:9814727 上传时间:2025-04-09 格式:DOC 页数:27 大小:1.60MB
下载 相关 举报
硬件课程设计交通灯指挥系统.doc_第1页
第1页 / 共27页
硬件课程设计交通灯指挥系统.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 硬件课程设计 实验报告 课题名称 交通灯指挥系统 学院 计算机科学与技术学院 交通灯指挥系统 1、 设计任务与要求 编写一个交通灯控制程序, 实现东西路口与南北路口状态灯的转换和紧急处理。采用8253芯片计数, 输出1S的时钟脉冲, 并使用8255接口芯片控制LED亮灭, 同时让8279芯片显示倒计时, 键盘控制紧急处理按键, 以此实现交通灯指挥控制系统。 2、 总体方案与说明 ①南北红灯, 东西绿灯, 亮6秒, 且数码管9秒倒计时显示。 ②南北红灯, 东西黄灯, 亮3秒。 ③南北绿灯, 东西红灯, 亮6秒, 且数码管6秒倒计时显示。 ④南北黄灯, 东西红灯, 亮3秒, 且数码管3秒倒计时显示。 ⑤转①重复 l 按键盘1键, 则南北红灯, 东西绿灯; 按键盘0键, 恢复原状态。 l 按键盘2键, 则南北绿灯, 东西红灯; 按键盘0键, 恢复原状态。 l 按键盘4键, 则东西南北方向全亮红灯, 按键盘0键, 恢复原状态。 l 按键盘5键, 则东西南北方向全亮绿灯, 按键盘0键, 恢复原状态。 l 按键盘6键, 则东西南北方向全亮黄灯, 按键盘0键, 恢复原状态。 交通指挥系统正常运行时间表 南北方向 红灯 绿灯 黄灯 时间 9s 6s 3s 东西方向 绿灯 黄灯 红灯 时间 6s 3s 9s 3、 硬件框图与说明 l 芯片8253原理 简介: 8253内部有三个计数器, 分别成为计数器0、 计数器1和计数器2, 她们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字, 互相之间工作完全独立。每个计数器经过三个引脚和外部联系, 一个为时钟输入端CLK, 一个为门控信号输入端GATE, 另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器, 还有一个16位的计数初值寄存器CR、 一个计数执行部件CE和一个输出锁存器OL。 工作原理: 8253具有3个独立的计数通道, 采用减1计数方式。在门控信号有效时, 每输入1个计数脉冲, 通道作1次计数操作。当计数脉冲是已知周期的时钟信号时, 计数就成为定时。 工作方式: 8253中各通道可有6种可供选择的工作方式, 以完成定时、 计数或脉冲发生器等多种功能。本次实验中, 采用了工作方式3( 方波发生器) 。 •方式0——计数结束产生中断 一次定时或计数,重写初值,启动新一轮的计数 •方式1——可编程的单脉冲(单稳)触发器 GATE边沿触发,启动新一轮计数 •方式2——分频器(速度波发生器) 具有计数初值重装能力 •方式3——方波发生器 具有计数初值重装能力 •方式4——软件触发的选通信号发生器一次定时,重写初值,启动新一轮的计数 •方式5——硬件触发的选通信号发生器GATE边沿触发新一轮计数 8253具体的控制字格式如下: l 芯片原理8255 简介: 一个并行输入/输出的LSI芯片, 多功能的I/O器件, 可作为CPU总线与外围的接口。具有24个可编程设置的I/O口, 即使3组8位的I/O口为PA口, PB口和PC口。它们又可分为两组12位的I/O口, A组包括A口及C口(高4位, PC4~PC7), B组包括B口及C口(低4位, PC0~PC3)。A组可设置为基本的I/O口, 闪控(STROBE)的I/O闪控式, 双向I/O3种模式; B组只能设置为基本I/O或闪控式I/O两种模式, 而这些操作模式完全由控制寄存器的控制字决定。 l 芯片原理8279 简介: 8279是可编程的键盘、 显示接口芯片。它既具有按键处理功能, 又具有自动显示功能, 在单片机系统中应用很广泛。8279内部有键盘FIFO( 先进先出堆栈) /传感器, 双重功能的8*8=64B RAM, 键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16*8, 即显示器最大配置可达16位LED数码显示。 工作方式: ( 1) 键盘工作方式。8279在键盘工作方式时, 可设置为双键互锁方式和N键循回方式。双键互锁方式: 若有两个或多个键同时按下时, 不论按键先后顺序如何, 只能识别最后一个被释放的键, 并把该键值送入FIFO RAM中。N键循回方式: 一次按下任意个键均可被识别, 按键值按扫描次序被送入FIFO RAM中。( 2) 显示方式。8279的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示RAM, 则可由显示器显示出来, 因此显示数据写入显示RAM的顺序, 决定了显示的次序。左端入口方式即显示位置从显示器最左端1位( 最高位) 开始, 以后显示的字符逐个向右顺序排列; 右端入口方式即显示位置从显示器最右端1位( 最低位) 开始, 已显示的字符逐个向左移位。但无论左右入口, 后输入的总是显示在最右边。 l 硬件连线图 l 硬件连线实物图 4、 软件主要模块流程图 l 8255模块流程图 l 8253模块流程图 l 8279显示模块流程图 l 8279键盘输入及判断模块流程图 l 总流程图 5、 源程序清单与注释 Z8279 EQU 212H D8279 EQU 210H CODE SEGMENT ASSUME CS:CODE DS:DATA DATA SEGMENT A DB 1 DUP(?) B DB 1 DUP(?) C DB 1 DUP(?) DATA ENDS START: MOV DX,20BH MOV AL,00110111B OUT DX,AL MOV DX,208H MOV AL,00H OUT DX,AL MOV AL,50H OUT DX,AL MOV DX,20BH MOV AL,01110111B OUT DX,AL MOV DX,209H MOV AL,00H OUT DX,AL MOV AL,02H OUT DX,AL ;8253初始化 MOV DX,203H MOV AL,10010000B OUT DX,AL ;8255初始化 L0: MOV A,09H ; 设置计数初值9s MOV B,06H ; 设置计数初值6s MOV C,03H ; 设置计数初值3s L1: MOV DX,201H MOV AL,01111011B ;南北红, 东西绿 OUT DX,AL MOV CL,A CALL SHOW ; 调用显示模块 CALL LOK ; 调用检测上升沿子程序 CALL KZ ; 调用键盘检测及特殊键判断子程序 DEC A CMP A,03H JNZ L1 PP: MOV DX,201H MOV AL,01110111B;南北红, 东西黄 OUT DX,AL MOV CL,A CALL SHOW ; 调用显示模块 CALL LOK ; 调用检测上升沿子程序 CALL KZ ; 调用键盘检测及特殊键判断子程序 DEC A CMP A,00H JNZ PP L4: MOV DX,201H MOV AL,11001111B ;南北绿, 东西红 OUT DX,AL MOV CL,B CALL SHOW ; 调用显示模块 CALL LOK ; 调用检测上升沿子程序 CALL KZ ; 调用键盘检测及特殊键判断子程序 DEC B CMP B,00H JNZ L4 L5: MOV DX,201H MOV AL,10101111B ;南北黄, 东西红 OUT DX,AL MOV CL,C CALL SHOW ; 调用显示模块 CALL LOK ; 调用检测上升沿子程序 CALL KZ ; 调用键盘检测及特殊键判断子程序 DEC C CMP C,00H JNZ L5 JMP L0 LOK PROC NEAR ; 检测上升沿子程序 L2:MOV DX,200H IN AL,DX CMP AL,00H JNZ L2 L3:IN AL,DX CMP AL,01H JNZ L3 RET LOK ENDP SHOW PROC NEAR ; 显示模块 MOV DX,Z8279 MOV AL,00H OUT DX,AL MOV AL,38H OUT DX,AL;初始化 8279 MOV DX,D8279 MOV AL,00H OUT DX,AL OUT DX,AL OUT DX,AL OUT DX,AL OUT DX,AL OUT DX,AL OUT DX,AL OUT DX,AL ; 熄灭8279数码管 MOV AL,CL MOV AH,0 MOV DL,10 DIV DL ;AX/DL=BL...BH MOV BL,AH ; 将余数( 即秒的个位) 放在BL中 MOV BH,AL ; 将商( 即秒的十位) 放在BH中 CALL TRANS ; 调用8279显示秒的个位 MOV BL,BH CALL TRANS ; 调用8279显示秒的十位 RET SHOW ENDP TRANS PROC NEAR ;数码管显示数值程序 ONE: CMP BL,1 JNZ TWO MOV AL,00000110B TWO: CMP BL,2 JNZ TRI MOV AL,01011011B TRI: CMP BL,3 JNZ FOR MOV AL,01001111B FOR: CMP BL,4 JNZ FIV MOV AL,01100110B FIV: CMP BL,5 JNZ SIX MOV AL,01101101B SIX: CMP BL,6 JNZ SEV MOV AL,01111101B SEV: CMP BL,7 JNZ EIT MOV AL,00000111B EIT: CMP BL,8 JNZ NIN MOV AL,01111111B NIN: CMP BL,9 JNZ ZRO MOV AL,01101111B ZRO: CMP BL,0 JNZ SHW MOV AL,00111111B SHW: MOV DX,D8279 OUT DX,AL RET TRANS ENDP KZ PROC NEAR ; 键盘检测及判断模块 MOV DX,Z8279 IN AL,DX AND AL,0FH CMP AL,00H JE JIESHU MOV AL,40H OUT DX,AL MOV DX,D8279 IN AL,DX NHDL: CMP AL,02D JNZ NLDH MOV DX,201H;8255B MOV AL,01111011B;南北红东西绿 OUT DX,AL CALL HUIFU NLDH: CMP AL,10D JNZ HH MOV DX,201H;8255B MOV AL,11001111B;南北绿东西红 OUT DX,AL CALL HUIFU HH: CMP AL,01D JNZ LL MOV DX,201H;8255B MOV AL,01101111B;东西南北全红 OUT DX,AL CALL HUIFU LL: CMP AL,09D JNZ YY MOV DX,201H;8255B MOV AL,11011011B;东西南北全绿 OUT DX,AL CALL HUIFU YY: CMP AL,33D JNZ JIESHU MOV DX,201H;8255B MOV AL,10110111B;东西南北全黄 OUT DX,AL CALL HUIFU JIESHU: RET KZ ENDP HUIFU PROC NEAR ; 恢复键0判断 WAITS: MOV DX,Z8279 IN AL,DX AND AL,0FH CMP AL,00H JE WAITS MOV AL,40H OUT DX,AL MOV DX,D8279 IN AL,DX CMP AL,03D JNZ WAITS RET HUIFU ENDP CODE ENDS END START 6、 问题分析与解决方案 l 8279数码管显示 问题分析: 经过查阅大量8279资料初步对8279有了一定的了解, 在8279数码管显示数字的过程中遇到了诸多问题, 如: 数码管控制字、 显示出错、 RAM清零等重要操作无法正常实现。 解决方案: ①采用键盘/显示控制字00000000B, 时钟编程控制字00111000B, 各数字对应的LED八段显示数据; ②8279数据口和控制口混淆, 数据输出至控制口中而出现显示错误; ③清楚显示RAM和FIFO后无法正常显示数据, 采用输出”00H”逐个LED熄灭的方式熄灭LED, 达到清零目的。 l 8279键盘输入及判断 问题分析: ①判断键盘是否有按键按下; ②怎样判断按下的按键对应的键码值; ③代码冗余复杂 ④特殊键按下后恢复问题 解决方案: ①读8279控制口, 让得到的状态字和0FH相与, 其结果再用CMP和00H比较, 以此判断是否有键按下; ②经过测试每一个按键, 确定各个键码值; ③采用子程序并调用子程序的方式, 重复利用了相同的代码, 减少了代码的行数; ④在进入特殊状态下不断地循环检测是否有恢复键”0键”按下。 l 各芯片之间的组合 问题分析: 调用子程序和循环的顺序混乱 解决方案: 首先实现单个芯片的各项功能, 再将每个芯片加入到总程序中, 使总程序过程清晰明了。 7、 结论与体会 经过这次硬件课程设计, 我们对汇编语言和各个接口芯片8253、 8255、 8279有了更深入的了解。在实验中, 经过和同学交流, 开阔了自己的思路, 改进了程序的方法, 使程序明晰易懂、 更加高效。在这次实验中, 我们自主学习了8279芯片, 并遇到了诸多问题和困难。发现将书本中的理论性知识运用在实际中还是有一定困难的, 需要经过大量的阅读资料、 实践、 学习代码实例, 才能不断地更正以前的错误思想、 改进代码, 完成所选择的课题。 在整个课程设计中, 我们得到了许多老师和同学的热心帮助、 鼓励, 这让我们更加相信团队的力量不可忽视, 只有同心协力、 分工明确才能高效地完成任务。 8、 设备与环境 硬件: 微机原理与接口技术试验箱 软件: Windows XP及以上的操作系统 Microsoft Office Visio Microsoft Word HK88TE 9、 参考资料 1.《微型计算机原理与接口技术》第4版 周荷琴 吴秀清著 中国科学技术大学出版社 2.《汇编语言》第2版 王爽著 清华大学出版社
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服