微机原理及应用课程设计_数码管交通灯教材

合集下载

微机课程设计 带数码管显示的交通灯模拟控制系统设计

微机课程设计 带数码管显示的交通灯模拟控制系统设计
微机课程设计
题 目 带数码管显示的交通灯模拟控制系统设计
课 程 名 称 微机原理及应用 A


物理与电气工程学院

业 自动化


08 级(2)班
学生姓名


指导教师
1
课题名称 带数码管显示的交通灯模拟控制系统设计
¡¢£
S01TU¤2(VSTW8A2XR59E3S5I9/O8P!CI"¥4¦5§6¨7©&89@AB"CDEFG!H"I812525#P$Q%R/&'( 8253#)
;C ÐìíéרÜ
MOV CX,4 FLASH: MOV AL,RED_ON
;ÛÜÝ
OUT DX,AL CALL DELAY MOV AL,RED_OFF
;ïðÚ ;ÛÜÞ
OUT DX,AL
CALL DELAY
LOOP FLASH START2: MOV DX,ADD8253_C
MOV AL,37H
;ç 0#ÏÒÓùú 1000Héûüìýþÿ 2M=1000H*2000 ;ç 8253 רè ;1#ÒÓñéòç 16 óôõèöéáî÷éBCD ø ;ç 1#ÒÓùú 2000HéûüìýþÿéáQ ¡ 1HZ ;çÒÓúyÛrÜ¢£Ï¦¤Ú¦ ;ï 8259 ù¥§¨© ;;ïïççggââ§§¨¨©©
;ÙÒÚÓ ;Û;ÛÜÜÞÝ ;ßàáâÔã
DATA SEGMENT
TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
COUNT DB ? SCAN DW 485
;äåæÓ
DATA ENDS
STCK SEGMENT STACK

《微机原理与接口技术》课程设计-交通灯

《微机原理与接口技术》课程设计-交通灯

信息工程系计算机科学与技术12计本1班1214110214黄 福朱 茜 2015年06月29日院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:目录一.课程设计目的 (3)二.课程设计任务 (3)三.总体设计方案 (3)五.程序设计流程图 (4)六. 程序连接图 (5)七.程序清单 (5)八.实验结果 (8)九.课程设计总结和体会 (8)一.课程设计目的用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。

⒈了解交通灯管理的基本工作原理⒉熟悉8253定时计数器的工作方式和编程应用⒊熟悉8255A并行接口的工作方式和编程应用二.课程设计任务本次课程设计的内容为双方向交通信号灯的控制和管理。

具体要求如下:1.东西方向车辆放行20秒钟。

即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。

2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。

此时东西方向仍维持红灯点亮。

3.循环重复执行1和2两步骤。

三.总体设计方案1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。

2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。

微机原理课程设计--带数码管显示的交通灯模拟控制系统设计

微机原理课程设计--带数码管显示的交通灯模拟控制系统设计

成绩南京工程学院课程设计说明书(论文) 题目带数码管显示的交通灯模拟控制系统设计课程名称微机原理及应用院系专业班级学生姓名学号设计地点指导教师设计起止时间:2013年12月23日至2017年12月27日目 录一、方案说明 …………………………………………………………………2 1、硬件设计 ..................................................................................................................................................................2 2 1.1 1.1、硬件接线图、硬件接线图、硬件接线图 ........................................................................................................................................................................................................................2 2 1.2 1.2、主机接线说明........................................................................、主机接线说明........................................................................、主机接线说明........................................................................33 2、软件设计 .................................................................................3 2.1 2.1、程序流程图、程序流程图、程序流程图 ................................................................................................................................................4 4 二.源程序清单 (55)三、调试现象 …………………………………………………………………10 四、心得体会…………………………………………………………………12 1.课程设计应达到的目的.课程设计应达到的目的通过课程设计加深理解课堂教学内容,通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。

微机原理课程设计说明(交通灯)

微机原理课程设计说明(交通灯)

2、有急救车通过时:(用中断实现)
两个方向的交通灯全为红(10S),急救车通过后恢 复正常信号。
3、 制作交通灯控制硬件电路板,编写软件
在XL1000-2000仿真仪实现交通信号灯控制。
(二)提高部分:实现智能交通灯控制
1、考虑左转灯控制
2、红绿灯点亮时间用键盘设定,用数码管
减“1”操作显示时间变化。。
附录:1、kerl-uvision集成调试软件的操作
操作步骤:
(1)双击桌面上的UV2快捷图标,启动软件。 (2)点击P工程 N新建工程 输入文件名并选择 存入的盘(如E:)点击保存。出现CPU屏幕,选Atmel AT89C51 点确定。屏幕左上方出现图标目标1, 原则上一个程序可建一个工程。 (3)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入:程序 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头)
③为了简化操作步骤,第一次使用时, 应当确认一 下软件的设置。首先点击下图的“设置”对话框在 自动编程的选项中选择: “擦除” “写入”“运 行目标板” (下图打钩的地方)然后点确定。由于 一般情况下,检测芯片,查空,校对,写加密等等 选项没有必要选择,会浪费编程时间。 ④在芯片类型的对话框中选择 MCU\ATMEL_51\AT89S52 然后点确定。 ⑤点击主界面的“打开”,找到要烧录的程序的 .HEX文件,然后点确定。
《微机原理机接口技术》课程设计
一、课程设计的目的: 1、加深对单片机的基本概念、基本原理、基 本结构的理解; 2、通过课程设计提高学生单片机的开发能力,
包括硬件设计和软件编程的能力。
二、课程设计的内容:
用单片机控制十字路口的交通灯,要求能

