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

合集下载

微机原理课程设计报告交通灯

微机原理课程设计报告交通灯
IN AL,DX
ANDAL,0FH
MOV AH,AL
MOV DX,PTCON8255
MOV AL,88H
OUTDX,AL
MOV DX,PORTC
IN AL,DX
ANDAL,0FH
XORAL,AH
ADD CL,AL
CMP CL,9
JNZ TEST2;闪烁5次
CODE ENDS
END STA
连接实验箱电路,上机调试并对实验现象进行分析,完成实验报告。
MOV DX,PORTA
MOVAL,0
OUTDX,AL
MOV DX,PORTB
MOVAL,0FH
OUTDX,AL
MOV DX,PORTC
MOVAL,0FH
OUT DX,AL;灯初始化完成
STA:MOV DX,PORTA
MOVAL,0A0H
OUTDX,AL
MOV DX,PORTB
MOVAL,0F0H
OUTDX,AL
电路图如下所示:
程序流程图
初始化8255,8253
红灯全亮
绿灯黄灯全灭
南北绿灯亮
东西红灯亮
等待8253延时30s时间是否到?
Y
N
南北绿灯灭
东西红灯不变
南北黄灯闪烁
等待黄灯闪烁5次?
Y
N
南北红灯亮
东西绿灯亮
8253延时30s
东西绿灯灭
黄灯闪烁5次
程序清单
DATA SEGMENT;设置数据段,以及端口地址分配
MOV CX,0
TEST1:MOV DX,PTCON8255 ;检测PB7
MOV AL,82HOUTX,ALMOV DX,PORTB
IN AL,DX

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

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

安徽建筑工业学院《微机原理与接口技术》课程设计课题名称:微机在交通信号灯控制中的应用院(系)名称:专业:班级:姓名:学号:指导老师:2012 ~2013 学年第一学期一、内容提要设一十字路口为东西南北走向,各用一组红、黄、绿色LED分别表示南北方向和东西方向的交通信号灯。

系统功能要求如下:(1)能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。

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

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

延时T1秒后转状态,南北绿灯闪2秒转黄灯,延时3秒,东西任然红灯。

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

延时T1秒后转状态4,东西绿灯闪2秒转黄灯,延时3秒,南北任然红灯。

最后循环至状态1.)(2)用开关K0~K7实现延时时间T1的设置,当K7闭合时,为T1的设置状态,K0~K6为设置时间(秒),此时东西、南北两个方向均显示红灯状态。

绿灯的闪烁频率为1HZ。

(3)系统中用8253作定时器,产生延时时间及1HZ的闪烁频率;用74LS237作输出口,控制交通灯:用74LS244作输入口,进行延时时间T1的设置。

目录内容提要 (2)正文 (4)设计意义及功能简介 (4)硬件电路设计及描述5.1电路原理 (4)系统原理 (5)8259A的结构原理 (5)8255A的工作原理 (8)74L237工作原理 (10)软件设计流程及描述 (12)源程序代码 (13)课程设计体会 (16)参考文献 (17)一、正文1、设计意义及功能简介十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

在交通灯的通行与禁止时间控制显示中,通常要么南北、东西两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。

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

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

信息工程系计算机科学与技术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秒,控制黄灯的时间。

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计
7
微机课程设计——交通灯控制系统
中断子程序模块是通过扩充中断源实现的,主要是通过设置 8259 的工作模 式,开放 TR1 和 TR0 的中断,按上开关 K 后,TR0 就发生中断,在 TR0 中断没有 触发的情况下,从 OU1 口输出一个上升沿脉冲,TR1 就中断一次, 程序如下所示:
QUERY: MOV DX,MY8259_OCW3 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 ;判断中断是否已响应 ; 没有响应则继续查询 ; 向 8259 的 OCW3 发送查询命令
《微机原理与接口技术》 课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:
班级:
目录
微机课程设计——交通灯控制系统
ห้องสมุดไป่ตู้
一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086 典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1 程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献
微机课程设计——交通灯控制系统
MOV OUT 器输出 1HZ 的方波
AL,2 DX,AL ;1.041667MHZ/2000/1000=1HZ, 即计数
数码管的显示是通过调用显示函数实现的, 通过设置 8255 的工作模式, 选择数码管的高位工作, 然后将计数的高位送到数码管, 再选择数码管的低位工 作,然后将计数的低位送到数码管,在 1s 钟内多次扫描就可以消除闪烁,从而 达到理想的计数效果,它的程序如下所示:

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

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

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/8088指令系统的基础上,掌握8086/8088汇编语言程序设计方法;掌握8259可编程中断控制器,8255可编程并行接口、8253可编程定时/计数器的使用三、实验要求1、模拟交通信号灯(分A、B两组)的红、黄、绿灯(实验箱中的发光二极管)交替变换的过程。

2、在实验箱的LED显示器上显示当前剩余时间(每秒更新一次,倒计时)。

A组、B组之间时间关系如下:A组B组绿灯26秒红灯30秒四、 实验设备机一台、PC实验箱一个(8086、8259、8255、8253芯片及相关电路、发光二极管六只)及导线若干。

