微机原理与接口技术课程设计-----交通灯设计(共19页).doc

上传人:飞****2 文档编号:14025433 上传时间:2022-05-02 格式:DOC 页数:19 大小:865KB
返回 下载 相关 举报
微机原理与接口技术课程设计-----交通灯设计(共19页).doc_第1页
第1页 / 共19页
微机原理与接口技术课程设计-----交通灯设计(共19页).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《微机原理与接口技术课程设计-----交通灯设计(共19页).doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计-----交通灯设计(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上中南大学微机课程设计报告题 目 交通灯设计 专 业班级 姓 名 学 号 指导老师 林立新老师 目录1. 课程设计题目、功能、目的.22. 系统分析与设计32.1 系统所用芯片分析.32.2 所选用芯片的简要介绍42.3 系统框图.63. 程序设计.73.1十字路口交通灯状态转换表73.2主程序流程图73.3 中断子程序流程图.83.4 数码管码表.83.5 各芯片初始化说明.94. 运行情况.105. 具体源代码及注释116. 心得体会.16一、 课程设计题目、功能、目的1. 课程设计题目-交通灯设计2. 本设计所实现功能1) 实现十字路口交通灯各种状态的转换;2)

2、各种状态转换的时间可进行灵活设置;3) 采用中断的方法对状态转换进行控制,提高处理器效率;4) 在各个状态转换的同时实现倒计时提醒。3. 本次课程设计目的1) 通过微机原理与接口课程设计,使学生能够进一步了解微型计算机工作原理,微型计算机的硬件结构及微型计算机软件编程。2) 要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。二、 系统分析与设计1. 系统所用芯片分析1) 首先本个系统需要一个中央处理器来负责对整个系统进行控制管理,因为微机原理与接口技术这门课上介绍了8086芯片,所以可以采用8086作为本系统的中央处理

3、器。2) 由于本次的课程设计的题目是交通灯,而根据十字路口处的交通灯南北和东西方向各有红、绿、黄三种颜色的灯,因此可用8255来控制6个LED灯的实现模拟的南北和东西方向上的交通灯。3) 而交通灯的状态转换时间要由中断方式来控制,所以很容易想到了可以用8259作为中断芯片,与8086芯片相连。4) 交通灯的状态转换时间可灵活设置,于是想到了可以采用一块8253或8254芯片和一个脉冲源相连,8253对脉冲源送来的脉冲进行分频,然后将输出送到8259作为中断源,而8253采用不用的计数初值其输出脉冲的频率就不一样,因此实现了交通类状态转换时间的灵活设置。5) 最后关于交通灯状态转换的倒计时功能,

4、可由一个七段数码管来显示倒计时,而本次课程设计的实验箱没有提供单个数码管,而是提供了一个八位一体七段数码管,所以还需一块8279芯片来对数码管进行控制。2. 所选用芯片的简要介绍8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由选择,使用灵活,通用性强。8255可作为与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个,即数据线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3

5、个部分:与CPU连接部分、与外设连接部分、控制部分。intel8253是NMOS工艺制成的可编程计数器/,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz) 8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出OL。

6、执行部件实际上是一个16位的减法计数器,它的起始值就是初值的值,而初始值寄存器的值是通过程序设置的。输出的值是通过程序设置的。输出OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。顺便提一下,CR、CE和OL都是16位,但是也可以作8位寄存器来用。Intel 8086拥有四个16位的,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的。大部分的指令只能够存取一个内存位址,所以其中一个必须是一个寄存器。运算结果会储存在中的一个

7、寄存器。Intel 8086有四个 内存区段(segment),可以从索引寄存器来设定。区可以让 CPU 利用特殊的方式存取1 MB内存。8086 把左移 4 位然后把它加上。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在中使用(如C) 变得困难。它导致的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让到大于 1 MB 的困难。而 8086 的改变让较有效率。8086处理器的介于4.77MHz(在原先的IBM PC频率)和10 MHz之间。808

8、6 没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。3. 系统框图三、 程序设计1. 十字路口交通灯状态转换表:南北方向东西方向十六进制代码红绿黄红绿黄0010001022H0010000121H0001010014H000011000CH2. 主程序流程图:3. 中断子程序流程图:4. 共阴数码管码表:数字01234编码0x3F0x060x5B0x4F0x66数字56789编码0x6D0x7D0x070x7F0x9058259初始化说明MOV AL,13H;写ICW1,需要ICW4、单片工作、边沿触发方式MOV DX,INTPORT1OUT DX,ALMOV