微机原理课程设计—交通灯控制

微机原理课程设计—交通灯控制

交通信号灯的控制一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。

通过本课程设计,使学生初步了解微机系统的硬件设备,学会 8086 系列编程指令的基本功能。

二、设计要求1、通过 8255A 并口来控制 LED 发光二极管的亮灭。

2、A 口控制红灯,B 口控制黄灯,C 口控制绿灯。

3、输出为 0 则亮,输出为 1 则灭。

4、用8253 定时来控制变换时间。

要求:设有一个十字路口,1、3 为南,北方向,2、4 为东西方向,初始态为 4 个路口的红灯全亮。

之后,1、3 路口的绿灯亮,2、4 路口的红灯亮,1、3 路口方向通车。

延迟 30 秒后,1、3 路口的绿灯熄灭,而 1,3 路口的黄灯开始闪烁(1HZ)。

闪烁 5 次后,1、3 路口的红灯亮,同时 2、4 路口的绿灯亮,2、4 路口方向开始通车。

延迟 30 秒时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁。

闪烁 5 次后,再切换到 1、3 路口方向。

之后,重复上述过程。

三、流程图:四、真值表:五、电路图:电路图中地址线连接在 A2,A3 上,用 74HC139 译码,故地址范围为00H~03H,04H~07H,08H~0BH,每个芯片的 A0、A1 均与8086 的A0、A1 相连,RD、WR 与8086 的RD、WR 相连,以控制芯片的读写。

8253 使用定时器 0,输出接 8259 的IR0,故中断向量为08H。

13 方向的绿灯同 PC0 相连,24 方向的绿灯同 PC1 相连,红灯、黄灯接 PA、PB,方式同上。