五、 设计 1、 设计思路(1)分析问题——各端口使用——代码实现(2)具体使用(8255的B 口做灯信号的输出,A 口做位选码的输出,C 口做LED 的输出。

)(3)实验内容1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ1 2、系统中,8255选用(10000000)方式选择字,A 组工作0方式,A 端口输出,PC3-PC7输出,B 组0方式,B 端口输出,PC3-PC0输出3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制2、程序流程黄灯 4秒 红灯 30秒 绿灯 26秒 黄灯 4秒3、电路原理图4、初始化8259 初始化8255设置中断向量显示时间启动计数器开始设置交通灯初态结束初始化8253STACK ENDSDATA SEGMENTTIMER DB 00H,30H;IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行TAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码,用于显示时间,顺序不可调换DISOFF DB 00H,00H,00H,00H;LED显示器缓冲区,数字(剩余时间)的个位和十位ROD DB 00H ;当前道路通行状态(00:为A通行道;01为B通行)LIGHT DB 0D7H ;信号灯的输出信号(11010111)KK1 DB 00H ;暂停开关KK1计数LIGHTZT DB 00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,0000H ;数据段清零MOV DS,AX;填写中断向量表MOV AX,OFFSET IRQ0 ;提取IRQ0的中断处理程序的偏移地址ADD AX,2000H ;加载时IP=2000H(绝对地址) MOV SI,0020H ;中断号0的矢量地址为(20H-23H) MOV [SI],AX ;填写中断处理程序的偏移地址写进中断向量表MOV AX,0000HMOV SI,0022HMOV [SI],AX ;填写中断处理程序的段地址写进中断向量表MOV AX,OFFSET IRQ1ADD AX,2000HMOV SI,0024H ;中断号1的矢量地址为(24H-27H) MOV [SI],AXMOV AX,0000HMOV SI,0026HMOV [SI],AX;加载数据段MOV AX,DATAMOV DS,AX;8259初始化MOV AL,13H ;8259初始化ICW1(00010011)单片方式需写ICW4OUT 20H,AL ;端地址A0=0MOV AL,08H ;ICW2(00001000)中断向量号的高五位(000001)OUT 21H,ALMOV Al,01H ;ICW4(00000001)一般全嵌套,非缓冲,非自动中断结束,十六位机系统OUT 21H,AL ;特征位:D7-D5=000MOV AL,0FCH ;OCWl允许IRQ0、IRQ1中断OUT 21H,AL;8255初始化MOV AL,80H ;(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出OUT 63H,AL;初始化8253MOV AL,35H ;(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制OUT 43H,ALMOV AX,380 ;定时(频率乘以时间)OUT 40H,AL ;低字节MOV AL,AHOUT 40H,AL ;高字节STI ;开中断(允许CPU接收中断)M:CALL DISP2CMP KK1,1JZ ZT ;调用时间显示函数CMP TIMER+1,04H ;判断是否到了最后4秒,到了则跳转JZ R1CMP TIMER+1,00H ;判断通行时间是否结束,到了则跳转JZ R2JMP DISP1 ;如时间大于五秒,则直接按当前方式显示信号灯R1: CMP ROD,00H ;如到了最后五秒,则判断是A 道通行否? ROD=00H为A道JZ R12 ;如是A道通行,则改变状态R11:MOV LIGHT,7BH ;(01111110)改变为A道红,B道黄JMP DISP1 ;信号输出R12:MOV LIGHT,0B7H ;(10110111)改变为A道黄,B道红JMP DISP1R2: CMP ROD,00H ;改变通行状态JZ R22R21:MOV LIGHT,0D7H ;如果当前B道通行结束,则切换为A道MOV ROD,00HMOV TIMER+1,30H ;A道通行时间30秒JMP DISP1R22:MOV ROD,01H ;如果当前A道通行结束,则切换为B道ROD=01H为B道MOV LIGHT,7DHMOV TIMER+1,30HJMP DISP1 ;B道通行时间30秒ZT:JMP MDISP1: ;灯信号输出函数MOV AL,LIGHT ;将灯信号输出到8255的B口OUT 61H,ALSTIJMP MIRQ0:PUSH AX ;现场保护PUSH CXPUSHFMOV AL,TIMER ;取80次中断请求为一秒INC ALMOV TIMER,ALCMP AL40H ;1秒判断?JNE M1 ;不到则跳转MOV AL,00H ;毫秒数清零MOV TIMER,ALMOV AL,TIMER+1 ;剩余时间减1 SUB AL,01HDAS ;调整为压缩BCD码MOV TIMER+1,ALM1: MOV AL,20H ;中断复位OUT 20H,ALPOPFPOP CXPOP AXSTIIRETIRQ1: ;暂停(恢复)PUSH AXPUSHFMOV AL,KK1CMP AL,00H ;判断当前的状态:00为通行,01为暂停JNE M2INC AL ;改变当前状态MOV KK1,ALMOV AL,0FDH ;(11111101)关IRQ0中断,开IRQ1中断OUT 21H,ALMOV AL,LIGHTMOV LIGHTZT,AL;///////////////////////////////////////////////////////////MOV AL,77H ;(01110111)大、小道均为红灯OUT 61H,ALJMP M3M2: ;恢复MOV AL,00HMOV KK1,ALMOV AX,LIGHTZT;//////////////////////////////////////////////////////////////////OUT 61H,ALMOV AL,0FCH ;(11111100)开IRQ0、IRQ1中断OUT 21H,ALSTIM3:MOV AL,20HOUT 20H,ALPOPFPOP AXSTIIRETDISP2: ;时间显示函数MOV AL,TIMER+1 ;AL=30H AX=?30HAND AL,0FH ;AX=0000HMOV DISOFF+3,AL ;DISOFF+3=00HDISOFF DB 03H,00H,03H,00HMOV DISOFF+1,AL ;DISOFF+1=00HMOV AL,TIMER+1 ;AL=30HMOV CL,04H ;CL=04HSHR AL,CL ;AL=03HMOV DISOFF+2,AL ;DISOFF+2=03HMOV DISOFF,AL ;DISOFF=03HMOV SI,OFFSET DISOFF ;缓冲区的偏移地址MOV DL,0F7H ;(11110111)将位选码初值送DLMOV AL,DL ;AL=0F7HAGAIN:OUT 60H,AL ;从A口输出位选码MOV AL,[SI]MOV BX,OFFSET TAB ;七段码的偏移地址AX=0003H BX=TABAND AX,00FFHXLAT ;MOV AL,BX+[AX] ;将显示七段码送ALOUT 62H,AL ;将AL转换成七段码从B口输出CALL DALLY ;调用延时1ms子程序INC SI ;SI=SI+1MOV AL,DLTEST AL,01H ;4位显示完否?JZ M4ROR AL,01H ;DL循环右移一位MOV DL,ALJMP AGAINM4: RETDALLY: ;循环256次MOV CX,0010H ;延时子程序T1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1RETCODE E NDSEND START六、心得体会这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨询中吸收了不少知识。

微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计

微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计

摘要根据十字路口交通灯的控制要求,采用PLC 设计实现正常交通的时序控制,通过传感器完成对交通异常状况的智能判别及处理。

在系统的设计中,主要使用了PLC 可编程序控制器和传感器相结合的一种智能控制方法,使用压轴式传感器采集车辆脉冲,用PLC 高速计数器对脉冲进行计数,根据取得的数据运用一定的智能控制原则自动调节红绿灯的时间长度,最大限度地减少车辆滞留现象,较好地解决了车流量不均衡、不稳定问题。

仿真结果表明,该系统设计方案可以达到预期目标。

关键词:可编程控制器,交通灯,智能控制系统目录摘要 (Ⅰ)Abstract (Ⅱ)第1章设计要求 (1)1.1课题背景 (1)1.2 控制要求 (1)第2章总体框图 (3)2.1方案的确定 (3)2.2 原理框图 (3)2.3 元件简介 (3)第3章智能交通灯的实现 (7)3.1 车辆的检测 (7)3.2P L C具体设计 (7)3.3 I/O引脚分配及接口电路 (10)3.4 PLC故障防范 (11)3.5 PLC程序与编写 (13)总结 (21)参考文献 (22)致谢 (23)附录 (24)第1章 设计要求1.2 控制要求一、 信号灯及显示时间的数码管受开关控制,一个启动按钮控制其启动,一个停止按钮控制其停止。

二、 信号灯分为东西向直通红灯、直通黄灯、直通绿灯、左转红灯、左转黄灯、左转绿灯各两个;南北向直通红灯、直通黄灯、直通绿灯、左转红灯、左转黄灯、左转绿灯各两个。

三、 工作过程。

初始状态:信号灯全部灭;显示某方向信号灯工作的时间用数码管来显示,初始显示为0,以表示等待时间控制信号的输入。

工作状态:信号灯及数码管由一个启动按钮控制其启动,启动后信号灯及数码管自动循环运行;按下停止按钮后,回到初始状态。

特殊情况由五个按钮控制不同情况的应对程序启动,当车辆行驶数量回到正常时,通过一个按钮使其停止,程序执行正常工作时的程序。

正常工作:1、周期前半段。

南北向直通道与左转道红灯亮,并维持63s 。

交通灯课程设计-微机接口课程设计报告

交通灯课程设计-微机接口课程设计报告

合肥学院计算机科学与技术系课程设计报告2008~2009学年第一学期课程微型计算机原理与接口技术课程设计名称交通灯学生姓名杜伟学号0604032009专业班级网络工程(2)班指导教师肖连军2009年2月一、题义分析及解决方案1、题义需求分析本程序设计需应用软件控制并运行接口电路,使连接在该接口上的红、绿、黄发光二极管按十字路口交通红、绿、黄灯形式闪烁,并显示绿灯的倒计时时间。

交通灯变化规律根据实地查看和查看资料以及询问他人:交通灯在每天的变化规律并不相同,次课程设为了简化,只考虑了交通灯正常时的变化规律,即有如下规律变化:程序一开始,四个方向的灯全为红灯,接着变为黄灯闪烁,然后东西方向为红灯,南北方向为绿灯并显示倒计时时间,倒计时间结束后,交通灯变成黄灯,闪烁几次后,东西方向变成绿灯,南北变成红灯,再变成黄灯,如此按交通灯的变化规则交替变化,在对绿灯采取倒计时时,采用的是为各个灯设置固定的亮持续时间。

对此设计模拟交通灯变化规律,需要解决如下问题:(1)绿灯的倒计时时间如何显示,倒计时间用什么来控制(2)交通灯用什么器材来模拟显示(3)如何设计pc机与实验模拟芯片接口通信(4)交通灯运行状态怎么实现,交通灯状态的切换问题怎么解决(5)如何实现交通灯的闪烁,并且控制闪烁时间,(6)如何对所选芯片进行编程控制(7)如何获取开关上用户设置的初值信息,并且把初值信息如何存储。

2、解决问题方法及思路1)硬件部分1、8255设计说明:用8255A可编程并行接口芯片的A、B、C三口作为红、绿、黄交通灯的控制输入口。

8255有三个并行输入输出口,可以方便的对三种颜色的交通灯进行很好的控制。

解决方案是:PB0~PB7接模拟灯二极管,PA0~PA7接7段二极管,然后利用8255A芯片与微处理器芯片集成芯片卡PCI卡连接,用于完成硬件方面的实验正常通信。

其芯片比较说明:如表2-12、LED设计说明:用LED作为倒计时时间的显示器,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计第五组题目十字路口交通灯控制系统一.明确任务1.任务要求1)、模拟十字路口交通灯变化规律能实现通行时间的倒计时显示;当特种车(消防、警车等)通过时,中断保护现场并使四个口红灯全亮,中断消除后恢复现场。