9、 AL,08H;写ICW2,设置中断向量号MOV DX,INTPORT2OUT DX,ALMOV AL,09H;写ICW4,普通全嵌套方式、采用缓冲方式OUT DX,ALMOV AL,0F7H;写OCW1,只开IR3中断请求,其余屏蔽OUT DX,AL68253初始化说明MOV DX,TCONTROMOV AL,B;采用二进制计数方式,工作方式二,十六们计数,计数器二OUT DX,ALMOV DX,TCON2MOV AL,0AH;计数初值为10,即1S中断一次OUT DX,ALMOV AL,00HOUT DX,AL78255初始化说明MOV AL,80H;PA、PB、PC口都设定为输出工作方式

10、MOV DX,IOCONPTOUT DX,AL四、 运行情况 经多次调试后,系统运行良好,实现了要求和设想中的全部功能,如上图为实际运行时的图片。五、 具体代码及注释CODE SEGMENTASSUME CS:CODEINTPORT1EQU 0020HINTPORT2EQU 0021HINTQ3 EQU INTREEUP3;8259CONTPORT EQU 00DFHDATAPORT EQU 00DEH;8279TCONTRO EQU 004BH;8253TCON2 EQU 004AHIOCONPT EQU 0073H所用芯片端口地址初始化IOCPTEQU 0072HIOBPTEQU 0071

11、H;8255DATA0 EQU 0580HDATA1 EQU 0500HDATA2 EQU 0508HDATA3 EQU 0518HDATA4 EQU 0520HORG 1000HSTART:JMP Tint1Tint1: CLIMOV AX,0HMOV DS,AXMOV DX,CONTPORTMOV AL,00HOUT DX,AL 8279初始化及工作方式的设定MOV AL,2AHOUT DX,AL MOV AL,0d0hOUT DX,AL MOV AL,90hOUT DX,AL 8255初始化及工作方式的设定 MOV AL,80H MOV DX,IOCONPTOUT DX,ALMOV DX

12、,TCONTROMOV AL,BOUT DX,AL8253初始化及工作方式的设定MOV DX,TCON2MOV AL,0AHOUT DX,ALMOVAL,00HOUT DX,ALCALLFORMATCLIMOV DI,DATA0MOV CX,08HXOR AX,AXREP STOSWMOV SI,DATA3CALL LEDDISP;数码管显示初始图案“-”MOV AX,0HMOV DS,AXCALL WRINTVER;调用子程序,设置中断地址向量表MOV AL,13HMOV DX,INTPORT1OUT DX,ALMOV AL,08H8259初始化及工作方式的设定MOV DX,INTPORT2

13、OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0F7HOUT DX,ALMOV BYTE PTR DS:0601H,03HMOV BYTE PTR DS:0602H,00HSTI;开中断WATING: JMP WATING;等待中断,无限循环WRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH设置中断地址向量表子程序 LEA AX,INTQ3 STOSW MOV AX,CS STOSW RETINTREEUP3:;中断子程序CLIMOV AL,DS:0601HCALL CONVERSMOV SI,DATA0CALL LEDDISPCMP B

14、YTE 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,22H判断DS:0602H里面的值,并跟据结果来进行对应的转换ADD BYTE PTR DS:0602H,01HJMP PUTSI1:MOV AL,21HADD BYTE PTR DS:0602H,01HJMP PUTSI2:MOV AL

15、,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 EXCONVERS:MOV BH,0HAND AL,0FHMOV BL,ALMOVAL,CS:BX+DATA2MOV BX,DATA0MOV DS:BX,ALRETINTRE1:

16、MOV BYTE PTR DS:0601H,03H EX:MOV AL,20H中断结束控制方式OCW2,普通中断结束方式MOV DX,INTPORT1OUT DX,ALSTIIRETLEDDISP:MOV AL,90HMOVDX,CONTPORTOUT DX,ALMOV BYTE PTR DS:0600H,00LED1:CMP BYTE PTR DS:0600H,07H显示子程序,从左到右依次送数JA LED2MOV BL,DS:0600HMOV BH,0HMOV AL,CS:BX+SIMOV DX,DATAPORTOUTDX,ALADD BYTE PTR DS:0600H,01HJNZ LE

17、D1LED2:RET格式化内存,将数码管将要显示的字符的编码写入内存FORMAT: MOV BX,0;MOV WORD PTR DS:BX+0500H,5050HADD BX,2MOV WORD PTR DS:BX+0500H,0079HADD BX,2MOV WORD PTR DS:BX+0500H,0000HADD BX,2MOV WORD PTR DS:BX+0500H,0000HADD BX,2MOV WORD PTR DS:BX+0500H,063FHADD BX,2MOV WORD PTR DS:BX+0500H,4F5BHADD BX,2MOV WORD PTR DS:BX+05

18、00H,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:B