六、源程序:;-------------------------------------------------------------;模块作用:交通灯控制;编程语言:汇编;编程:孙逸痕,本程序无版权,欢迎使用;日期:2011-12-11;-------------------------------------------------------------;---------STACK------------------------------------------STACK SEGMENT STACK 'STACK'DW 32 DUP(0)STACK ENDS;---------DATA--------------------------------------------DATA SEGMENTCOUNT_L EQU 0H ;计数器初值COUNT_H EQU 0HADD_8253_T0 EQU 00H ;芯片地址ADD_8255 EQU 04HADD_8259 EQU 08HRED_ADD EQU ADD_8255 ;PAYELLOW_ADD EQU ADD_8255+1 ;PBGREEN_ADD EQU ADD_8255+2 ;PCLIGHT_ON EQU 01H ;Pi1/Pi0=01 (i=A,B)LIGHT_OFF EQU 03H ;Pi1/Pi0=11SYS_COUNTER DB 18 ;系统频率GREEN_COUNTER DB 30 ;绿灯30 秒计数YELLOW_COUNTER DB 5 ;黄灯5 秒计数DATA ENDS;----------CODE------------------------------------------CODE SEGMENTMAIN PROC FARASSUME SS:STACK,CS:CODE,DS:DATA;----系统初始化--------PUSH DSMOV AX,0PUSH AXMOV ES,AXMOV AX,DATAMOV DS,AX;----中断向量----------MOV AX,OFFSET TIMER ;装入中断向量表MOV ES:20H,AXMOV AX,SEG TIMERMOV ES:22H,AX;----8253 定时器 0 初始化---MOV AL,36HOUT ADD_8253_T0,AL ;16 位,方式 3MOV AL,COUNT_L ;装入初值OUT MOV OUT ADD_8253_T0,AL AL,COUNT_H ADD_8253_T0,AL;----8255 初始化--------MOV AL,80H ;方式0OUT ADD_8255+3,AL;----8259 初始化--------MOV AL,13H ;单片,边沿触发OUT ADD_8259,ALMOV AL,8H ;中断类型码为 08H~0FHOUT ADD_8259+1,ALMOV AL,0DHOUT ADD_8259+1,AL;-----系统运行---------SYS_ON:IN AL,ADD_8259+1 ;开中断IRQ0AND AL,0FEHOUT ADD_8259+1,ALMOV AL,LIGHT_ON ;开13 方向绿灯,24 方向红灯,关黄灯OUT GREEN_ADD,ALNEG ALOUT RED_ADD,ALMOV AL,LIGHT_OFFOUT YELLOW_ADD,ALGRE_30:JMP $ ;等待计时中断DEC GREEN_COUNTER ;等待绿灯亮30 秒JNZ GRE_30MOV BX,OFFSET GREEN_COUNTER ;复位计数器MOV [BX],30MOV AL,LIGHT_OFF ;关绿灯,开黄灯OUT GREEN_ADD,ALMOV AL,LIGHT_ONOUT YELLOW_ADD,ALYEL_5: JMP $ ;等待计时中断MOV AL,LIGHT_ONMOV AH,03H ;取辅助值(用于黄灯状态取反)放在AH 中SUB AH,ALXOR AL,AH ;黄灯状态取反OUT YELLOW_ADD,ALDEC YELLOW_COUNTER ;计时值,每一秒改变一次状态,共5 秒JNZ YEL_5MOV BX,OFFSET YELLOW_COUNTER ;复位计数器MOV [BX],5MOV AL,LIGHT_ON ;点亮红灯OUT RED_ADD ,ALMOV BX,OFFSET LIGHT_ON ;将13 边换位 24 边MOV [BX],AHMOV AL,LIGHT_OFF ;熄灭黄灯OUT YELLOW_ADD,ALMOV AL,LIGHT_ON ;24 边绿灯亮UT GREEN_ADD,ALJMP SYS_ON ;循环RET;----中断函数------------TIMER: DEC SYS_COUNTER ; 是否计数18 次JNZ OVERMOV BX,OFFSET SYS_COUNTER ;复位计数器MOV [BX],18POP AXINC AXINC AXPUSH AXOVER: IRETMAIN ENDPCODE ENDSEND MAIN。

微机原理课程设计交通信号灯正文3

微机原理课程设计交通信号灯正文3

1设计任务描述1.1设计题目:交通信号灯1.2设计内容利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号灯控制。

1.2.1设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。

为以后学生结合专业从事微机应用设计奠定基础。