2)、用开关控制中断信号2.任务分析1)南北东西道路有信号灯显示2)2位7段数码管显示通行和禁行倒计时3)针对特种车经过要设计相应的中断程序,并且中断返回后能信号灯按原来的状态继续进行道路控制。

二.总体设计1. 设计方案十字路口有南北方向和东西方向,每个方向都设有红、黄、绿三色交通信号灯12盏,并配有相应的亮灯倒计时显示4组。

当南北为绿灯或黄灯时,东西向一定是红灯,即南北绿灯时间加南北黄灯时间应等于东西红灯时间。

系统开始工作,南北路口绿灯亮,南北方向数码管进行绿灯50S倒计时显示,东西路口的红灯亮,东西方向数码管进行红灯55S倒计时显示。

当东西禁行方向剩5S时,南北通行方向的绿灯灭黄灯亮,同时数码管进行5S黄灯倒计时显示,5S后黄灯熄灭红灯亮,并进行南北红灯倒计时,同时东西方向红灯55S计时时间到红灯灭绿灯亮,东西向开始通行南北向禁行。

同样东西向绿灯50S计时时间到后转为黄灯,黄灯5S计时时间到再转为红灯,之后重复上述过程。

另设有点动按钮用来发出特种车经过时的中断信号2.单片机选型选择89C51系列单片机3.划分系统软、硬件功能数码管采用共阴极七段码动态显示4.确定系统结构组成时钟电路,复位电路,红绿黄灯指示电路(采用各色发光二极管代替),动态显示电路和简单按键电路三.硬件电路设计P0示位选控制。