19、X+0500H,4040HADD BX,2MOV WORD PTR DS:BX+0500H,4040HADD BX,2RETCODE ENDSEND START六、 心得体会本学期的微机原理和接口技术及其课程设计都已经结束。在这个过程中,我们有所付出,也有所回报,让我感受颇多。对于微机原理与接口技术这门课程而言,初学时,感觉摸不着头绪。面对着众多的术语、概念及原理性的问题不知道该如何下手。在了解课程的特点后,我发现,应该以微机的整机概念为突破口,在如何建立整体概念上下功夫。“麻雀虽小,五脏俱全”,可以通过学习一个模型机的组成和指令执行的过程,了解和熟悉计算机的结构、特点和工作过程。微机原理与接

20、口技术课程有许多新名词、新专业术语。透彻理解这些名词、术语的意思,为今后深入学习打下基础。一个新的名词从首次接触到理解和应用,需要一个反复的过程。而在众多概念中,真正关键的并不是很多。比如“中断”概念,既是重点又是难点,如果不懂中断技术,就不能算是搞懂了微机原理。在学习中凡是遇到这种情况,绝对不轻易放过,要力求真正弄懂,搞懂一个重点,将使一大串概念迎刃而解。学习过程中,我发现许多概念很相近,为了更好地掌握,将一些容易混淆的概念集中在一起进行分析,比较它们之间的异同点。比如:微机原理中,引入了计算机由五大部分组成这一概念;从中央处理器引出微处理器的定义;在引出微型计算机定义时,强调输入/输出接口

21、的重要性;在引出微型计算机系统的定义时,强调计算机软件与计算机硬件的相辅相成的关系。微处理器是微型计算机的重要组成部分,它与微型计算机、微型计算机系统是完全不同的概念。微处理器、微型计算机和微型计算机系统在微机中,最基础的语言是汇编语言。汇编语言是一个最基础最古老的计算机语言。语言总是越基础越重要,在重大的编程项目中应用最广泛。就我的个人理解,汇编是对寄存的地址以及数据单元进行最直接的修改。而在某些时候,这种方法是最有效,最可靠的。比如,在当今的战争中,首先就是运用这方面的知识来修改地方的系统程序。让地方的卫星偏离轨道,从而不能发现目标。其威力可见一斑。然而,事物总有两面性,有优点自然缺点也不

22、少。其中,最重要的一点就是,汇编语言很复杂,对某个数据进行修改时,本来很简单的一个操作会用比较烦琐的语言来解决,而这些语言本身在执行和操作的过程中,占有大量的时间和成本。在一些讲求效率的场合,并不可取。汇编语言对学习其他计算机起到一个比较、对照、参考的促进作用。学习事物总是从最简单基础的开始。那么学习高级语言也当然应当从汇编开始。学习汇编语言实际上是培养了学习计算机语言的能力和素养。个人认为,学习汇编语言对学习其他语言很有促进作用。汇编语言在本学期微机学习中有核心地位。本学期微机原理课程内容繁多,还学习了可编程的计数/定时的8253,可编程的外围接口芯片8255A等。学的都是芯片逻辑器件,而在

23、名字前都标有“可编程”,其核心作用不可低估。我认为,在学习中要考虑到“学以致用”,因此,在接下来我们又安排了微机原理与接口技术的课程设计。经过本次微机课题的设计与研究,我们深入的学习了除课本以外的很多微机附件的内容,掌握了很多实验室操作技能。我们在实际设计中遇到很多问题,但结合所学知识以及参考资料的帮助,不断地尝试,设计了一种能够解决实际问题的系统。同时也加深了我们对于现实生活中,实际的嵌入式操作系统的原理的理解。在实际设计过程中,我们遇到了诸多设计的问题。例仿真系统中某些芯片没有,这一问题主要是因为我们所设计的功能诸多,刚开始对于这一设计在硬件方面设计不是非常的合理,后来通过使用所用仿真软件

24、的绘画功能,新增加了一个芯片便解决了所有的按键和现实问题。在程序设计中,我们更加深入了解了8086的使用与本质。为了能设计成功,我们查阅了各种关于其硬件连接和软件设计的资料,同时也发现了理论资料与实践上的区别,通过多次尝试,成功完成了硬件和软件的设计。在这次课题设计过程中,我们合理的分工,适宜的规划进度的进展,不仅仅按时完成了预先设计的内容,而且学到了很多书本上没有的知识。在这一过程中,我们充分发挥我们的主观能动性,想象创造性,攻克了很多之前都没有想过的难关,真的受益匪浅。这次设计不仅仅耗时耗力,而且还要整天对着电脑进行仿真且不停的调试、修改,这次课程设计对我们理论和实验都有很大的提升,我想这些对于我们今后的学习生活都有很重要的意义,这将是我们在程序设计以及大学学习过程中的宝贵经验和财富。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