1.2.2设计要求一、基本要求:1.(1)按实际交通灯控制规程控制;(2)当路口发生交通事故时,能强制A、B两路禁行;(3)K0-K7为开关,K7来模拟紧急情况,K1-K6来模拟车辆多少;D11-D8为黄灯;D7-D0分别为4红4绿。

2.也可以选择具有一定难度的其他题目,但要经过指导老师的同意。

3.认真查阅资料,理解题目要求。

4.按时上机,认真调试程序。

5.运行程序,检查结果是否和设计要求一致。

6.记录出现的问题及现象,并对问题进行分析,思考解决方法。

7.遵守课程设计时间安排。

8.独立思考,认真设计。

9.认真书写课程设计说明书,避免相互抄袭。

二、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

2.学生应撰写的内容为:目录、正文、参考文献等。

课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.说明书(论文)手写或打印均可。

手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。

4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

三、设计完成后应提交成果的种类、数量、质量等方面的要求提交课程设计说明书一份。

在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。

微机原理课程设计-8255控制交通灯[精选合集]

微机原理课程设计-8255控制交通灯[精选合集]

微机原理课程设计-8255控制交通灯[精选合集]第一篇:微机原理课程设计-8255控制交通灯微机原理课程设计:8255模拟交通灯1、目的:学习8255使用方法,学习模拟交通灯控制的方法,学习双色灯的使用。

2、要求:控制4个双色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。

3、电路及连线PC0-PC3连DG1-DG4,PC4-PC7连DR1-DR4。

8255片选CS8255连138译码处210H。

4、说明(1)因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1南北绿灯通车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

(2)双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

(3)74LS240为8输入输出的反向驱动器。

5、完成的任务(1)利用计算机和微机原理试验箱,将实验6的程序Tlamp_88.asm在试验箱运行和调试。

全速运行,观察整体效果。

单步运行,观察程序每条语句额执行效果,理解语句含义。

(2)修改实验连线为,PC7-PC4连DG1-DG4,PC3-PC0连DR1-DR4。

8255片选CS8255连138译码处210H孔。

将Tlamp_88.asm另存为jiaotong.asm。

修改jiaotong.asm,实现交通灯原有功能。

(3)修改实验连线为,PB7-PB4连DG1-DG4,PB3-PB0连DR1-DR4。

8255片选CS8255连138译码处210H孔。

将jiaotong.asm另存为jiaotong2.asm。

微机原理及应用课程设计

微机原理及应用课程设计

微机原理及应用课程设计计时红绿灯的设计和制作一、课程设计目的课程设计要求学生自行设计和搭建有关微机应用的电路,编制和调试有关软件。

通过课程设计的教学,使学生巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的微机应用系统的设计和调试能力。

二、课程设计内容用实验系统的发光二极管模拟交通红绿灯,并能用数码管显示灯亮的时间剩余值。

计数原则:红灯绿灯灯亮的时间为20秒种,在替换间隔绿灯的路口的黄灯闪烁4秒。

具体:1、通过8255A并行口传输数据的方法,来控制LED发光二极管的亮灭。

用8255A的B端口和C端口控制12个LED 发光二级管的亮和灭(输出为0则亮,输出为1则灭)。

2、过8253A应用为计数提供硬件计时,为整个红绿灯系统提供时间计数。

3、通过中断控制器8259A为红绿灯系统提供中断服务,以实现中断。

编程思路:要完成本实验,首先必须了解交通路灯的亮灭规律。

设有一个十字路口,1、3为南,北方向,2、4为东,西方向。

初始化之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延迟一段时间(20秒)后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。

闪烁若干次(延时4秒)后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。

延迟一段时间(20秒)后,2、4路口的绿灯熄灭,而黄灯开始闪烁。

闪烁若干次(延时4秒)后,再切换到1、3路口方向。

之后,重复上述过程。

各集成块接线:8253连线:(1)8253的GATE0接+5V。

(2)8253的CLK0插孔接分频器74LS393(左上方)的T5插孔。