P3.3作为外部中断输入口P1.0:南北向红灯,高电平点亮P1.1:南北向黄灯,高电平点亮P1.2:南北向绿灯,高电平点亮P1.3:东西向红灯,高电平点亮P1.4:东西向黄灯,高电平点亮P1.5:东西向绿灯,高电平点亮P2.7:南北向十位数码管位选信号P2.6:南北向个位数码管位选信号P2.5:东西向十位数码管位选信号P2.4:东西向个位数码管位选信号P0.0:数码管aP0.1:数码管bP0.2:数码管cP0.3:数码管dP0.4:数码管eP0.5:数码管fP0.6:数码管gP3.3:中断按钮,点动南北东西全部禁行,特种车通过四.软件设计1.片内RAM的定义A_BIT EQU 20H :用于存放南北十位数B_BIT EQU 21H :用于存放南北个位数C_BIT EQU 22H :用于存放东西十位数D_BIT EQU 23H :用于存放东西个位数TEMP1 EQU 24H :南北方向要显示的时间TEMP2 EQU 25H :东西方向要显示的时间SEC EQU 30H:1S计时标志2.程序设计由设计方案描述交通灯的显示可以分为以下4种状态:状态一:南北绿灯亮并从50S开始倒计时显示,东西红灯亮并从55S开始倒计时显示状态二:南北黄灯亮并从5S开始倒计时显示,东西红灯亮并继续55S倒计时显示状态三:南北红灯亮并从55S开始倒计时显示,东西绿灯亮并从50S开始倒计时显示状态四:南北红灯亮并继续55S 倒计时显示, 东西黄灯亮并从5S 开始倒计时显示3.设计流程图主程序流程图INT1中断程序流程图4.源程序:A_BIT EQU 20H ;用于存放南北十位数B_BIT EQU 21H ;用于存放南北个位数C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ;用于存放东西个位数TEMP1 EQU 24HTEMP2 EQU 25HSEC EQU 30H ;1S计时标志ORG 0000HAJMP MAINORG 0013HAJMP INTORG 0100HMAIN:MOV SP,#45HMOV IE,#84H ;开INT0中断SETB IT1 ;下降沿触发MOV TMOD,#01H ;定时器初始化MOV TH0,#3CH ;50ms定时初值MOV TL0,#0B0HSETB TR0 ;启动定时器T0MOV SEC,#20 ;1S循环常数MOV R7,#50 ;绿灯时间MOV R6,#5 ;黄灯时间MOV R5,#55 ;红灯时间MOV R4,#10 ;全部红灯的时间STA1:MOV P1,#00001100B ;南北绿灯东西红灯ST1:MOV TEMP1,R7MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP1: ACALL DISPLAY ;调用显示子程序JNB TF0,STLOP1 ;50MS定时未到,转到STLOP1 CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP1 ;1S定时未到转到STLOP1 MOV SEC,#20DEC R5 ;东西倒计时数减一DJNZ R7,ST1 ;南北倒计时数减一MOV R7,#50STA2:MOV P1,#00001010B ;南北黄灯东西红灯ST2:MOV TEMP1,R6MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP2: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP2CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP2MOV SEC,#20DEC R5DJNZ R6,ST2MOV R6,#5MOV R5,#55STA3:MOV P1,#00100001B ;南北红灯东西绿灯ST3:MOV TEMP1,R5MOV TEMP2,R7ACALL CONVERT ;调用BCD码转换子程序STLOP3: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP3CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP3MOV SEC,#20DEC R5DJNZ R7,ST3MOV R7,#50STA4:MOV P1,#00010001B ;南北红灯东西黄灯ST4:MOV TEMP2,R6MOV TEMP1,R5ACALL CONVERT ;调用BCD码转换子程序STLOP4: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP4CLR TF0DEC SECMOV A,SECCJNE A,#0,STLOP4MOV SEC,#20DEC R5DJNZ R6,ST4MOV R6,#5MOV R5,#55AJMP STA1INT: ;中断子程序PUSH 90H ;存入46H中PUSH PSWPUSH 00HPUSH 01HPUSH 02HPUSH 05HPUSH 06HPUSH 07HPUSH 20HPUSH 21HPUSH 22HPUSH 23HPUSH 24HPUSH 25HPUSH 30HPUSH TH0PUSH TL0MOV P1,#09H ;全部红灯CLR TF0MOV TH0,#3CHMOV TL0,#0B0HMOV SEC,#20L3:MOV TEMP1,R4MOV TEMP2,R4ACALL CONVERT ;调用BCD码转换子程序L4:ACALL DISPLAY ;调用显示子程JNB TF0,L4CLR TF0DEC SECMOV A,SECCJNE A,#0,L4MOV SEC,#20DJNZ R4,L3MOV R4,#10POP TL0POP TH0POP 30HPOP 25HPOP 24HPOP 23HPOP 22HPOP 21HPOP 20HPOP 07HPOP 06HPOP 05HPOP 02HPOP 01HPOP 00HPOP PSWPOP 90HRETI转换子程序CONVERT:MOV A,TEMP1 ;将南北要显示的数存放到A MOV B,#10DIV AB ;A除以B商存A,余数存B MOV A_BIT,A ;将A放到20HMOV B_BIT,B ;将B放到21HMOV A,TEMP2 ;将东西要显示的数存放到A MOV B,#10DIV AB ;A除以B商存A,余数存B MOV C_BIT,A ;将A放到22HMOV D_BIT,B ;将B放到23HRETDISPLAY: MOV DPTR ,#TAB ;显示子程序DPLOP1: MOV A,A_BIT ;将南北要显示的10位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.7 ;显示南北10位数ACALL D1MS ;延时1MSSETB P2.7 ;灭南北10位数MOV A,B_BIT ;将南北要显示的个位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.6 ;显示南北个位数ACALL D1MS ;延时1MSSETB P2.6 ;灭南北个位数MOV A,C_BIT ;将东西要显示的10位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.5 ;显示东西10位数ACALL D1MS ;延时1MSSETB P2.5 ;灭东西10位数MOV A,D_BIT ;将东西要显示的个位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.4 ;显示东西个位数ACALL D1MS ;延时1MSSETB P2.4 ;灭东西个位数RETD1MS:MOV R3,#250 ;1MS延时子程序D2:NOPNOPDJNZ R3,D2RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

