




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告课程设计名称:微机原理课程设计课程设计题目:模拟汽车尾灯动作院(系): 专 业: 班 级:学 号:姓 名:指导教师:完成日期: 沈阳航空航天大学课程设计报告 目 录第1章 总体设计方案11.1 课程设计原理内容及要求11.2 课程设计原理11.3 设计思路21.4 实验环境2第2章 详细设计方案42.1 硬件电路设计42.2 主程序设计52.3 功能模块的设计与实现72.3.1 芯片初始化模块的设计与实现72.3.2 正常行驶模块的设计与实现72.3.2 左转模块的设计与实现82.3.3 右转模块的设计与实现92.3.4 临时刹车模块的设计与实现10第3章 调试及结果分析123.1 调试中遇到的问题123.2 结果测试及分析12参考文献13附 录14沈阳航空航天大学课程设计报告 第1章 总体设计方案1.1 课程设计原理内容及要求根据汽车尾灯的工作原理,模拟汽车尾灯动作。具体内容如下:(1)汽车尾部左右两侧各有三个指示灯,可用单色灯指示;(2)汽车正常行驶时指示灯全灭;右转弯时,右侧3个指示灯按右循环依次点亮(持续10秒);左转弯时,左侧3个指示灯按左循环依次点亮(持续10秒);临时刹车时,所有指示灯闪烁(亮0.5秒,灭0.5秒,持续10秒);(3)设置各功能键(如:启动、停止及左右转按键等),自行设计方案使演示清晰直观,要有计时显示部分。课程设计要求:(1)独立完成课程设计任务;(2)通过老师当场验收;(3)交出完整的课程设计任务书。1.2 课程设计原理本次课程设计需要使用左右共6个指示灯,通过指示灯闪烁来模拟汽车正常行驶、右转弯、左转弯、临时刹车、停止时尾灯动作。控制指示灯要用到可编程并行接口芯片8255A,本次设计中只需使用PA端口控制各灯的具体动作。PA0-PA2控制左边三个指示灯,PA5-PA7控制右边三个指示灯。在汽车左转、右转、刹车过程中要持续10s,则需使用可编程定时器/计数器芯片8253控制计时,通过产生1s的方波和0.5s的方波来实现1s和0.5s的计时。计时显示部分要用到可编程键盘显示接口芯片8279,通过8279芯片控制数码管的D0位显示倒计时10s。8253芯片每计数1s需要通过8279进行显示,则要用到可编程中断控制器8259芯片调用中断程序来实现。利用以上芯片实现模拟汽车尾灯动作,并通过键盘上的“0”,“1”,“2”,“3”,“4”五个功能键控制和实现各个功能。1.3 设计思路模拟汽车尾灯动作的设计主要包含启动、左转、右转、刹车、停止等五项功能,并且仅当汽车启动后,其他功能才能实现。启动功能采用0键控制汽车,数码管显示正常行驶标识反向的“A”;左转功能采用1键控制汽车,左侧3个指示灯按左循环依次点亮,数码管显示左转标识反向的“E”,同时开始倒计时10s,计时结束后恢复正常行驶;右转功能采用2键控制汽车,右侧3个指示灯按右循环依次点亮,数码管显示右转标识“E”,同时开始倒计时10s,计时结束后恢复正常行驶;临时刹车功能采用3键控制汽车,所有指示灯按照亮0.5s灭0.5s次序循环闪烁,数码管显示临时刹车标识“A”,同时开始倒计时10s,计时结束后恢复正常行驶;停止功能采用4键控制汽车,清空显示RAM,指示灯全部熄灭。采用8255PA口输出控制指示灯闪烁控制部分。左转时给PA口送值0FBH,左边第三个灯亮,各位取反后,右移一位取反使左边第二个灯亮(移位方向与灯的循环方向相反),如此循环使左边三个灯循环闪亮。右转同理,循环方向相反。刹车时PA口依次送值0FFH、0H,以使所有指示灯闪烁。在计时显示部分,8253计数器0的输入为9600Baud,计数器0的输出作为计数器1和计数器2的输入。计数部分分为两部分,分别产生两个不同脉冲,准确的控制0.5s与1s计时,由1s计时作为总控计时时间,0.5s单独控制灯闪烁,两者互不干扰但又不矛盾,灯的闪烁准确定在10s内,但对左转、右转时灯的循环与闪烁没有限定在0.5s。在数码管显示计时时,每两个0.5s显示一个计数(即每个数字在一秒中显示两次)。中断部分设置为单片工作,写ICW4,中段类型号可自由设定,自动EOI,OCW1根据ICW2具体设置。中断程序主要执行计数部分,每次中断计数一秒。1.4 实验环境1.软件环境:LCA88ET应用软件。LCA88ET软件是集编辑、编译/连接、加载、调试等为一体的集成开发环境。用户可以在同一界面环境中完成所有任务。软件界面如图1.1所示。图1.1 LCA88ET应用软件界面图LCA88ET提供一个多窗口的源文件编辑器。该编辑器不受文件大小的限制,允许无限制的撤销/重复功能。输出窗口显示用户编译连接过程中的输出信息,用户双击某条编译出错信息提示即可直接定位到源文件的对应行。用户通过对话窗口直接用监控命令和实验机/仿真机对话。2.硬件环境:AEDK实验箱,PC机。AEDK实验箱是对程序执行过程和结果的仿真和模拟。通过LCA88ET应用软件将AEDK实验箱与PC机进行串口连接,将程序编译并下载到实验箱中,实现程序的运行及现象模拟。-24-沈阳航空航天大学课程设计报告 第2章 详细设计方案2.1 硬件电路设计硬件电路包括可编程并行接口芯片8255、可编程中断控制器芯片8259、可编程定时器/计数器芯片8253和可编程键盘显示接口芯片8279四个部分。硬件电路连线图如图2.1所示。地址端口200207H210217H220227H230237H 8255PA0 CSPA1PA2PA5PA6PA7 LED1 LED2 LED3 LED6 LED7 LED88279 CS 8253CLK0OUT0CLK1CLK2OUT2OUT1GATE2GATE1 GATE0 CS8259 CS INT1 INT0 9600Baud Vcc 图2.1 硬件电路连线图可编程并行接口芯片8255,控制左右共6个指示灯闪烁,8255具有三个相互应独立的8位并行输入输出端口,即端口A,端口B和端口C,其中端口C分为两个4位来配合端口A和端口B工作,它为INTEL系列CPU与外设之间提供TTL电平兼容的接口。8255A可以工作在方式0,方式1,方式2三种方式,其中端口A可以工作在这3种不同的方式下,本次设计通过PA口输出控制各指示灯的具体动作。PA0-PA2控制左边三个指示灯,左转弯时,左侧3个指示灯按左循环依次点亮;PA5-PA7控制右边三个指示灯,右转弯时,右侧3个指示灯按右循环依次点亮。可编程键盘显示接口芯片8279,分为数据端口和控制端口,数据端口传送数据,控制端口控制输出命令,来显示10s的倒计时,输入0键、1键、2键、3键和4键,以分别用于对启动、左转、右转、刹车和停止等五项功能的控制和实现。可编程定时器/计数器8253,用来产生两个不同的输出频率,一个为1Hz,控制数码管计时;一个为2Hz,控制刹车时指示灯的闪烁。8253有6种工作方式,本次设计用到方式2,方式2又可称为频率发生器。当CPU写入控制字后,输出端OUT将变高,在写入计数初值以后的下一个CLK脉冲的下降沿开始计数。计数过程中OUT端始终保持高电平,当计数值减至1时OUT端变为低电平,而计数值减至0时OUT端又变为高电平,同时会自动将计数值送到执行部件继续进行减法计数,形成连续工作,重复计数,从而输出固定频率的脉冲。可编程中断控制器芯片8259,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,产生中断响应,再将此请求送到CPU的INTR端;当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。根据8253芯片产生方波的频率,根据需要,每1s或0.5s分别产生一次中断。2.2 主程序设计根据设计要求,设置各功能键模拟汽车尾灯动作,需实现汽车启动、左转、右转、刹车、停止各个功能,在此设置5个功能键来进行控制,分别为“0”、“1”、“2”、“3”、“4”键。主程序流程图如图2.2所示。 (1)汽车启动由0键控制,当按下0键时,数码管显示正常行驶标识反向的“A”,并且,当且仅当按下0键时,控制左转、右转、刹车、停止的各键才会有效,其各项功能才能实现; (2)汽车左转由1键控制,当按下1键时,左边三个指示灯左循环依次点亮,数码管显示左转标识反向的“E”,同时显示10s倒计时,当达到0s时,停止计时,NYYNNYY调用正常行驶子程序键值为“0”有按键YY有按键NNN键值为“2”键值为“1”调用左转子程序N键值为“3”调用右转子程序调用刹车子程序Y键值为“4”停车程序结束开始图2.2 主程序流程图数码管显示正常行驶标识反向的“A”; (3)汽车左转由2键控制,当按下2键时,右边三个指示灯右循环依次点亮,数码管显示右转标识的“E”,同时显示10s倒计时,当达到0s时,停止计时,数码管显示正常行驶标识反向的“A”; (4)汽车刹车由3键控制,当按下3键时,6个灯同时开始闪烁,亮0.5s,灭0.5s,数码管显示临时刹车标识“A”,同时显示10s倒计时,当达到0s时,停止计时,数码管显示正常行驶标识反向的“A”; (5)汽车停止由4键控制,当按下4键时,所有灯灭,清空显示RAM,清空键盘RAM,此时要想继续控制汽车的各项功能,则必须再次按下0键,才可以进行其他操作。 2.3 功能模块的设计与实现在总体设计中设置了5个功能键分别实现汽车启动、左转、右转、刹车、停止各个功能。模块设计中主要分为芯片初始化模块、正常行驶模块、左转模块、右转模块、临时刹车模块等5个模块。各个模块都实现一定的功能,相辅相成。2.3.1 芯片初始化模块的设计与实现对8253,8255,8259,8279各个芯片进行初始化,并将中断服务程序装入中断向量表。利用8279的键盘输入功能输入号码,利用显示功能,将经过计算处理后的数据显示在七段数码管上。利用8255的PA0作为输出,低电平则灯亮。利用8253的方式2进行分频产生脉冲,执行计时功能,并且触发8259芯片执行中断服务程序,将8259的IR0口作为中断请求信号,在边沿触发方式中,执行中断服务程序,在中断服务程序中对数据处理并显示。芯片初始化流程图如图2.3所示。2.3.2 正常行驶模块的设计与实现在按下0键后,程序进入正常行驶模块,8279控制数码管D4缓冲RAM可用,然后数码管显示出正常行驶标识反向的“A”。正常行驶模块流程图如图2.4所示。开始初始化8279关中断初始化8253初始化8259,8255中断服务程序装入中断向量表返回图2.3 芯片初始化流程图开始8279控制数码管D4可用数码管显示正常行驶标志返回图2.4 正常行驶模块流程图2.3.2 左转模块的设计与实现在按下1键后,程序进入左转模块,将SI设为0AH,设置计数初值10s。8279芯片控制显示RAM“D4”显示反向的“E”,表示正在进行左转。开启中断后,执行中断子程序,每执行一次,数码管计数1s,直到SI等于0时停止计数,关中断。同时,再开中断的这段时间,8255控制PA口输出实现左侧3个指示灯按左循环依次点亮。左转模块流程图如图2.5所示。NNYYCX=3,设置计数初值为10计数值为0PA输出左侧第三个灯亮灯循环左移一位计数值减1CX=CX-1CX=0返回开始图2.5 左转模块流程图2.3.3 右转模块的设计与实现在按下2键后,程序进入右转模块,将SI设为0AH,设置计数初值10s。8279芯片控制显示RAM“D4”显示“E”,表示正在进行左转。开启中断后,执行中断子程序,每执行一次,数码管计时1s,直到SI等于0时停止计数,关中断。同时,再开中断的这段时间,8255控制PA口输出实现右侧3个指示灯按右循环依次点亮。右转模块流程图如图2.6所示。NNYYCX=3,设置计数初值为10计数值为0PA输出右侧第三个灯亮灯循环右移一位计数值减1CX=CX-1CX=0返回开始图2.6 右转模块流程图2.3.4 临时刹车模块的设计与实现在按下3键后,程序进入临时刹车模块,将SI设为0AH,设置计数初值10s。8279芯片控制显示RAM“D4”显示“A”,表示正在进行刹车。在开启中断前,必须重新设置8259控制字OCW1为0FCH,同时开启0.5s计时及1s计时中断允许。开启中断后,执行两个中断子程序,每执行1s计时中断一次,数码管计数1s,所有指示灯同时在这1s中亮0.5s,灭0.5s,直到SI等于0时停止计时,关中断。同时,再开中断的这段时间,8255控制PA口输出指示灯闪亮(亮0.5s,灭0.5s)。临时刹车模块流程图如图2.7所示。NNYY设置计数初值为10计数值为0PA输出灯全亮PA输出灯全灭计数值减1CX=CX-1CX=0返回开始图2.7 临时刹车模块流程图沈阳航空航天大学课程设计报告第3章 调试及结果分析3.1 调试中遇到的问题在初次运行时,指示灯闪烁正常,但数码管计时不显示,针对问题,检查8279初始化及中断程序中8279控制字设置,发现8279控制字控制数码管显示命令字设置错误,经改正可以显示。再次调试,数码管显示计时不正确,有时会产生乱码。通过仔细检查及单步调试跟踪,发现在刹车子程序执行完毕后为复原8259命令字ICW2,导致中断控制错误。改正之后显示正确。左转、右转、刹车结束后,原先的标识未还原为正常行驶中的标识,通过在执行完10秒倒计时及指示灯的闪烁后的代码后加入调用汽车正常行驶标识的子程序,使得运行后的结果更直观。3.2 结果测试及分析程序在LCT88EA应用软件编译完成且下载到实验箱之后,按下0键,数码管显示正常行驶标识反向的“A”;按下1键,左侧3个指示灯按左循环依次点亮,同时数码管开始倒计时10s,并显示左转标识反向的“E”,计时结束后,数码管显示正常行驶标识反向的“A”;按下2键,右侧3个指示灯按右循环依次点亮,同时数码管开始倒计时10s,并显示右转标识“E”,计时结束后,数码管显示正常行驶标识反向的“A”;按下3键,所有指示灯按照亮0.5s灭0.5s次序循环闪烁,同时数码管开始倒计时10s,并显示临时刹车标识“A”,计时结束后,数码管显示正常行驶标识反向的“A”;按下4键,所有指示灯全部熄灭,此时,按下除0键外其他各功能键,均无效。对于上述的测试结果和运行过程,达到了课程设计任务书中的要求,可以实现汽车启动、左转、右转、临时刹车和停止等五项功能,通过优化后使得运行结果也更直观易懂。不过在设计中,由于个人能力有限,也难免存在不足,代码部分也不是最优,部分代码有待改进。参考文献1孙一林.微型机系统与接口技术 M 北京:机械工业出版社, 20102杨居义.计算机接口技术项目教程 M 北京: 清华大学出版社, 20113张雪兰.汇编语言程序设计 M 北京: 清华大学出版社, 20064龚尚福.微机原理与接口技术 M 西安: 西安电子科技大学出版社, 20035杨素行.微型计算机系统原理及应用 M 北京: 清华大学出版社, 19966沈美明,温冬婵.IBM-PC汇编语言程序设计M 北京: 清华大学出版社, 20017洪永强.微机原理与接口 M 厦门: 科学出版社, 20048王爽.汇编语言 M 北京: 清华大学出版社, 20089王忠民.微型计算机原理 M 西安: 西安电子科技大学出版社, 2003沈阳航空航天大学课程设计报告附 录CODE SEGMENT ASSUME CS:CODESTART: ;初始化8255 MOV DX,203H MOV AL,80H OUT DX,AL MOV DX,200H MOV AL,0FFH OUT DX,AL ;初始化8279 MOV DX,212H MOV AL,00H;8字符显示,左端输入 OUT DX,AL; MOV AL,38H;内部定时器编程命令字 OUT DX,AL MOV AL,0D3H;清除显示RAM,清除键盘RAM OUT DX,AL; ;8253初始化 MOV DX,233H; MOV AL,35H;计算器0,工作方式2(分频工作方式),十进制计数 OUT DX,AL MOV DX,230H MOV AX,9600H OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,233H MOV AL,57H;计算器1,工作方式3(方波发生器),十进制计数 OUT DX,AL MOV DX,231H MOV AL,48H; OUT DX,AL MOV DX,233H MOV AL,97H;计算器2,工作方式3(方波发生器),十进制计数 OUT DX,AL MOV DX,232H MOV AL,12H; OUT DX,AL ;初始化8259 MOV AL,13H;单片工作,写ICW4 MOV DX,220H; OUT DX,AL MOV AL,08H MOV DX,221H; OUT DX,AL MOV AL,03H; OUT DX,AL MOV AL,0FEH;IR0允许 OUT DX,AL XOR AX,AX ;装中断 MOV DS,AX MOV AX,OFFSET INT10 MOV DS:08H*4H,AX MOV AX,8100H MOV DS:08H*4H+2H,AX MOV AX,OFFSET INT5 MOV DS:09H*4H,AX MOV AX,8100H MOV DS:09H*4H+2H,AXCHECK: MOV DX,212H IN AL,DX TEST AL,80H;显示RAM是否可用 JNZ CHECK;CHECKSTART: IN AL,DX TEST AL,0FH;是否有按键 JZ CHECKSTART; MOV DX,210H;从数据口读取数据 IN AL,DX CMP AL,0H;0键开始 JNZ CHECKSTART; CALL GOSTREIGHTCTL: MOV DX,212H IN AL,DX TEST AL,0FH JZ CTL;是否有按键 MOV DX,210H IN AL,DX CMP AL,1H JNZ CTR;1键左转 CALL TURNLEFT CALL GOSTREIGHT JMP CTLCTR: CMP AL,2H JNZ CTD;2键右转 CALL TURNRIGHT CALL GOSTREIGHT JMP CTLCTD: CMP AL,3H JNZ CTF;3键减速 CALL TURNDOWN CALL GOSTREIGHT JMP CTL CTF: CMP AL,4H JNZ CTL;按4 END MOV DX,212H MOV AL,0D3H OUT DX,AL;清除显示RAM命令字,清楚键盘RAM MOV DX,200H MOV AL,0FFH OUT DX,AL JMP CHECK GOSTREIGHT PROC MOV DX,212H MOV AL,84H;D4缓冲RAM可用 OUT DX,AL MOV DX,210H MOV AL,7EH OUT DX,AL RETGOSTREIGHT ENDP TURNLEFT PROC MOV SI,0AH MOV DX,212H MOV AL,84H OUT DX,AL;写显示缓冲RAM命令字 MOV DX,210H MOV AL,4FH OUT DX,AL STI MOV DX,221H MOV AL,0FEH OUT DX,ALTL2: MOV CX,3H MOV AL,0FBH MOV DX,200H TL1: OUT DX,AL CALL DELAY ROR AL,1H;影响进位标识CF LOOP TL1 CMP SI,0H; JZ TL3 JMP TL2TL3: MOV DX,200H MOV AL,0FFH OUT DX,AL CLI RETTURNLEFT ENDPTURNRIGHT PROC MOV SI,0AH MOV DX,212H MOV AL,84H OUT DX,AL;写显示缓冲RAM命令字 MOV DX,210H MOV AL,79H OUT DX,AL STI MOV DX,221H MOV AL,0FEH OUT DX,ALTR2: MOV CX,3H MOV AL,0DFH MOV DX,200H TR1: OUT DX,AL CALL DELAY ROL AL,1H LOOP TR1 CMP SI,0H JZ TR3 JMP TR2TR3: MOV DX,200H MOV AL,0FFH OUT DX,AL CLI RETTURNRIGHT ENDPTURNDOWN PROC MOV SI,0AH MOV DX,212H MOV AL,84H OUT DX,AL;写显示缓冲RAM命令字 MOV DX,210H MOV AL,77H OUT DX,AL STI MOV DX,221H;8259中断控制器奇地址端口 MOV AL,0FCH OUT DX,AL MOV DX,200H MOV AL,0H TD: OUT DX,AL CMP SI,0H JZ TD1 JMP TDTD1: MOV DX,200H MOV AL,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢铁出口基础知识培训课件
- 2025年安全员安全操作规程考试题集
- 澳大利亚图文课件
- 知识产权培训实施情况课件
- 知识产权培训基地建设课件
- 2025年数字人设计面试题集
- 知识产权培训入高校课件
- 钢筋识图基础知识培训课件
- 知识产权培训会议纪要课件
- 漏电保护器安全知识培训课件
- 从2025年河南中考语文试卷中分析阅读理解如何提分
- 《智能建筑供配电与照明》课件(上)
- 公共打印区域管理办法
- 2025至2030中国电子束灭菌服务行业项目调研及市场前景预测评估报告
- 模锻工艺培训课件
- 土石方工程计量计价课件
- 血液透析导管感染
- 第27课 中国特色社会主义的开创与发展 课件 中外历史纲要(上)
- 静脉溶栓病例汇报
- 国家电投集团招聘考试试题及答案
- 2025届黑龙江省龙东地区数学八下期末学业质量监测试题含解析
评论
0/150
提交评论