(3)8253OUT0插孔和8259的3号中断IR3插孔相连。

8259连线:(1)8259模块上的INT连8088的INTR(在主板键盘矩阵下面)。

(2)8253模块上的INTA连8088的INTA(在主板键盘矩阵下面)。

(3)8253OUT0插孔和8259的3号中断IR3插孔相连。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京工程学院课程设计任务书课程名称微机原理及应用A 院(系、部、中心)专业班级姓名学号起止日期 2013.12.23~2013.12.26指导教师目录1.设计要求 (3)1.1设计目的 (3)1.2设计内容 (3)1.3功能要求 (3)1.4难度要求 (3)2.方案说明 (4)2.1硬件系统工作原理说明 (4)2.1.1电路接线方案 (4)2.1.2定时问题 (4)2.1.3工作状态 (4)2.2参考流程图说明 (5)2.2.1流程图设计思想 (5)2.2.2实验流程图 (6)3源程序清单 (7)4.调试过程和结果 (11)4.1总接线图 (11)4.2 LED模拟的交通灯显示情况 (12)4.3数码管模拟的交通灯倒计时 (13)5.心得体会 (13)6.参考文献 (14)1.设计要求1.1设计目的通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。

通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际1.2设计内容利用STAR ES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯迷你控制系统”。

所有输入该装置的信号均采用STAR ES598PCI实验仪上的状态输入开关输入,东西,南北方向的红绿黄灯均采用实验仪上的LED发光二极管模拟,东西,南北方向的信号灯变化,通行倒计时时间用数码管显示。

