网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

交通灯模拟实验

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
模拟交通灯课程设计题目:模拟交通灯课程名称:汇编语言与微机原理目   录概述  …………………………………………………………  1一 设计内容与要求  ………………………………………  4二 设计思想…………………………………………………  4  三 教学实验系统连线………………………………………  5 四 所用芯片工作原理………………………………………  5 五 实验连线图  ……………………………………………  9六 程序流程  ………………………………………………  9 七 程序源代码 ……………………………………………… 10八  设计过程中遇到的问题及解决方法 …………………… 13九 设计心得 ………………………………………………… 13参考文献 ……………………………………………………… 14致谢 …………………………………………………………… 14摘 要:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。本次设计为十字路口交通灯控制系统设计,硬件部分它以8031单片机为核心,并在此基础上扩展了程序存储器(EPROM)2764、静态数据存储器(SRAM)6264,利用地址锁存器74LS373扩展I/O并行接口芯片8255A。软件部分它结合定时/计数等知识进行程序编译。
关键词:单片机;存储器;扩展;定时/计数器THE Electronic StopwatchAbstract: With the development of social, scientific and technological progress, as well as people's living standards gradually improved, a variety of convenient living in the automatic control system into people's lives, to the core of the single-chip systems are more and more. At the same time in the field of automatic control is also a sign of the digital age has become a member. It is practical, full-featured, advanced technology, to make people believe that this is the progress of science and technology. It made human beings understand that the development of the digital age will change the lives of human beings, will accelerate the development of science and technology. The design for the crossroads traffic lights control system design, hardware to its 8031 MCU core, and on that basis to expand the program memory (EPROM) 2764, static RAM (SRAM) 6264, addresses the use of latches 74LS373 expansion I / O parallel interface chip 8255A. It combines some of the software from time to time / knowledge to carry out procedures such as the count compiled.Key words: Single-chip; memory; expansion; Timers / Counters182
 