微机系统接口课程设计——交通灯

微机系统接口课程设计——交通灯

微机系统接口课程设计题目:交通灯系部名称:计算机系班级:学号:指导教师:学生姓名:时间2009-6-1—2009-6-12微机系统接口课程设计一实习的目的本次实习是基于微机原理与微机接口技术的实践课程设计。

1,通过实习熟悉并掌握接口芯片8253、8255、8259的原理、功能和应用2,对微机原理知识的熟悉和巩固,了解微机工作基本原理。

二硬件课程设计题目1,十字路口交通信号灯控制系统设计三对题目的简单分析(用到哪些芯片及作用)(1)十字路口交通信号灯控制系统设计8253 计数控制,用于交通信号灯的时间控制8255 数码管显示,用于倒计时时间的显示8259 突发事件的控制及信号灯的切换四以下是三个题目分别的实习报告(一)十字路口交通信号灯控制系统设计一硬件课程设计题目交叉路口交通信号灯控制系统设计二设计任务编写一个交通灯控制程序,实现东西路口与南北路口状态灯的转换,并设置紧急键,能使交通灯实现紧急处理。

利用中断程序实现多次循环调用电风扇工作子程序,并在显示器上提示进入中断服务程序的信息。

具体实现如下:1.用试验台提供的发光二极管(红绿黄各两支,共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模拟交通灯。

如图:D7,D5,D3作为南北路口的交通灯与A7,A5,A3相连,D6,D4,D2作为东西路口的交通灯与A6,A4,A2相连。

编程使六个灯按交通灯变化规律燃灭B7 B6 B5 B4 B3 B2 B1 B0A7 A6 A5 A4 A3 A2 A1 A0C3C2C1C0C4C58255AA B C D E F G DP X2X1LED OUT0 CLK0GATE0 CSCS8254红 红 绿 绿 黄 黄 白 白D7 D6 D5 D4 D3 D2 D1 D0二极管K3(东西紧急)K1(夜间紧急)K2(南北紧急)IOY01KHZ +5V IOY2硬件连接图:2.用可编程并行接口芯片8255A 控制模拟交通灯的亮与灭和数码管的倒计时显示。

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计红绿灯

微机原理及机电接口技术课程设计红绿灯微机原理及机电接口技术课程设计第五组题目十字路口交通灯控制系统一.明确任务1.任务要求1)、模拟十字路口交通灯变化规律能实现通行时间的倒计时显示;当特种车(消防、警车等)通过时,中断保护现场并使四个口红灯全亮,中断消除后恢复现场。

2)、用开关控制中断信号2.任务分析1)南北东西道路有信号灯显示2)2位7段数码管显示通行和禁行倒计时3)针对特种车经过要设计相应的中断程序,并且中断返回后能信号灯按原来的状态继续进行道路控制。

二.总体设计1. 设计方案十字路口有南北方向和东西方向,每个方向都设有红、黄、绿三色交通信号灯12盏,并配有相应的亮灯倒计时显示4组。

当南北为绿灯或黄灯时,东西向一定是红灯,即南北绿灯时间加南北黄灯时间应等于东西红灯时间。

系统开始工作,南北路口绿灯亮,南北方向数码管进行绿灯50S倒计时显示,东西路口的红灯亮,东西方向数码管进行红灯55S倒计时显示。

当东西禁行方向剩5S时,南北通行方向的绿灯灭黄灯亮,同时数码管进行5S黄灯倒计时显示,5S后黄灯熄灭红灯亮,并进行南北红灯倒计时,同时东西方向红灯55S计时时间到红灯灭绿灯亮,东西向开始通行南北向禁行。

同样东西向绿灯50S计时时间到后转为黄灯,黄灯5S计时时间到再转为红灯,之后重复上述过程。

另设有点动按钮用来发出特种车经过时的中断信号2.单片机选型选择89C51系列单片机3.划分系统软、硬件功能数码管采用共阴极七段码动态显示4.确定系统结构组成时钟电路,复位电路,红绿黄灯指示电路(采用各色发光二极管代替),动态显示电路和简单按键电路三.硬件电路设计P0示位选控制。

