1南京工程学院课程设计说明书题目交通信号灯模拟控制系统的设计课程名称微机原理及应用A院(系、部、中心)电力工程学院专业电力工程及其自动化班级电力中外101学生姓名戈笑学号206101102设计地点8-216指导教师徐懂礼设计起止时间:2013年3月10日至15日成绩2目录一、课程设计任务书(一)课程设计应达到的目的--------------------------------------3(二)课程设计题目及要求----------------------------------------3(三)课程设计任务及工作量的要求--------------------------------4(四)主要参考文献----------------------------------------------4(五)课程设计进度安排------------------------------------------5(六)成绩考核--------------------------------------------------5二、课程设计说明书(一)课程设计目的------------------------------------------6(二)课程设计实验设备--------------------------------------6(三)设计思路与功能描述------------------------------------6(四)电路原理图及其说明------------------------------------7(五)结构框图----------------------------------------------9(六)系统调试中的问题和解决办法----------------------------9(七)运行情况和结论----------------------------------------9(八)源程序清单--------------------------------------------9(九)心得与体会-------------------------------------------16三、附录:(一)交通灯模拟图-----------------------------------------16(二)参考文献---------------------------------------------173课程设计任务书1.课程设计应达到的目的通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。2.课程设计题目及要求题目:交通信号灯模拟控制系统的设计利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。所有输入该装置信号采用STARES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。1、功能要求:1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行10秒钟,B道再放行10秒钟,依次轮流。绿灯转换红灯前黄灯闪烁4s。2)夜间工作时A道(东西方向)和B道(南北方向)只有黄灯闪烁。用一开关控制白天黑夜。2、难度要求:1)基本要求:采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,用循环程序软件定时实现功能要求;(60分)2)中级要求:采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分)3)高级要求:在中级要求的基础上,增加用8255PB口动LED数码显示器显示绿灯倒计时秒数,从9倒计数到0,倒计数到4时黄灯亮。(100分)43.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕设计要求1、预习要求:1)预习《STARES598PCI实验仪微机原理实验指导书》附录三:2)预习《STARES598PCI实验仪微机原理实验指导书》附录二之2.7B2区;2.9B4区;2.15C5区;2.36G5区;2.37G6区。3)预习《STARES598PCI实验仪微机原理实验指导书》之“实验九8255控制交通灯实验”和“实验十8253方波实验”。4)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,编写出实验程序。2、设计报告要求:1)画出接口部分电路原理图,并阐述系统工作原理。2)绘制程序流程图和源程序清单。3)调试过程和结果。4)要求用WORD撰写课程设计报告,上交打印版和电子稿。3、课程设计说明书装订顺序及主要内容如下:1)封面、目录2)任务书3)正文:设计思路与功能描述;电路原理图及其说明。应标示并说明每一个输入/输出信号的含义;结构框图;系统调试中的问题和解决办法;运行情况和结论;源程序清单。4)参考资料4.主要参考文献[1]李干林.《STARES598PCI实验仪微机原理实验指导书》[M].南京工程学院,2008.[2]李继灿.新编16/32微型计算机原理及应用[M].北京:清华大学出版社,2004[3]郑学坚,周斌.微型计算机原理及应用[M].北京:清华大学出版社,2001.[4]朱定华等.微型计算机原理及应用[M].北京:电子工业出版社,2005.55.课程设计进度安排起止日期工作内容2013年3月10日(第1周)之前第1周,星期一第1周,星期二、三第1周,星期四第1周,星期五第1周,星期六预习消化理解设计任务,设计程序流程图,编写源程序。预习星研微机实验系统的仿真调试操作界面学习STAR86/88实验系统的使用和操作,进行实验8255测试和8253测试基本实验完成要求的内容验收撰写课程设计报告撰写课程设计报告6.成绩考核办法总评成绩由三部分组成,分别是:成果演示占40%,测试成绩占30%,设计报告占30%。1、成果演示(根据程序运行演示确定基础分);2、口试或笔试测验(与本设计有关的问题,目的是考查设计成果是否经过自己思考独立完成);3、课程设计报告(格式、内容、质量)。教研室审查意见:教研室主任签字:年月日院(系、部、中心)意见:主管领导签字:年月日6课程设计说明书一、课程设计的目的1掌握可编程接口芯片8255、8253的应用和初始化编程方法。2进一步掌握8086/88汇编语言程序设计方法。3学习并掌握多重循环嵌套程序的设计,掌握指令执行时间的计算和软件延时程序的设计。二、实验的设备1装有星研集成环境软件的计算机一台2Star实验箱一台三、设计思路与功能描述1、设计要求:设计一个十字路口的交通信号灯(由实验仪的LED发光二极管模拟)。采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号;用8253硬件定时,软件查询方式实现如下功能:白天模式:①东西方向和南北方向各放行10秒。绿灯转红灯前黄灯闪烁4秒。②LED数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。夜间模式:两个方向黄灯闪烁,绿灯和红灯不亮。2、设计思路:(1)8255:分析:本设计中,交通信号灯的灯光变化和数码显示通过8255实现控制。PA口用于输出信号控制灯光的变化(D6D5=00,D4=0),PB口用于输出信号控制数码管的显示(D2=0,D1=0),PC0用于输入K8的控制开关信号,PC1用于输入用于硬件延时的方波信号(D0=1)。PC7用于输出控制数码管工作/不工作的信号(D3=0)。故写入方式控制字为10000001B=81H。8255输入/输出信号如下表所示:8255-PB输出方式PCH输出方式8255-PA输出方式PCL输入方式引脚输出信号引脚输出信号引脚输出信号引脚输入信号PB7PB7—DP段PB6—G段PB5—F段PB4—E段PB3—D段PB2—C段PB1—B段PB0—A段PC7数码管的位码选择PC7=0,则该位选中PA7南北绿灯PB6PA6南北黄灯PB5PA5南北红灯PB4PA4东西红灯PB3PA3东西绿灯PC3PB2PA2东西黄灯PC2PB1PA1PC18253-OUT0PB0PA0PC0开关K8输入a.灯光显示:送低电平则灯亮,送高电平则灯灭。b.LED数码显示:数码管采用共阴极接法,位选信号为0则数码管工作。a~dp段发亮条件:对应位输入1,见下表所示:7显示数字0123456789PB输出3FH06H5BH4FH66H6DH7DH07H7FH6FH白天模式:数码管工作,PC7送0,即应输入0×××××××B夜晚模式:数码管工作,PC7送1,即应输入1×××××××B(2)8253:①交通信号灯亮、灭的时间及数码管的倒计时间隔都通过8253控制。8253工作方式3,通道0,采用10进制(BCD=1),分频系数设置为3906,故初始化时命令字为00110111B=37H。CLK0接3906Hz时钟信号,GATE0接高电平,则OUT0输出为频率为2Hz方波。OUT0接8255-PC1。主程序通过查询8255-PC1的状态,获知准确的定时信息。(3)白天和夜间模式的切换:通过8255读取PC0的状态后,用软件判断是执行白天还是夜间模式。使用IN指令,将PC的状态送入寄存器AL,将PC70状态送入了AL的D0中。由于只需判断PC0的值,故将AL同00000001B相与。使用JZ判断,若结果为1,即PC0为0,则转白天模式,否则顺序执行夜间模式。通过使用循环语句,使得每执行完一次白天或夜间模式,都重新对PC0的状态进行一次判断。一旦拨动切换开关K8,就能及时切换交通灯运行模式。(4)硬件延时:读取PC1的状态,判断是否为0,直到发生跳变为1,此过程执行时间为半个周期即0.25s。继续读取PC1的状态,判断是否为1,直到发生跳变为0,此过程执行时间为半个周期即0.25s。故判断PC1发生两次跳变的程序执行一次所用时间就为0.5s。将此作为延迟子程序,实现延时的效果。3、功能描述:(1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行10秒钟,B道再放行10秒钟,依次轮流。绿灯转换红灯前黄灯闪烁4s。(2)夜间工作时A道(东西方向)和B道(南北方向)只有黄灯闪烁。用一开关控制白天黑夜。四、电路原理图及其说明8255:PA口,输出,控制LED灯PB口,输出,控制数码管显示数字PC0,输入,反映开关状态PC1,输入,送入8253产生的2Hz方波PC7,输出,控制数码管工作与否8253:OUT0,输出,输出方波给8255CLK0,输入,送入固有频率3906Hz8电路图如下:电路接线实物图:9五、结构框图(1)主程序:YN(2)硬件延时0.5秒钟子程序:8255、8253初始化黄灯闪烁PC0=0?南北绿灯,东西红灯显示“9”延时1秒子程序显示“8”延时1秒子程序显示“4”延时1秒子程序南北黄灯,东西黄灯显示“3”延时1秒子程序显示“0”延时1秒子程序南北红灯,东西绿灯省略部分10YNYN六、系统调试中的问题和解决办法(1)遇到的问题:刚开始调试的时候程序能编译成功,但运行起来灯闪烁错乱,数码管显示也不对。解决的办法:检查发现,接线端口插错位,导致与程序不一致。改正接口后,运行结果就基本正确了。(2)遇到的问题:程序有错误,显示超出范围。解决的方法:因程序太长,无法跳回,我们在程序中间设了几个站点,如aa,bb,cc,用JMP无条件转,解决了该问题。七、运行情况和结论①本次设计基本完成了任务书中所要求的功能,在此基础上还达到了拨动开关能立即转换状态的功能。②有待改进之处:延时程序不精确,最大存在0.5s的误差。八、源程序清单codesegmentassumecs:codego:moval,10000001b;825