单片机交通灯概述:本实验是在TND—MD教学系统上实现的模拟信号灯程序。其模拟在十字交叉路口设置交通灯和倒计时牌,实现了基本的通行模式:不但考虑东往西,南往北两个直行方向,而且考虑到左拐情况,直行、左拐和禁止时间比例为0.8:0.2:1。东口和南口都分别设计了直行和左拐两组红绿指示灯(利用红绿LED显示)和到计时牌显示通行时间(利用液晶显示屏分两组显示)。所使用的芯片主要有8253定时计数器、8255A并行接口电路芯片、8259A中断控制器等。还利用LED红绿发光二极管表示红绿灯,显示可以和禁止通行的方向。利用液晶显示屏分两组显示到计时,它的计时单位为秒,运行后通过程序中预定设计的数字开始循环倒计时。
一、设计内容和要求提高要求:a) 考虑东往西,南往北两个直行方向和左拐情况;直行、左拐和禁止时间比例为0.8∶0.2∶1;b) 南口和北口设置各设置直行和左拐两组红绿灯(利用红绿LED显示)和倒计时牌显示(利用4个数码管或液晶显示屏分两组显示);c) 注意东口和南口之间禁止通行时间等于左拐与直行通行时间之和。  如下图,在十字交叉路口设置交通灯和倒计时牌,东边与西边显示完全一样,南边与北边的显示完全一样,只需设计东边和南边。                                         模拟交通图
二、设计思想本程序是TND—MD教学系统上实现的,要使用汇编语言进行编写,整体的设计思路是:由于要实现前叙实验要求,本程序要达到以下几个功能:秒信号的产生:    现实生活中交通灯都是倒计时的,因此本实验需要一个秒信号,而在TND—MD教学系统上的8253定时计数器可以实现这个功能。由于8253的OUT输出频率为1.19318MHz,若使其计数初值为1193180,则刚好每秒产生一个脉冲。而8253的每个计数器都是16位的,无法存入这个值,两个计数器级联可以实现:让0通道的OUT0连接8259的IRQ0,再由OUT0 连2通道的CLK2,使OUT2输出秒信号。其中计数器0的计数初值设计为1190,而计数器2的计数初值设计为1000,则OUT2每秒输出一个脉冲方波信号。
倒计时的显示: 利用TND—MD教学系统上的液晶显示屏,来实现显示倒计时。由于考虑到了东、南两个方向的通行显示,所以我们设计了两个到计时,一个用来显示东边方向的到计情况,另一个用来显示南边方向的到计情况。为了模拟的方便,我设计了直行时间为24秒,左拐时间为6秒,禁行时间为30秒。通过8253产生的秒信号,每秒驱动8259的IRQ7产生一次中断,调用中断服务程序显示到计时,每秒减一。东边通行时:时间从24减到0,然后是6秒的左拐时间,南边是30秒的禁止时间。南边的情况一样。东、南两个方向的时间都分别显示在液晶显示屏上。
红绿灯的显示和改变: 在TND—MD教学系统上有LED红绿发光二极管,上面有4个红灯和4个绿灯,且有8个对应的引脚,我们可以利用并行接口芯片8255来实现对这个8个引脚的控制。即8255初始化后,将PB0…PB7依次连接在D0…D7上,每次只要往8255的B端口写数据就可以控制8个灯的亮灭。在本实验中,为了模拟各种情况,我把8个灯分成两组:东组有:1,2,5,6四盏灯;南组有:3,4,7,8四盏灯。其中东直行时各盏灯的亮灭情况是:11010111(“0”为亮,“1”为灭);东左拐时是:11010011;南直行时是:01111101;南左拐时是:01111100。通过8253来定时驱动各种情况的切换。
三、教学实验系统连线1)本实验所用引脚有:8259A的IRQ0和IRQ7                   8253的计数器2上的CLK2和OUT2                   8255的PB0——PB7                   LED发光二级管的D0——D7                  2)各引脚的连线情况:IRQ0——CLK2
OUT2——IRQ7
PB0…PB7——D0…D7
四、所用芯片工作原理本实验所使用的芯片主要有8253定时计数器、8255A并行接口电路芯片、8259A中断控制器等,它们的工作原理分别如下:(一)8253定时计数器8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。它有3个独立的十六位计数器,计数频率范围为0-2MHz.它所有的计数方式和操作方式都通过编程控制,右下图是8253的内部结构图,其工作原理如下:1、8253的功能是:    (1)延时终端;(2)可编程频率发生器;(3)事件计数器;(4)倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器2、计数器0,计数器1,计数器2 :    这3个计数器互相独立,各自可按不同的方式工作。计数器的内部结构如前面所述,每个计数器包含一个16位的初始寄存器,一个计数执行部件和一个锁存器。计数执行部件从初始值寄存器中获得计数初值,便进行减1计数,此时,锁存器跟随记数执行部件的内容而变化,当有一个锁存命令来到时,锁存器便锁定当前计数,直到被读走以后,又跟随计数执行部件的动作。各计数器的外部输入输出信号:① 计数器0:CLK0—计数器0的时钟输入。    GATE0—计数器0的门脉冲控制输入。    OUT0—计数器0的输出。 ② 计数器1:CLK1—计数器1的时钟输入。    GATE1—计数器1的门脉冲控制输入。    OUT1—计数器1的输出。 ③ 计数器2:CLK2—计数器2的时钟输入。    GATE2—计数器0的门脉冲控制输入。    OUT2—计数器0的输出。3.读/写逻辑电路:     读/写电路从系统控制总线接收输入信号,经过组合,产生对8253各部分的控制。具体为:    A1、A0—用来对3个计数器和控制积存器进行寻址。    RD—读信号。当RD为低电平时有效,此时,表示CPU正在对8253的一个计数器进行读操作。    WR—写信号。当WR为低电平时有效,此时,表示CPU正在对8253的几个计数器进行写操作。    CS—片选信号。只有在CS为持续低电平的情况下,RD和WR才会受到确认,否则会被忽略。4.工作方式:    方式0:计数结束产生中断    方式1:可重复触发的单稳态触发器    方式2:分频器    方式3:方波发生器    方式4:软件触发的选通信号发生器    方式5:硬件触发的选通信号发生器(二)8255A并行接口电路芯片8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式;方式1:选通输入/出方式;方式2:双向选通工作方式。右图为8255内部结构图:1.数据端口A、B、C    共提供24条数据线,与外设相联结,可以用软件将它们分别编程为输入端口或输出端口:端口A:  ①1个8位的数据输入锁存器:PA作输入时,有锁存功能。  ②1个8位的数据输出锁存器缓冲器:PA作输出时,有锁存功能。端口B:  ①1个8位输入缓冲器:PB作输入时,不对数据锁存。  ②1个8位输出锁存器缓冲器:PB作输出时,有锁存功能。端口C:  ①1个8位输入缓冲器:PC作输入时,无锁存功能。  ②1个8位输出锁存器缓冲器:PC作输出时,有锁存功能。2.A组控制和B组控制  8255在使用中,PA和PB常作为独立的输入/输出端口,端口C则配合PA、PB的工作。因此,把PA、PB、PC分为两组。A组:PA、PC的上半部(PC7-PC4)B组:PB、PC的下半部(PC3-PC6)  这两组端口的工作方式分别由A组控制和B组控制逻辑进行控制。3.读写控制逻辑  该部分控制8255与CPU的数据传输。它接收CS、A1、A0,WR、RD及reset信号。(三)8259A中断控制器中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片.其内部结构逻辑主要由以下三部分组成:(1)控制逻辑;(2)中断优先权判优及其屏蔽;(3)辅助电路.编程结构由三组共10个寄存器构成,每个寄存器均为
 