P3.3作为外部中断输入口P1.0:南北向红灯,高电平点亮P1.1:南北向黄灯,高电平点亮P1.2:南北向绿灯,高电平点亮P1.3:东西向红灯,高电平点亮P1.4:东西向黄灯,高电平点亮P1.5:东西向绿灯,高电平点亮P2.7:南北向十位数码管位选信号P2.6:南北向个位数码管位选信号P2.5:东西向十位数码管位选信号P2.4:东西向个位数码管位选信号P0.0:数码管a P0.1:数码管b P0.2:数码管c P0.3:数码管d P0.4:数码管e P0.5:数码管f P0.6:数码管gP3.3:中断按钮,点动南北东西全部禁行,特种车通过四.软件设计1.片内RAM的定义A_BIT EQU 20H :用于存放南北十位数B_BIT EQU 21H :用于存放南北个位数C_BIT EQU 22H :用于存放东西十位数D_BIT EQU 23H :用于存放东西个位数TEMP1 EQU 24H :南北方向要显示的时间TEMP2 EQU 25H :东西方向要显示的时间SEC EQU 30H:1S计时标志2.程序设计由设计方案描述交通灯的显示可以分为以下4状态一:南北绿灯亮并从50S开始倒计时显示,东西红灯亮并从55S开始倒计时显示状态二:南北黄灯亮并从5S开始倒计时显示,东西红灯亮并继续55S倒计时显示状态三:南北红灯亮并从55S开始倒计时显示,东西绿灯亮并从50S开始倒计时显示状态四:南北红灯亮并继续55S倒计时显示,东西黄灯亮并从5S开始倒计时显示3.设计流程图主程序流程图INT1中断程序流程图4.源程序:A_BIT EQU 20H ;用于存放南北十位数B_BIT EQU 21H ;用于存放南北个位数C_BIT EQU 22H ;用于存放东西十位数D_BIT EQU 23H ;用于存放东西个位数TEMP1 EQU 24H TEMP2 EQU 25HSEC EQU 30H ;1S计时标志ORG 0000H AJMP MAIN ORG 0013HAJMP INT ORG 0100H MAIN:MOV SP,#45HMOV IE,#84H ;开INT0中断SETB IT1 ;下降沿触发MOV TMOD,#01H ;定时器初始化MOV TH0,#3CH ;50ms定时初值MOV TL0,#0B0HSETB TR0 ;启动定时器T0 MOV SEC,#20 ;1S循环常数MOV R7,#50 ;绿灯时间MOV R6,#5;黄灯时间MOV R5,#55 ;红灯时间MOV R4,#10 ;全部红灯的时间STA1:MOV P1,#00001100B ;南北绿灯东西红灯ST1:MOV TEMP1,R7 MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP1: ACALL DISPLAY ;调用显示子程序JNB TF0,STLOP1 CLR TF0 DEC SEC MOV A,SEC CJNE A,#0,STLOP1 MOV SEC,#20 DEC R5;东西倒计时数减一;南北倒计时数减一;1S定时未到转到STLOP1;50MS定时未到,转到STLOP1DJNZ R7,ST1 MOV R7,#50STA2:MOV P1,#00001010B ;南北黄灯东西红灯ST2:MOV TEMP1,R6 MOV TEMP2,R5ACALL CONVERT ;调用BCD码转换子程序STLOP2: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP2 CLR TF0 DEC SEC MOV A,SEC CJNE A,#0,STLOP2 MOV SEC,#20 DEC R5 DJNZ R6,ST2 MOV R6,#5 MOV R5,#55 STA3:MOV P1,#00100001B ;ST3:MOV TEMP1,R5 MOV TEMP2,R7ACALL CONVERT ;STLOP3: ACALL DISPLAY ;JNB TF0,STLOP3 CLR TF0 DEC SEC MOV A,SEC CJNE A,#0,STLOP3 MOV SEC,#20 DEC R5 DJNZ R7,ST3南北红灯东西绿灯调用BCD码转换子程序调用显示子程MOV R7,#50STA4:MOV P1,#00010001B ;南北红灯东西黄灯ST4:MOV TEMP2,R6 MOV TEMP1,R5ACALL CONVERT ;调用BCD码转换子程序STLOP4: ACALL DISPLAY ;调用显示子程JNB TF0,STLOP4 CLR TF0 DEC SEC MOV A,SEC CJNE A,#0,STLOP4 MOV SEC,#20 DEC R5 DJNZ R6,ST4 MOV R6,#5 MOV R5,#55 AJMP STA1INT: PUSH 90H PUSH PSW PUSH 00H PUSH 01H PUSH02H PUSH 05H PUSH 06H PUSH 07H PUSH 20H;中断子程序;存入46H中PUSH 21H PUSH 22H PUSH 23H PUSH 24H PUSH 25H PUSH 30H PUSH TH0 PUSH TL0MOV P1,#09H CLR TF0MOV TH0,#3CH MOV TL0,#0B0H MOV SEC,#20 L3:MOV TEMP1,R4 MOV TEMP2,R4ACALL CONVERT ;L4:ACALL DISPLAY JNB TF0,L4 CLR TF0 DEC SEC MOV A,SEC CJNE A,#0,L4 MOV SEC,#20 DJNZ R4,L3 MOV R4,#10 POP TL0 POP TH0 POP 30H POP 25H全部红灯调用BCD码转换子程序调用显示子程;;POP 24HPOP 23HPOP 22HPOP 21HPOP 20HPOP 07HPOP 06HPOP 05HPOP 02HPOP 01HPOP 00HPOP PSWPOP 90HRETI转换子程序CONVERT:MOV A,TEMP1 ;将南北要显示的数存放到 A MOV B,#10DIV AB ;A除以B商存A,余数存B MOV A_BIT,A ;将A 放到20HMOV B_BIT,B ;将B放到21HMOV A,TEMP2 ;将东西要显示的数存放到A MOV B,#10 DIV AB ;A除以B商存A,余数存B MOV C_BIT,A ;将A 放到22HMOV D_BIT,B ;将B放到23HRETDISPLAY: MOV DPTR ,#TAB ;显示子程序DPLOP1: MOV A,A_BIT ;将南北要显示的10位数送A MOVC A,@A+DPTR ;查表MOV P0,ACLR P2.7 ;显示南北10位数ACALL D1MS ;延时1MS SETB P2.7 ;灭南北10位数MOV A,B_BIT ;MOVC A,@A+DPTR ;MOV P0,ACLR P2.6 ;ACALL D1MS ;SETB P2.6 ;MOV A,C_BIT ;MOVC A,@A+DPTR ;MOV P0,ACLR P2.5 ;ACALL D1MS ;SETB P2.5 ;MOV A,D_BIT ;MOVC A,@A+DPTR ;MOV P0,ACLR P2.4 ;ACALL D1MS ;SETB P2.4 ;RETD1MS:MOV R3,#250D2:NOPNOP 将南北要显示的个位数送A 查表显示南北个位数延时1MS 灭南北个位数将东西要显示的10位数送A 查表显示东西10位数延时1MS 灭东西10位数将东西要显示的个位数送 A 查表显示东西个位数延时1MS 灭东西个位数延时子程序;1MSDJNZ R3,D2RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

