微机原理课程设计——交通灯控制系统
《微机原理与接口技术》课程设计-交通灯

信息工程系计算机科学与技术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秒,控制黄灯的时间。
微机原理课程设计说明(交通灯)

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、通过课程设计提高学生单片机的开发能力,
包括硬件设计和软件编程的能力。
二、课程设计的内容:
用单片机控制十字路口的交通灯,要求能
微机原理实验交通灯控制实验(DOC)

课程设计课程设计名称:交通灯控制实验专业班级:学生姓名:学号:指导教师:课程设计时间:2014.12.22---2015.1.2微机原理专业课程设计任务书学生姓名专业班级学号题目交通灯控制实验课题性质工程设计课题来源自拟课题指导教师同组姓名主要内容L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连.L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
任务要求1:掌握并理解芯片8255和8253计时器工作原理2:掌握并理解源程序和程序中的函数3:熟悉8255内部结构和与单片机的接口逻辑,掌握8255芯片的3种工作方式。
4:了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法参考文献《微型计算机原理及运用》谭浩强清华大学出版社《16/32位微机原理、汇编语言及接口技术》陈涛机械工业出版社《微机接口技术应用》审查意见指导教师签字:教研室主任签字:年月日一:设计的目的和内容1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
2 内容:如图1.L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连.L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
图1二:设计思想:在选择循环的时间上.老师上课时说过.长延时可以采用双层嵌套.外层嵌套为0FFFFH.内层嵌套为4000H.我在编程时外层送进了0.相当于初值为65536.内层送进了4000H。
为了达到闪烁和延时的区别.我在编闪烁的程序时.给外层嵌套送入初值3000H.内层0100H(这是我通过实验的结果)。
人眼感觉闪烁的效果只是短延时的结果此方案是通过并行接口芯片8255A和8086计算机的硬件连接.以及通过8253延时的方法.来实现十字路口交通灯的模拟控制。
如上图所示.红灯(RLED).黄灯(YLEDD)和绿灯(GLED)分别接在8255的A.B.C口的低四位端口.PA0.PA1.PA2.PA3分别接南.东.北.西路口的红灯.B.C口类推。
微机系统课程设计实验报告交通信号灯自动控制模拟指示系统