交通灯模拟实验8位。1、寄存器分类情况: 第一组:IRR、PR、ISR    IRR:中断请求寄存器(Interrupt Request Register)该寄存器的8位(D7~D0)分别存放IR7~IR0输入线上的中断请求。当某输入线有请求时,IRR对应位置1,该寄存器具有锁存功能。    ISR:当前中断服务寄存器(In Service Register) 该寄存器用于存放正在被服务的所有中断级,包括尚未服务完而中途被别的中断打端了的中断级。    PR:优先级裁决器(Priority Resolver) 当IR输入线上有请求时,IRR对应位置1,同时,PR将该中断的优先级与ISR中的优先级比较,若该中断的优先级高于ISR中的最高优先级,则PR就使INT信号变为高电平,把该中断送给CPU,同时,在ISR相应位置1。否则,PR不为该中断提出申请。 第二组:ICW1、ICW2、ICW3、ICW4    用来存放初始化命令字(Initialization CommandWord)。初始化命令字一般在系统启动时由程序设置,一旦设定,一般在系统工作过程中就不再改变。    ICW1:指定本8259是否与其他8259级联,以及中断请求输入信号的形式(边沿触发/电平触发)。    ICW2:指定中断类型码。    ICW3:指定本8259与其他8259的连接关系。    ICW4:指定本片8259的中断结束方式、中断嵌套方式、与数据总线的连接方式(缓冲/非缓冲)。第三组:OCW1、OCW2、OCW3    用于存放操作命令字(Operation Command Word)。操作命令字由应用程序使用,以便对中断处理过程作动态控制。在系统运行过程中,操作命令字可以被多次设置。    OCW1:又称中断屏蔽寄存器(IMR:Interrupt Mask register),当其某位置1时,对应的IR线上的请求被屏蔽。例如,若OCW1的D3位置1,当IR3线上出现请求时,IRR的D3位置1,但8259不把IR3的请求提交优先级仲裁器PR裁决,从而,该请求没有机会被提交给CPU。    OCW2:指定优先级循环方式及中断结束方式。    OCW3:指定8259内部寄存器的读出方式、设定中断查询方式、设定和撤消特殊屏蔽方式。8259寄存器的地址分布表: 地址  写操作的寄存器  读操作的寄存器 20H(A0H)  ICW1(D4=1)、OCW2(D4=0且D3=0)、OCW3(D4=0且D3=1)  IRR(读命令后,读命令的RIS=0)ISR(读命令后,读命令的RIS=1) 21H(A1H)  ICW2、ICW3、ICW4、OCW1(由写入顺序决定)  OCW1 PR寄存器程序不可访问。20H、21H对应主8259,A0H、A1H对应从8259。 2、Intel8259的功能    Intel 8259A(简称8259)是一种可编程中断控制器(PIC:Programmable Interrupt Controller),有如下功能:   (1)一片Intel 8259可管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端.   (2)当CPU响应中断时,为CPU提供中断类型码.   (3)8个外部中断的优先级排列方式,可以通过对8259编程进行指定。也可以通过编程屏蔽某些中断请求,或者通过编程改变中断类型码.   (4)允许9片8259级联,构成64级中断系统.    在微机中,使用两片8259级联,构成15级中断。
五、实验连线图六、程序流程图 七、程序源代码8253的初始化:mov  al,37h……………….给计数器0写控制字(00110111)out   43h,almov  ax,1190h………........赋计数初值out   40h,almov  al,ahout   40h,almov  al,b7h……………….给计数器2写控制字(10110111)out   43h,almov  ax,1000h……………赋计数初值out   42h,almov  al,ahout   42h,al
8255的初始化:mov  al,80h……………….(10000000)out   63h,al
8259向量表设置:push  ds…………………..保存数据段mov   ax,0000hmov   ds,ax………………数据段清零mov   ax,offset irq7………取中断程序的入口地址(相对地址)add   ax,2000h....................加装载时ip=2000h地址(绝对地址)mov   SI,003chmov   [SI],ax……………..填偏移地址mov   SI,003ehmov   ax,0000h…………...填段地址mov   [SI],ax
IRQ7开屏蔽:in    al,21hand   al,7fh………………..开8259中断7out   21h,alsti主程序:start:mov  cl,18h……………….东直行24秒mov  ch,1eh………………南禁行30秒mov  al,d7h……………….东直行指示灯情况(11010111)out   61,ala:cmp  cl,00hjnz   amov  cl,ch……………….东左拐6秒mov  al,d3h……………..东左拐指示灯情况(11010011)lwfree.cnclimov  cl,1eh……………..东禁行30秒mov  ch,18h…………….南直行24秒mov  al,7dh……………..南直行指示灯情况(01111101)out   61,alstic:cmp  ch,00hjnz   cmov  ch,cl………………南左拐6秒mov  al,7ch……………..南左拐指示灯情况(01111100)out   61,ald:cmp  ch,00hjnz   djmp  start
irq7:..................................中断服务程序mov  ax,0001…………...清屏int   10mov  ah,00hmov  al,cldiv   0ahmov  dx,axmov  al,dladd   al,30hmov  ah,01hint   10mov  al,dhadd   al,30hmov  ah,01hint   10dec   clmov  ax,0120h………..空格int   10mov  ah,00hmov  al,chdiv   0ahmov  dx,axmov  al,dladd   al,30hmov  ah,01hint    10mov  al,dhadd   al,30h
 