《微机原理与接口技术》交通灯控制实验

《微机原理与接口技术》交通灯控制实验

2.4实验详细步骤首先接线,8255C口的0、1、2、5、6、7号管脚接LED显示电路L0、L1、L2、L5、L6、L7,D0~D7接JD1,RD*、WR*、A0、A1、RESET、CS*接IOR、IOW、A0、A1、RST、Y1,各模块接电。

然后运行DVCC软件,替换I/O基址,汇编、链接、运行,查看结果。

2.5实验结果LED显示电路的L0、L1、L2、L5、L6、L7按照十字路口交通灯的变化规律显示。

2.6实验过程遇到的问题与解决方案当出现红绿灯交换闪烁时,老师说体现不了交叉路口的灯的感觉(灯的排布的问题),后来我们把两个控制线叠加连接,使相同的灯闪烁。

江西理工大学《微机原理与接口技术》课实验报告实验二交通灯控制实验专业班级实验人学号实验日期同组人2.1 实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

2.2实验内容1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8 对应南北路口红灯。

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710R D5W R36A09A18R ESET35C S6U18255D0D1D2D3D4D5D6D7/R D/W RA0A1R STPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7R14.7KVCCD0D1D2D3D4D5D6D7JD1IORIOWA0A1RST(288H)Y1L6L7L8L0L1L28255C S图2-12.3实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。

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

中南大学微机课程设计报告题目交通灯设计专业班级姓名学号指导老师林立新老师目录1.课程设计题目、功能、目的 (2)2.系统分析与设计 (3)2.1系统所用芯片分析 (3)2.2所选用芯片的简要介绍 (4)2.3系统框图 (6)3.程序设计 (7)3.1十字路口交通灯状态转换表 (7)3.2主程序流程图 (7)3.3 中断子程序流程图 (8)3.4 数码管码表 (8)3.5 各芯片初始化说明 (9)4.运行情况 (10)5.具体源代码及注释 (11)6.心得体会 (16)一、课程设计题目、功能、目的1.课程设计题目--------------交通灯设计2.本设计所实现功能1)实现十字路口交通灯各种状态的转换;2)各种状态转换的时间可进行灵活设置;3)采用中断的方法对状态转换进行控制,提高处理器效率;4)在各个状态转换的同时实现倒计时提醒。

3.本次课程设计目的1)通过《微机原理与接口》课程设计,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。

2)要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。

二、系统分析与设计1.系统所用芯片分析1)首先本个系统需要一个中央处理器来负责对整个系统进行控制管理,因为《微机原理与接口技术》这门课上介绍了8086芯片,所以可以采用8086作为本系统的中央处理器。

2)由于本次的课程设计的题目是交通灯,而根据十字路口处的交通灯南北和东西方向各有红、绿、黄三种颜色的灯,因此可用8255来控制6个LED灯的实现模拟的南北和东西方向上的交通灯。

3)而交通灯的状态转换时间要由中断方式来控制,所以很容易想到了可以用8259作为中断芯片,与8086芯片相连。

4)交通灯的状态转换时间可灵活设置,于是想到了可以采用一块8253或8254芯片和一个脉冲源相连,8253对脉冲源送来的脉冲进行分频,然后将输出送到8259作为中断源,而8253采用不用的计数初值其输出脉冲的频率就不一样,因此实现了交通类状态转换时间的灵活设置。

5)最后关于交通灯状态转换的倒计时功能,可由一个七段数码管来显示倒计时,而本次课程设计的实验箱没有提供单个数码管,而是提供了一个八位一体七段数码管,所以还需一块8279芯片来对数码管进行控制。

2.所选用芯片的简要介绍8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各口功能可由软件选择,使用灵活,通用性强。

8255可作为单片机与多种外设连接时的中间接口电路。

8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。

intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。

每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。

每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。

每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。

输出锁存器的值是通过程序设置的。

输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。

顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。

资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。

它提供64K 8 位元的输出输入(或32K16 位元),以及固定的向量中断。

大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。

运算结果会储存在操作数中的一个寄存器。

Intel 8086有四个内存区段(segment)寄存器,可以从索引寄存器来设定。

区段寄存器可以让CPU 利用特殊的方式存取1 MB内存。

8086把段地址左移 4 位然后把它加上偏移地址。

大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。

尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,,使在编程中使用指针(如C编程语言)变得困难。

它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。

更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。

而8086 的寻址方式改变让内存扩充较有效率。

8086处理器的时钟频率介于4.77MHz(在原先的IBM PC频率)和10 MHz 之间。

8086 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。