微机系统课程设计实验敷陈课题:交通信号灯自动控制模拟指示系统一、课程设计目的1.掌握CPU与各芯片管脚连接方式,提高借口扩展硬件电路的连接能力。
2.加深对按时器、计数器和并行借口芯片的工作方式和程方式的理解。
3.掌握交通信号灯自动控制系统的设计思路和实现方式。
二、课程设计内容设计并实现十字路口通信号自动控制模拟指示系统。
设该路口由A、B两条通行相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。
三、应用系统设计方案交通信号灯的亮灭时间及数码管显示时间可以通过8253来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值为1000。
按照需要设定工作在方式3.交通信号灯及数码管可以采用系统提供的相应模块,控制可以通过8255可程并行借口,PA口控制红黄绿交通灯的亮灭,PB口和PC口控制时间显示数码管的段和位。
PC0作为OUT1的输入。
四、系统测试结果1.根本功能实现(1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数为零瞬间转换。
即南北的绿灯、东西的红灯同时亮30秒,同时南北路口数码管递减显示绿灯剩余时间;为0时,南北的黄灯闪烁5秒钟,同时东西的红灯继续亮;南北的红灯、东西的绿灯同时亮30秒,同时东西路口数码管递减显示绿灯剩余时间;为0时,南北红灯继续亮,同时东西的黄灯闪烁5秒;假设不完毕,那么开场循环。
(2)通过键盘可以对红、黄、绿三色信号灯所亮时间再0~99内任意设定。
(3)十字路口的通行气势状态可自行设定,系统启动后自动运行,按“Q〞退出。
2、发挥局部实现〔1〕增加人工干预干与模式,在特殊情况下可通过人工干预干与,手动控制A、B交通灯的切换时间,并可以随时切换为自动运行模式。
〔2〕增加夜间控制功能,交通灯在进入夜间模式后,A、B干道上红、绿灯均不亮,黄灯信号灯闪烁。
〔3〕增加红灯倒计时显示。
五、课程设计中遇到的问题及解决法子1.8253的两个计时器的连接及工作方式选择,在查找相关资料后,将两个计时器串联,并工作在方式3下,初始值为1000。
微机原理课程设计交通灯

课程设计任务书图1 8086CPU的内部功能结构图(1)8086的主要特性Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:(a)8086CPU数据总线为16位,8088CUP数据总线为8位。
(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。
(c)有16位的端口地址,可以寻址64KB的I/O端口。
(d)有99条基本指令,指令功能强大。
(e)有9种基本寻址方式。
(f)可以处理内部和外部中断,外部中断源多达256个。
(g)兼容性好,8086、8085在源程序一级兼容。
(h)8086/8088标准主频为5MHz,8086/8088-2主频为8MH【3】。
(i)支持单处理器或多处理器系统工作。
课程设计说明书N O.5图4 8255内部结构及引脚图 8255内部结构及引脚图具体的各引脚功能如下【3】:D0~D7为双向数据信号线,用来传送数据和控制字。
RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR 信号。
WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。
课程设计说明书课程设计说明书N O.7图图2 置位/复位控制字格式8255的寻址:8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。
对同一个地址分别可以进行读写操作。
例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出【8】。
如表2为方式0下系统的输入输出组合,其中分为A,B组,A组分为A口和C口,B组分为B口和C口。
8255的工作方式主要有工作方式0、工作方式1和工作方式2。
其中端口A可以工作在三种方式中的任一种;端口B只能工作在方式0和方式1;端口C通常作为控制信号使用,配合端口A和端口B的工作。
在交通灯控制的设计中只用到了工作方式0。
课程设计说明书课程设计说明书3.2 8253简介intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异。
微机原理课程设计交通灯

二○一一~二○一二学年第二学期信息科学与工程学院课程设计报告书课程名称:微机原理课程设计班级:电子信息工程2009级 6 班学号:200904135150姓名:张强指导教师:徐守明二○一二年二月二十日十字路口交通灯控制系统设计一、摘要随着现代科学技术的进步,自动化控制技术越来越多地被运用到生产生活当中。
现代交通的发展,对自动化控制技术也提出了较高的要求,如何科学有效对交通流量进行管理,已成为一项社会课题。
在课程设计的背景下,本系统运用了8255和8253芯片,基于8086CPU实现了通过B口控制南北东西方向的红绿灯的循环点亮,实现了对交通流量的模拟协调调度。
另外,本系统还有手动测试功能。
关键词:交通灯;8255;8253;LED;模拟控制Keywords:traffic light;8253;8255;LED;analog control二、设计任务及要求利用“微机实验系统”的8255可编程接口的A口(PA7-PA0)、B口(PB7-PB0)、C口(PC7-PC0)控制发光二级管(红、绿灯)的L1-L8和开关KK1- KK2,使发光二级管按照十字路口交通灯的规律交替发光,模拟交通信号灯的工作。
●发光二级管(LED) 显示电路①8个LED L1-L8,4个红灯、4个绿灯②L=0 LED亮; L= LED灭●开关对交通灯的控制①开关KK2=0 红灯皆亮;开关KK2=1 绿灯皆亮②开关KK1=0 启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭)●交通灯亮灭规律参考②北方向绿灯亮、东西方向红灯亮20秒②南北方向红灯亮、东西方向绿灯亮20秒●适当地加一些额外功能重复上述过程注:20秒定时由8253控制三、总体设计思路北(红绿灯)东(红绿灯)西(红绿灯)南(红绿灯)说明:其中KK3用于管理开关KK1、KK2;分析题意,红绿灯可直接接在8255的A 、B 、C 任意一个口上,灯的亮灭可直接由8086输出0,1控制;开关用于控制红绿灯的工作状态,可以从A 、B 、C 任意一个口进行读进判断;八段数码管的倒计时显示部分的位码有74LS273进行输入,段码则是经过8255端口输出。
微机原理课程设计-交通灯控制系统

福建工程学院计算机与信息科学系微机原理课程设计报告书课题名交通灯控制系统班级网络1001姓名指导教师日期 2012-6-13目录1 、设计任务 (1)2 、总体方案设计与方案论证 (1)3 、总框图及总体软件设计说明 (2)4 、接口电路逻辑图及硬件设计说明,或系统资源使用说明 (3)5 、局部程序框图及其设计说明 (4)6 、源程序清单(详细注释) (4)7 、系统功能与操作说明 (9)8、调试记录及调试结果 (10)9 、设计总结与体会 (10)10 、参考文献 (10)1 、设计任务交通信号灯控制系统:要求能显示剩余时间和控制红、黄、绿三色灯的显示。
并且能够显示倒计时时间,并且能都手动控制紧急情况。
2 、总体方案设计与方案论证方案一:利用8279显示数码管倒计时、8255等接口,利用软件延时,设计电路,模拟十字路口交通灯控制。
能实现自动控制和手动应急控制。
方案二:利用8253定时,8255控制灯的状态和控制数码管输出,8259中断来控制紧急情况。
模拟十字路口交通灯控制。
能实现自动控制和手动应急控制。
通过比较,方案二用到了8259比较麻烦,并且用8255控制数码管的输出倒计时硬件连接比较麻烦,没有使用8279方便。
8253定时虽然比较准确,到时多用到了一块芯片,增加了连线和成本,用软件延时的方法也基本可以做到。
所以综合考虑,我们小组决定实施方案一。
3 、总框图及总体软件设计说明软件流程图:8279芯片引脚图4 、接口电路逻辑图及硬件设计说明,或系统资源使用说明(1)8255A 的控制字:8255A 方式选择控制字8255芯片引5 、局部程序框图及其设计说明6 、源程序清单(详细注释)code segmentassume cs:code,ds:codestart: mov ax,csmov ds,axcall I8255 ;8255初始化Call I8279 ;8279初始化last1: mov si,offset mesg ;mov di,offset timelast2: cmp byte ptr[si],-1 ;检测是否到最后一个je last1 ;是,跳转到last1从第一个开始 mov al,[si] ;否则开始送数mov dx,A_8255 ;数据->8255A口out dx,al ;把al中的内容送往8255A口mov cx,[di] ;时间送往cx寄存器push di ;保存现场lp3: lea di,num ;显示倒计时时间内容,通过num表查表lp: call delay2 ;延时mov dx,221H ;检查B0口是否低电平in al,dxtest al,01hjnz nex ;若高电平按正常情况进行,否则紧急情况be: mov dx,220H ;出现紧急情况mov al,36h ;把36送往A口out dx,al ;即南北红灯全部亮mov dx,221Hin al,dx ;检查B0是否高电平到来test al,01Hjz be ;没有,还是处于紧急情况,继续执行南北红灯亮jmp last1 ;紧急情况解除,重新开始nex: cmp byte ptr[di],00h ;检测是否是否到了最后一个,jz lp3 ;是从头开始mov al,[di] ;吧num中的内容送往alcall disp ;调用子程序 disp 显示alinc di ;吧 di指向下一个数loop lppop diinc siadd di,2jmp last2return: mov ah,4chint 21h;-----------------------I8255 proc ;8255初始化程序mov dx,CON_8255mov al,10000010B;设置82555工作状态D7为1方式控制字,A口输出 out dx,alretI8255 endp;-------------------------I8279 proc ;8279初始化程序push axpush dxpush cxmov al,ledmod ;设定8279工作模式out dx,al ;左边输入,8位显示mov al,ledfeqout dx,al ;扫描频率mov cx,8Xz: mov dx,d8279mov al,0out dx,al ;清空显示loop xzpop cxpop dxpop axretI8279 endp;-------------------------delay proc near ;延时子程序,延时一秒push cx,mov cx,0ffffhloop $pop cxretdelay endpdelay0 proc nearpush cxmov cx,0ffffhcall delayloop $pop cxretdelay0 endpdelay1 proc nearpush cxmov cx,0ffffhcall delay0loop $pop cxretdelay1 endpdelay2 proc nearpush cxmov cx,0ffffhcall delay1loop $pop cxretdelay2 endp;-----------disp proc near ;显示子程序;要显示的十进制数放在al中push bxpush cxpush dxmov ch,al ;把 al放在 cl 中保存mov cl,4 ;ror al,cl ;把 al 循环右移 4 位,既高位和低位调换and al,0fh ;高位清零,低位保存的是十位的内容不变push ax ;保护现场mov dx,z8279 ;8279控制端口mov al,81h ;选择81 号既右数第二个数码管out dx,al ;在第二个数码管上输出al既高位的内容pop ax ;还原现场lea bx,Led ;数据段地址xlat ;查表把[bx,al]中的内容送往 almov dx,d8279 ;8279数据端口out dx,al ;显示转换结果高4位mov al,ch ;b把保存的al内容输出and al,0fh ;高位清零push axmov dx,z8279mov al,80h ;选择第一个数码管输出out dx,al ;显示个位pop axlea bx,Ledxlatmov dx,d8279 ;显示转换结果低4位out dx,alpop dxpop cxpop bxretdisp endp;--------Led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhnum db30h,29h,28h,27h,26h,25h,24h,23h,22h,21h,20h,19h,18h,17h,16h,15h,14h,13h,12h,11h ,10h,09h,08h,07h,06h,05h,04h,03h,02h,01h,00h,-1;-----------mesg db 35h,33h,2eh,1eh,-1 ;灯的状态表time dw 1eh,1h,1eh,1h ;延时时间表LEDMOD EQU 00h;左边输入.八位显示外部译码八位显示LEDFEQ EQU 38H;扫描频率Z8279 EQU 20Ah;8279控制口地址D8279 EQU 208h;8279数据口地址A_8255 equ 220HB_8255 equ 221HCON_8255 equ 223Hcode endsend start7 、系统功能与操作说明程序运行结果:1.东西红灯亮,南北绿灯亮,延时29秒。
微机原理课设交通信号灯模拟控制系统

南京工程学院通信工程学院课程设计说明书(论文) 题目交通信号灯模拟控制系统课程名称微型计算机原理与接口技术专业班级学生姓名学号设计地点指导教师设计起止时间:2013年12月23日至2013年12月27日目录第一章概述在实际生活中,交通信号灯控制着交通的秩序安全。
本次微机原理课程设计就是模拟实际十字路口交通灯的运行规则,用汇编语言来设计交通信号灯。
本次设计主要是实现对十字路口交通信号灯的控制而进行的编程,用8255A的A口控制东西方向的交通灯,用8255A的B口控制南北方向的交通灯。
当程序正常运行时,依次为东西方向的绿灯和南北方向的红灯闪烁25s,东西方向的绿灯灭后东西方向的黄灯亮5s,随后东西方向的红灯和南北方向的绿灯亮并闪烁15s,南北方向的黄灯亮5s,之后同理往复循环。
用8255A的C口控制紧急情况时东西、南北方向的红、黄、绿灯的亮灭,通过读C口输入的数据并进行测试查询,从而对紧急情况进行及时处理。
用LED(发光二极管)模拟信号灯,8255A实现对信号灯的控制(PC0~PC6分别接D0~D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现25s、15s和5s的定时。
十字路口交通信号灯设计充分利用了可编程的并行接口芯片8255A各引脚的功能,选定工作方式0,通过改变控制字来实现交通信号灯的状态转换。
另外,通过调用延时子程序来实现交通信号灯某一状态的持续,调用循环子程序来实现对交通信号灯状态循环的控制,通过控制开关来实现紧急情况下各路口红灯全亮的功能。
综合各部分功能来实现较为完善的程序,运行程序来模拟十字路口交通信号灯。
第二章设计介绍功能描述当东西方向(A道)和南北方向(B道)均有车辆要求通过时,A道和B 道轮流放行。
A道放行25S,B道放行15S,依次轮流。
绿灯转换红灯时黄灯亮5S。
一道有车,另一道无车时(用开关K5、K6状态模拟),控制系统能立即让有车道放行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南通大学电子信息学院
微机原理课程设计
报告书
课题名交通灯控制系统
班级 _______ 学号 __________ 姓名 ____ 指导教师 ______ 日期 _________
目录
1 设计目的 (1)
2 设计内容 (1)
3 设计要求 (1)
4 设计原理与硬件电路 (2)
5 程序流程图 (4)
6 程序代码 (4)
7 程序及硬件系统调试情况 (8)
8 设计总结与体会 (9)
9 参考文献 (9)
1 设计目的
电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。
交通灯是采用计算机通过编写汇编语言程序控制的。
红灯停,绿灯行的交通规则。
广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。
诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。
还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。
或者给红绿色盲声音警示的人性化设计。
现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。
当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。
因此,研究交通灯及扩大其应用,有着非常现实的意义。
2 设计内容
交通灯控制系统
利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。
要求能实现自动控制和手动应急控制。
3 设计要求
在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路
软件设计
1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。
2、画出程序流程图。
3、根据流程图,编写源程序。
4、在Proteus环境下,仿真调试程序
4 设计原理与硬件电路
5 程序流程图
6 程序代码
A_PORT EQU 200H B_PORT EQU 202H C_PORT EQU 204H CTRL_PORT EQU 206H
CLK0 EQU 100H
CLK1 EQU 102H
CTRL EQU 106H
DATA SEGMENT
BUF1 DB 09H,11H,21H,12H,0CH,4AH,89H,49H
BUF2 DB 0C5H,0A3H,95H,93H,95H,13H,15H,23H,0H DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AL,10010000B
MOV DX,CTRL_PORT
OUT DX,AL
MOV AL,0
MOV DX,B_PORT
OUT DX,AL
MOV DX,C_PORT
OUT DX,AL
CALL PLAY
LEA SI,BUF1
LEA BX,BUF2
AAA1: MOV CH,[BX]
MOV CL,CH
AND CL,00001111B
CALL SHOW1
CALL DELAY
CALL SHOW2
CALL DELAY
JMP AAA6
AAA4: MOV DX,A_PORT
IN AL,DX
AND AL,00000001B CMP AL,00000000B JNZ AAA7
MOV AL,00001001B MOV DX,B_PORT
OUT DX,AL
MOV AL,10010000B MOV DX,C_PORT
OUT DX,AL
JMP AAA4
AAA7: MOV DX,A_PORT
IN AL,DX
AND AL,00000010B CMP AL,00000000B JNZ AAA4
CMP CL,0
JNZ AAA5
INC SI
INC BX
MOV AL,[BX]
CMP AL,0
JNZ AAA1
JMP START
AAA5: DEC CL
DEC CH
CALL SHOW2
CALL DELAY
AAA6: MOV DX,A_PORT
IN AL,DX
AND AL,00000010B CMP AL,00000010B JNZ AAA6
JMP AAA4
SHOW1 PROC
MOV AL,[SI]
MOV DX,B_PORT
OUT DX,AL
RET
SHOW1 ENDP
SHOW2 PROC
MOV AL,CH
MOV DX,C_PORT
OUT DX,AL
RET
SHOW2 ENDP
PLAY PROC
MOV AL,00110111B MOV DX,CTRL
OUT DX,AL
MOV AX,1000
MOV DX,CLK0
OUT DX,AL
MOV AL,AH
OUT DX,AL
RET
PLAY ENDP
DELAY PROC
PUSH CX
MOV CX,0F5FH
LOOP1: LOOP LOOP1
POP CX
RET
DELAY ENDP
CODE ENDS
END START
7 程序及硬件系统调试情况
程序运行结果:
1.东西路右拐和南北路左拐绿灯点亮5秒,直通到均为红灯2.5秒后,黄灯亮3秒钟,。
此时南北方向仍维持红灯点亮。
3.东西方向直通,为绿灯,南北方向红灯
4.黄灯再亮三秒之后,东西路左拐和南北路右拐绿灯点亮
5.南北方向的黄灯亮3秒钟后,南北方向直通,延时5秒
6.闭合A口开关,四个路口全红灯,表明紧急状态。
8 设计总结与体会
经过这两周的课程设计, 做关于交通灯系统设计,我认真查阅资料,学习关于这方面的知识,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲以及交通有哪些规则.在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够好,我只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解.
而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。
把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。
以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。
9 参考文献
[1] 彭虎、周佩玲、傅忠谦.《微机原理里与接口技术》(第2版) [M] 北京:电子工业出版社 2008,149-187
[2] 周明德.《微型计算机系统原理及应用》[M] 北京:清华大学出版社,1998;
- 9 -。