1.3功能要求(1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。

当A道和B道均有车辆要求通过时,A道和B道轮流放行。

A道放行7秒,B道再放行5秒,依次轮流。

绿灯转换红灯时黄灯亮1秒。

(2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。

(3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车辆用K7开关来模拟控制,有紧急车辆时另有一红灯闪烁。

(4) 当A道和B道均有车辆要求通过时,A道和B道轮流放行。

A道放行30秒,B道再放行20秒,依次轮流。

每个绿灯的最后5秒黄灯闪烁。

1.4难度要求(1)基本要求:采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用循环程序软件定时实现功能要求。

(60分)(2)中级要求:采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用8253硬件定时、软件查询方式实现功能要求。

(80分)(3)高级要求:在中级要求的基础上,增加用8255A输出驱动LED数码显示器显示绿灯倒计时的秒数,黄灯时不显示时间。

(100分)2.方案说明2.1硬件系统工作原理说明2.1.1电路接线方案设计任务中的A道代表东西方向,B道代表南北方向交通信号灯由实验仪的LED发光二极管模拟,由8255A-PA输出控制,见下表:带时间显示的交通信号灯模拟控制系统8255A输入/输出信号一览表(供参考)带时间显示的交通信号灯模拟控制系统及8255A输入/输出信号一览表8255A-PB输出方式PCH输入方式8255A-PA输出方式PCL输出方式引脚输出信号引脚输入信号引脚输出信号引脚输出信号PB7驱动数码管字形PC7 K7 PA7 东西绿灯PB6 PC6 K6 PA6 东西黄灯PB5 PC5 K5 PA5 东西红灯PB4 PC4 8253-OUT2 PA4PB3 PA3 南北绿灯PC3 PB2 PA2 南北黄灯PC2 PB1 PA1 南北红灯PC1PB0 PA0 紧急车辆闪光PC0 数码管的位码选择2.1.2定时问题用8253#2工作方式0进行500ms定时,CLK2接125kHz时钟信号,GA TE2接高电平,OUT2接8255-PC4。

主程序通过查询8255-PC4的状态,获知准确的定时信息。

也可以采用软件延时,500ms延时子程序参见实验一。

2.1.3工作状态根据设计任务功能要求,依K5、K6、K7的状态分为四种工作状态:状态0:K5、K6、K7均断开(1电平)或K5、K6均闭合K7断开,A、B道交替通行;状态1:仅K5闭合,A道有车、B道无车;状态2:仅K6闭合,A道无车,B道有车;K5和K6均闭合,A、B道都有车,A、B 道交替通行;状态3:K7闭合,有紧急车辆通行。

2.2参考流程图说明2.2.1流程图设计思想1、主程序每0.5秒循环一次,每次查询三个开关状态,及时响应开关状态的变化。

其中CNT0和CNT3分别用于记录状态0和状态3工作进程的进程计数器,可以用寄存器或内存变量实现。

2、常用的工作状态0是A、B道交替通行,一个周期用时14秒。

用CNT0以0.5秒为单位进行加1计数,从0到27循环计数,CNT0/2就可知本周期进行到第几秒了。

根据设计任务功能要求,第0秒,A道红灯、B道黄灯;第1~7秒,A道绿灯、B道红灯;第8秒,A道黄灯、B道红灯;第9~13秒,A道红灯、B道绿灯。

3、工作状态3中,CNT3只有2种状态(0和0FFH),用于控制紧急车辆的灯光闪烁。

4、时间显示采用实验仪的数码管显示。

只用一个数码显示器显示绿灯通行倒计时,A 道显示数=8-CNT0/2,B道显示数=14-CNT0/2。

参考流程图2。

5、如果用2个数码显示器分别显示A道、B道的倒计时,则需要用到动态显示扫描技术,难度较大,定为加分项目。

在500ms延时子程序中循环调用动态显示扫描子程序,定时器的定时周期应缩短到5ms。

参考流程图3。

此功能难度较大,定为加分项目。

2个数码管的位码选择(低电平有效)有8255的PC3、PC0来确定,接线到数码管选择脚接口JP41(注意JP41的接插方法:JP41只接插一半,用PCL接JP41的1-4引脚。

如果PCL与JP41完全连接,PC4对应位会显示倒计时数码)。

显示内容由8255的B口接线到数码管段码接口JP42。

2.2.2实验流程图主程序CALL 500ms K7有效?K5有效?K6有效?CNT0+1CNT0=14*2?CNT0=0CNT0/2=0?输出A 红,B 黄,关数码CNT0/2<8?输出A 绿,B 红,8-CNT0/2,转换字型码→PB 输出CNT0/2=8?输出A 黄,B 红,关数码输出A 红B 绿,14-CNT0/2,转换字型码→PB 输出K7K5K6YYYNNNYNYNYNYNCNT3=0LP输出A 绿,B 红输出B 绿,A 红关数码显示器K7输出A 红,B 红,闪光灯亮CNT3=0?输出A 红,B 红,闪光灯灭LP CNT3取反YN关数码显示器500ms 子程序8253#2方式0重装500ms 定时常数OUT2=0?500ms 时间到,返回YN8255初始化:PA 、PB 、PCL 输出方式0,PCH 输入8253初始化:;#2方式0,CLK2=125kHz,GATE2=1,OUT2接PC4变量初始化:CNT0=0,CNT3=0CNT0=0,CNT3=0CNT0=0流程图2L1L2L3L0LPK71K72DELAYK56K6有效?YN3源程序清单.MODEL TINYCOM_ADD EQU 0F003H ;8255A片选地址PA_ADD EQU 0F000HPB_ADD EQU 0F001HPC_ADD EQU 0F002HCOM_ADDR EQU 0B003HT0_ADDR EQU 0B000HT1_ADDR EQU 0B001HT2_ADDR EQU 0B002H.STACK 200.DATASHU_DATA DB 00111111BDB 00000110BDB 01011011BDB 01001111BDB 01100110BDB 01101101BDB 01111101BDB 00000111BCNT0 DB ?CNT3 DB ?.CODESTART: MOV DX,COM_ADD ;8255初始化MOV AL,88H ;PA、PB、PCL输出方式0, PCH输入 OUT DX,ALMOV DX,PA_ADDMOV AL,0FFHOUT DX,ALMOV DX,PC_ADDIN AL,DXAND AL,0F0H ;保留高位,低位为0OR AL,01H ;保留高位,低位全部为1OUT DX,ALMOV DX,COM_ADDR ;8253初始化MOV AL,0B0H ;1011 0000BOUT DX,ALMOV CNT0,0 ;状态0: A,B交替MOV CNT3,0 ;状态3: 紧急时LEA BX,SHU_DATALP: CALL DL500MSMOV DX,PC_ADDIN AL,DXTEST AL,80H ;AL AND 1000 0000B,检测K7JNZ K7 ;如果PC7=0,结果为0,ZF=1,不执行K7。

如果PC7=1,ZF=1,执行K7,为特殊情况TEST AL,20H ;0010 0000B,检测PC5JNZ K51 ;如果PC5=0,结果为0,ZF=1,不执行K51。

如果相反,则执行K51TEST AL,40H ;0100 0000B ,检测PC6JNZ K61MOV CNT3,0MOV CH,CNT0SHR CH,1 ;CNT3=0,CH右移1位相当于CH/2CMP CH,5 ;比较CH/2和8JS GR ;CH/2〈8,标志SF=1,转GRCMP CH,10JS YRCMP CH,15JS RGJMP RYLAST: INC CNT0 ;CNT0=CNT0+1CMP CNT0,40 ;CNT0-28JNZ LPMOV CNT0,0JMP LPRG: MOV DX,PA_ADDMOV AL,0D7H ;1101 0111BOUT DX,AL ;A红B绿MOV DX,PB_ADDMOV AL,14 ;启动数码管SUB AL,CH ;AL-CH/2XLAT ;AL=AL+BXOUT DX,AL ;显示倒计时。

JMP LASTRY: MOV DX,PA_ADDMOV AL,0DBH ;1101 1011BOUT DX,AL ;A红B黄CALL DL200MSMOV DX,PA_ADDMOV AL,0DFHOUT DX,ALJMP LASTK51: JMP K5K61: JMP K6GR: MOV DX,PA_ADDMOV AL,7DH ;0111 1101OUT DX,AL ;A绿B红MOV DX,PB_ADD ;输出倒计时数字MOV AL,8SUB AL,CH ;AL=AL-CH/2=8-CH/2 XLAT ;AL=AL+BXOUT DX,ALJMP LASTK7: MOV CH,CNT3 ;CNT3=0,CH=0CMP CH,0JZ K71MOV DX,PA_ADDMOV AL,0DDHK72: MOV DX,PB_ADDMOV AL,00HOUT DX,ALNEG CH ;CH=1MOV CNT3,CH ;CNT3=1,K7灭MOV CNT0,0JMP LPYR: MOV DX,PA_ADDMOV AL,0BDHOUT DX,ALCALL DL200MSMOV DX,PA_ADDMOV AL,0FDHOUT DX,ALJMP LASTK71: MOV DX,PA_ADDMOV AL,0DCH ;1101 1100B, K8亮0.5s OUT DX,ALCALL DL200MSMOV DX,PA_ADDMOV AL,0DDH ;1101 1101B, K8灭0.5s OUT DX,ALJMP K72K5: MOV DX,PA_ADDMOV AL,7DH ;AL=0111 1101BOUT DX,AL ;亮A绿B红JMP K56K6: MOV DX,PA_ADDMOV AL,0D7H ;1101 0111BOUT DX,AL ;亮A红B绿K56: MOV DX,PB_ADDMOV AL,00HOUT DX,ALMOV CNT0,0MOV CNT3,0JMP LPDL500MS PROC NEARMOV DX,T2_ADDRMOV AX,62500 ;频率125KHz,62500*(1/125)=0.5sOUT DX,ALMOV AL,AHOUT DX,ALDELAY1: MOV DX,PC_ADDIN AL,DXTEST AL,10H ;设置"准备就绪"(ready)信息在D4位到PC4, TEST为AL AND 10HJE DELAY1 ;AND后PC4为0时,JE=1,执行DELAY。

相关文档
最新文档