3.系统框图三、程序设计1.十字路口交通灯状态转换表:南北方向东西方向十六进制代码红绿黄红绿黄0 0 1 0 0 0 1 0 22H0 0 1 0 0 0 0 1 21H0 0 0 1 0 1 0 0 14H0 0 0 0 1 1 0 0 0CH 2.主程序流程图:3.中断子程序流程图:4.共阴数码管码表:数字0 1 2 3 4 编码0x3F 0x06 0x5B 0x4F 0x66 数字 5 6 7 8 9 编码0x6D 0x7D 0x07 0x7F 0x905.8259初始化说明MOV AL,13H ;写ICW1,需要ICW4、单片工作、边沿触发方式MOV DX,INTPORT1OUT DX,ALMOV AL,08H ;写ICW2,设置中断向量号MOV DX,INTPORT2OUT DX,ALMOV AL,09H ;写ICW4,普通全嵌套方式、采用缓冲方式OUT DX,ALMOV AL,0F7H ;写OCW1,只开IR3中断请求,其余屏蔽OUT DX,AL6.8253初始化说明MOV DX,TCONTROMOV AL,10110100B;采用二进制计数方式,工作方式二,十六们计数,计数器二OUT DX,ALMOV DX,TCON2MOV AL,0AH ;计数初值为10,即1S中断一次OUT DX,ALMOV AL,00HOUT DX,AL7.8255初始化说明MOV AL,80H ;PA、PB、PC口都设定为输出工作方式MOV DX,IOCONPTOUT DX,AL四、运行情况经多次调试后,系统运行良好,实现了要求和设想中的全部功能,如上图为实际运行时的图片。

五、具体代码及注释CODE SEGMENTASSUME C S:CODEINTPORT1 EQU 0020HINTPORT2 EQU 0021HINTQ3 EQU INTREEUP3 ;8259CONTPORT EQU 00DFHDATAPORT EQU 00DEH ;8279TCONTRO EQU 004BH ;8253TCON2 EQU 004AHIOCONPT EQU 0073H 所用芯片端口地址初始化IOCPT EQU 0072HIOBPT EQU 0071H ;8255DATA0 EQU 0580HDATA1 EQU 0500HDATA2 EQU 0508HDATA3 EQU 0518HDATA4 EQU 0520HORG 1000HSTART: JMP Tint1Tint1: CLIMOV AX,0HMOV DS,AXMOV DX,CONTPORTMOV AL,00HOUT DX,ALMOV AL,2AHOUT DX,AL MOV AL,0d0h OUT DX,AL MOV AL,90h OUT DX,ALMOV AL,80H MOV DX,IOCONPT 8279初始化及工作方式的设定8255初始化及工作方式的设定OUT DX,AL MOV DX,TCONTROMOV AL,10110100B OUT DX,ALMOV DX,TCON2 MOV AL,0AH OUT DX,AL MOV AL,00H OUTDX,ALCALL FORMAT CLI MOV DI,DATA0 MOV CX,08H XOR AX,AX REP STOSW MOV SI,DATA3 CALL LEDDISP ;数码管显示初始图案“-------” MOV AX,0H MOV DS,AX CALL WRINTVER ;调用子程序,设置中断地址向量表 MOV AL,13H MOV DX,INTPORT1 OUT DX,AL MOV AL,08H MOV DX,INTPORT2OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0F7H OUT DX,AL MOV BYTE PTR DS:[0601H],03H MOV BYTE PTR DS:[0602H],00H STI ;开中断 WATING: JMP WATING ;等待中断,无限循环 WRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH LEA AX,INTQ3 STOSW MOV AX,CS STOSW RET8253初始化及工作方式的设定设置中断地址向量表子程序 8259初始化及工作方式的设定INTREEUP3: ;中断子程序CLIMOV AL,DS:[0601H]CALL CONVERSMOV SI,DATA0CALL LEDDISPCMP BYTE PTR DS:[0601H],03HJNZ NEXTMOV DX,IOBPTCOMP:CMP BYTE PTR DS:[0602H],00HJZ SI0CMP BYTE PTR DS:[0602H],01HJZ SI1CMP BYTE PTR DS:[0602H],02HJZ SI2CMP BYTE PTR DS:[0602H],03HJZ SI3SI0: MOV AL,22HADD BYTE PTR DS:[0602H],01HJMP PUTSI1: MOV AL,21HADD BYTE PTR DS:[0602H],01HJMP PUTSI2: MOV AL,14HADD BYTE PTR DS:[0602H],01HJMP PUTSI3: MOV AL,0CHMOV BYTE PTR DS:[0602H],00HJMP PUTPUT:MOV DX,IOBPTOUT DX,ALNEXT:MOV AL,20HMOV DX,INTPORT1OUT DX,ALSUB BYTE PTR DS:[0601H],01HCMP BYTE PTR DS:[0601H],00HJZ INTRE1JMP EX CONVERS:MOVBH,0H 判断DS:[0602H]里面的值,并跟据结果来进行对应的转换AND AL,0FHMOV BL,ALMOV AL,CS:[BX+DATA2]MOV BX,DATA0MOV DS:[BX],ALRETINTRE1:MOV BYTE PTR DS:[0601H],03H EX:MOV AL,20HMOV DX,INTPORT1OUT DX,ALSTIIRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LED1:CMP BYTE PTR DS:[0600H],07HJA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+SI]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0;MOV WORD PTR DS:[BX+0500H],5050H ADD BX,2MOV WORD PTR DS:[BX+0500H],0079H ADD BX,2MOV WORD PTR DS:[BX+0500H],0000H ADD BX,2MOV WORD PTR DS:[BX+0500H],0000H ADD BX,2MOV WORD PTR DS:[BX+0500H],063FH ADD BX,2MOV WORD PTR DS:[BX+0500H],4F5BH 显示子程序,从左到右依次送数格式化内存,将数码管将要显示的字符的编码写入内存中断结束控制方式OCW2,普通中断结束方式ADD BX,2MOV WORD PTR DS:[BX+0500H],6D66HADD BX,2MOV WORD PTR DS:[BX+0500H],077DHADD BX,2MOV WORD PTR DS:[BX+0500H],6F7FHADD BX,2MOV WORD PTR DS:[BX+0500H],7C77HADD BX,2MOV WORD PTR DS:[BX+0500H],5E39HADD BX,2MOV WORD PTR DS:[BX+0500H],7179HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2RETCODE ENDSEND START六、心得体会本学期的微机原理和接口技术及其课程设计都已经结束。

相关文档
最新文档