交通灯模拟实验mov  ah,01hint    10dec   chmov  al,20h…………..中断结束命令out   20h,aliret……………………..中断返回
八 设计过程中遇到的问题及解决方法起初设计这个实验时,自己脑子里还不是很清楚实验的原理,看了设计要求中的流程图很费解。后来自己上网、到图书馆查阅了很多关于8253、8255、8259的芯片介绍和与数字秒表相关联的资料后,心里对这个实验的流程有了自己的认识。还有一个问题就是自己对DISPLAY这个子程序也不是很了解,运行运行调试时仪器报了错,后来解老师对我在调试程序中出线的错误进行了仔细分析,指导我排除了错误,最后程序运行成功。 九 设计心得这次微机原理课程设计历时两个星期,在这整整两星期里,通过与同学之间的交流学到很多很多原来不懂的东西,同时也巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图画出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解芯片的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我会努力弥补这些问题的出现!参考文献:[1]曲永湖,杨新锋.微机应用系统精确定时器设计与实现[J],计算机应用.1997(4):51—53.[2]邓亚平,陈昌志.微型计算机接口技术[M].北京:清华大学出版社,2005:145—146.[3]钱晓捷.微机原理与接口技术[M]北京:机械工业出版社,2007:256—270.致   谢在本次课程设计中,老师无论是在理论上还是实践中,都给予我很大的帮助,使我得到不少的提高。这对于我以后的工作和学习都是一种巨大的帮助。特别是他那份作为老师的耐心和责任心,不仅进一步加深了我对他的敬重也促使我不断地严格要求自己。在此我由衷地感谢!
  • 上一篇资讯: Bayes定理及其思想总结
  • 下一篇资讯: 网站设计制作策划书
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师