第一篇:微机原理课程设计——交通灯控制系统
设计要求:
(1)利用8253定时,8259中断及8255输出实现交通灯模拟控制。
(2)实现能自动控制和手动控制。(3)实现能随时可以调整自动模式的绿灯和红灯时间
设计目的
电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。
交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于
计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。设计内容
交通灯控制系统
利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求能实现自动控制和手动应急控制。
具体要求如下:
1)在一个十字路口的一条主干道和一条支干道分别装上一套红、绿、黄三种信号灯。
2)在一般情况下,主干道上的绿灯常亮,而支干道总是红灯。
3)当检测到支干道上来车时,主干道的绿灯转为黄灯,持续4S后,又变为 红灯,同时支干道由红灯变为绿灯。
4)支干道绿灯亮后,或者检测到主干道上来了三辆车,或者虽未来三辆车,但绿灯已经持续了25秒,则支干道立即变为黄灯,同时主干道由红灯变为绿灯。设计要求
在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路
软件设计
1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。
2、画出程序流程图。
3、根据流程图,编写源程序。
4、在Proteus环境下,仿真调试程序 设计原理与硬件电路
要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(绿)、L2(黄)、L3(红)做为南北方向的指示灯,将L4(绿)、L5(黄)、L6(红)做为东西方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电
源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。在以上的叙述基础上,本实验添加了东西方向S2、南北方向S3紧急切换按钮各一个,当紧急按钮按下时,相应方向紧急切换为绿灯,以便特种车辆通行。另外,本实验以低电平触发中断申请,表示有特种车通过。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是
R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOV A,#0F0H(0)MOVX @R1,A(1)MOV SAVE,A(2)
程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时确定方向的绿灯亮10秒,然后返回中断前的状态。
程序及硬件系统调试情况
程序运行结果: 东西路右拐和南北路左拐绿灯点亮5秒,直通到均为红灯 5秒后,黄灯亮3秒钟。此时南北方向仍维持红灯点亮。东西方向直通,为绿灯,南北 方向红灯 黄灯再亮三秒之后,东西路左拐和南北路右拐绿灯点亮 南北方向的黄灯亮3秒钟后,南北方向直通,延时5秒 闭合A口开关,四个路口全红灯,表明紧急状态。
设计总结与体会
经过这两周的课程设计, 做关于交通灯系统设计,我认真查阅资料,学习关于这方面的知识,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲以及交通有哪些规则.在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够好,我只
能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解.而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。
第二篇:微机原理与接口技术课程设计-交通灯控制系统
版权所有
微机原理课程设计
报 告 书
课 题 名
班 级
学 号
姓 名
指导教师 日 期
目录 设计目的................................................................................................2 2 设计内容................................................................................................2 3 设计要求................................................................................................2 4 设计原理与硬件电路............................................................................3 5 程序流程图............................................................................................5 6 程序代码................................................................................................5 7 程序及硬件系统调试情况....................................................................9 8 设计总结与体会..................................................................................10 9 参考文献..............................................................................................10 设计目的
电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。
交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。
设计内容
交通灯控制系统
利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求能实现自动控制和手动应急控制。设计要求
在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路 软件设计
1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。
2、画出程序流程图。
3、根据流程图,编写源程序。
4、在Proteus环境下,仿真调试程序 设计原理与硬件电路 程序流程图 程序代码
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 程序及硬件系统调试情况 程序运行结果:
1. 东西路右拐和南北路左拐绿灯点亮5秒,直通到均为红灯 2. 5秒后,黄灯亮3秒钟。此时南北方向仍维持红灯点亮。3. 东西方向直通,为绿灯,南北 方向红灯
4. 黄灯再亮三秒之后,东西路左拐和南北路右拐绿灯点亮 5. 南北方向的黄灯亮3秒钟后,南北方向直通,延时5秒 6. 闭合A口开关,四个路口全红灯,表明紧急状态。设计总结与体会
经过这两周的课程设计, 做关于交通灯系统设计,我认真查阅资料,学习关于这方面的知识,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲以及交通有哪些规则.在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够好,我只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解.而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。参考文献
[1] 彭虎、周佩玲、傅忠谦.《微机原理里与接口技术》(第2版)[M] 北京:电子工业出版社 2008,149-187 [2] 周明德.《微型计算机系统原理及应用》[M] 北京:清华大学出版社,1998;
第三篇:微机原理课程设计——洗衣机控制系统
微机原理与接口技术课程设计
设计题目:设计者:专业 : 班级 : 学号 :
洗衣机控制系统设计
电气工程及其自动化 1
一
课程设计的意义
1.1 洗衣机的发展状况概述
1.洗衣机的发展史
洗衣服是每个家庭都无法逃避的家庭劳动。洗衣机的出现给人们的生活带来了相当大的方便,它的普及大大降低了大多数家庭的体力劳作。
1858年,美国人汉密尔顿·史密斯制成了第一台洗衣机。1874年,美国人比尔·布莱克斯发明了第一台人工搅动式洗衣机,使得“手洗时代”受到了挑战。1910年美国人研制出了第一台电动式洗衣机。1922年美国玛塔依格公司生产出了第一台搅拌式洗衣机。1932年美德克斯航空公司研制成功了第一台前装式滚筒式洗衣机,这台机衣机能够使洗涤、漂洗、脱水三个步骤在同一个滚中操作。与此同时,世界各地也相继出现了洗衣机。洗衣机工业快速迅猛地发展起来。
1937年第一台自动洗衣机问世。1955年日本研制出波轮式洗衣机。60年代日本出现了半自动洗衣机。70年代生产出了波轮式套桶全自动洗衣机。70年代后期以电脑控制的全自动洗衣机在日本问世。80年代“模糊控制”开始应用于洗衣机中,使得洗衣机能够通过模糊控制使洗衣机操作更加简单,实现智能化。近半个多世纪里,在工业发达国家,全自动洗衣机技术得到广范的应用,其年总产量及社会普及率均以达到相当高的水平。
2.我国洗衣机的发展现状
洗衣机在中国起步较晚,1978年才开始正式生产家用洗衣机。随着改革开放的不断深入,经济的持续增长,人民生活水平的普遍提高,人们对于洗衣机的认识也在不断发展,进入80年代后,中国洗衣机行业一直保持着旺盛的发展形势。目前,洗衣机在我国城市甚至广大农村已得到大范围的普及。中国洗衣机市场正处于快速更新换代阶段,市场潜力巨大,随着家用电器的自动化、智能化发展,人们对于洗衣机的期望也越来越高。1983年,中国洗衣机产量由1978年的400台增至365万台。此后全国各处都大规模的引进国外先进洗衣机技术。中国的洗衣机发展突飞猛进,先进技术的引进、吸收和创新,极大地促进了中国洗衣机的生产能力和产业质量。经过三十年的发展,我国的洗衣机年产量已位于世界第一,将近为世界总年产量的四分之一。
1.2课程设计的意义
课程设计进一步锻炼同学们在微机原理应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的问题。《微机原理与接口技术》课程是我们电气工程及其自动化专业本科生必修的一门技术基础课程。通过该课程的学习使学生对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。
二
洗衣机控制系统的设计
2.1 设计内容
系统设计并建立一个由微机控制的洗衣机控制系统,并完成: 1.给水和排水的自动控制。2.用户定时时间的设定。3.电机的正反转。
4.各种定时和故障报警电路。5.定时开、关机的控制。6.三分钟延时启动的保护。
7.设计相应的A/D、D/A、键盘、显示接口和传感器测量水位电路,可在线键盘参数设置、定时检测、显示、报警,其中控制输出部分采用模拟量或开关量进行控制。
8,写出相应工作原理,编写程序及程序流程图。
希望实现的功能:智能检测
待洗衣物的智能检测是智能洗衣机能够实现智能的关键技术之一。智能检测利用了模糊控制原理,根据各类传感器提供的洗涤物状态和洗衣机运行参数进行模糊推理。通过各类传感器对布量、布质、温度、浊度的检测来确定洗涤过程中的洗涤水位,洗涤时间,漂洗次数,排水时间,脱水时间等等。三
总体设计方案
3.1 洗衣机系统原理与设计思想
图 1洗衣机示意图
洗衣机的系统(1).涤脱水系统
它主要有盛水桶,洗涤桶和波轮组成。盛水桶又称为外桶,主要用来盛放洗涤液。盛水桶固定在钢制底板上,通过4根吊杆悬挂在洗衣机箱体上。电动机,离合器,排水阀等部件都装在桶底下面。洗涤桶又称为脱水桶或者离心桶,也称为内桶,它的主要功能是用来盛放衣物,在洗涤或漂洗时配合波轮完成洗涤或漂洗功能,在脱水时便成为离心式的脱水桶。波轮是全自动洗衣机中对衣物产生机械作用的主要部件。按波轮的形状来分,基本上有小波轮(直径在160mm左右)的涡卷式水流和大波轮(直径在300mm左右)新水流两类。
(2).进水系统
波轮式全自动洗衣机的进排水系统都采用了电磁阀控制。为了对桶内的水位进行检测和控制,洗衣机上都安装有水位控制器(水位开关)。波轮式全自动套桶洗衣机使用最多的水位开关是空气压力式开关,主要有气压传感器装置,控制装置及电触点开关3部分组成,用来监视水位的高低。此外电磁阀分进水和排水电磁阀,进水电磁阀是洗衣机上的自动进水开关,它受水位开关动断触点的控制。而排水电磁阀是全自动洗衣机上的自动排水装置,同时还起改变离合器工作状态。进水、排水电磁阀是采用电流流过线圈形成磁场的原理,洗衣机电磁阀在进,排水时使用,220V交流电压与电磁阀线圈接通,形成磁场,电磁线圈吸合。自
动打开香蕉阀门,洗衣机里的水就顺着管道流出去了。断电后,电磁阀线圈失去电流,磁场消失,电磁铁松开,橡胶阀门自动关闭,洗衣机里的水就流不出去了。
(3).动机及传动系统
波轮式全自动套桶洗衣机的电动机及传动系统主要由电动机和离合器组成,离合器又有普通离合器和减速离合器两种。其中普通离合器用在采用小波轮的套桶洗衣机上,这种洗衣机在洗涤或者漂洗时波轮的转速和脱水时离心桶的转速相同,目前各种大波轮新水流套桶洗衣机普遍采用减速离合器,它在洗涤,漂洗时波轮的转速较慢,而脱水时离心桶的转速较快。电动机同时作为洗涤和脱水时的动力源,普遍采用主,副绕组完全对称的电容式电动机。
洗衣机的基本工作原理
洗衣机的洗涤原理是由模拟人工洗涤衣物发展而来的,即通过翻滚、摩擦、水的冲刷等机械作用以及洗涤剂的表面活化作用,将附着在衣物上的污垢除掉,以达到洗净衣物的目的。现今,大多数的全自动洗衣机都使用以单片机为核心的控制电路来控制电动机、数码显示管、进水阀、排水阀及蜂鸣器的电压输出,使洗衣机根据程序运转。而在设计全自动洗衣机的控制系统时,要把握好洗涤、漂洗和脱水的时间:
(1).洗涤时间
有人认为,洗涤时间越长,衣物就洗得越干净。其实不然,如果洗涤时间超过一定的限度,衣物不但不会随洗涤时间的延长而提高洗净度,反而会加速衣物的磨损,还会造成能源的浪费。实验证明,洗衣机(波轮式洗衣机)的最佳洗涤时间为5~10分钟,最长也不应超过15分钟。
(2).漂洗时间
在漂洗刚开始的3分钟时间内,残留在衣物上的表面活性剂脱落最快。此后,活性剂脱落趋缓,漂洗10分钟后活性剂几乎不再脱落。一般采用贮水方式漂洗,每次3分钟,漂洗2~3次就可以了。
(3).脱水时间
电动机高速地转动洗涤桶,水份就会由于离心力而脱离衣物被甩出去。脱水时间一般为2~3分钟,时间太短会造成脱水不够彻底,太长又可能会损坏衣物。
总体设计思想
首先构思系统的总体结构,根据设计要求确定好系统大致的硬件组成及其结构,其次根据系统的各个功能把软件分为几个不同的模块。依次实现各个模块的功能,最后把各个模块组合起来已完成整个系统的功能。3.2 洗衣过程流程图
3.3 设计流程图
弄清系统的需求根据系统的需求设计出相应的硬件电路在确定系统硬件结构的基础上,把软件划分为各个模块调试各个模块,并组成一个完整的系统
四
硬件设计
4.1 硬件设计概要
用Intel的8086作为控制芯片,配合其他接口电路及配套的芯片组成洗衣机的控制电路。主要用到8255串行通行芯片,74LS137三线八线译码器发出片选信号,AD0809以及DA0832模数、数模转换芯片。用一个电位计和AD0809模拟水量信号,DA0832和LM324运放最和来控制直流电机的正反转和停止。此外还用到了4*4扫描键盘作为输入设备,两个共阴数码管作为显示设备。详情见各个芯片的介绍。
4.2 所用到的芯片及其各自功能说明 4.2.1芯片列表
8086,8284,74LS138,8255,AD0809,DA0832,74LS02,LM324 4.2.2 8086的功能简介
Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085(它与8080有组合语言上的原始码兼容性)的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth)的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为0~1048575,用十六进制表示为00000H~FFFFFH。
Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。
Intel 8086有四个 内存区段(segment)寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有
用),可以完全地控制分段,使在编程中使用指针(如C 编程语言)变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。
在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作。
4.2.3
8284的功能简介
向8086CPU提供外部的基准时钟信号,并把时钟信号进行功率放大。
4.2.3 74LS138的功能简介
74LS138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下:
当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电译出。
利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器,在该系统中,74LS138用来产生各芯片的片选信号。
4.2.4 8255的功能简介
8255特性
(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.8255引脚功能
RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行
输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'
A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择
4.2.5 AD0809的功能简介
1、ADC0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809 的工作原理
IN0-IN7:8 条模拟量输入通道
ADC0809 对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条
ALE 为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C 为地址输入线,用于选通IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。
C B A 选择的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3 0 0 IN4 0 1 IN5 1 0 IN6 1 1 IN7
数字量输出及控制线:11 条
ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0 为数字量输出线。
CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
4.2.6 DA0832芯片的功能简介
DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:
分辨率为8位;
电流稳定时间1us;
可单缓冲、双缓冲或直接数字输入;
只需在满量程下调整其线性度;
单一电源供电(+5V~+15V);
低功耗,200mW。DAC0832结构:
D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
ILE:数据锁存允许控制信号输入线,高电平有效;
CS:片选信号输入线(选通数据锁存器),低电平有效;
WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;
IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
Vcc:电源输入端,Vcc的范围为+5V~+15V;
VREF:基准电压输入线,VREF的范围为-10V~+10V;
AGND:模拟信号地
DGND:数字信号地 DAC0832的工作方式:
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
4.2.7 LM324芯片功能简介
LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
LM324的引脚排列图
LM324的特点: 1.短跑保护输出 2.真差动输入级
3.可单电源工作:3V-32V 4.低偏置电流:最大100nA 5.每封装含四个运算放大器。6.具有内部补偿的功能。7.共模范围扩展到负电源 8.行业标准的引脚排列 9.输入端具有静电保护功能 4.3 硬件电路设计系统原理图及其说明
微机总线扩展键盘DB译码电路并行接口功放电路电机驱动电路排水闸驱动电路进水闸驱动电路AB门开关定时器A/D时钟电路水位传感器启动按钮及电路IRQiDBIRQjIRQk
图4.3-1系统总体框架。图4.3-2系统硬件电路
五
软件设计
5.1 流程图及其说明
正传washytpe秒并刷新数码管开始判断按下启动键FalseTure停转5秒秒并刷新数码管设置洗衣方式其他反转washtype秒秒并刷新数码管FalseWashtype=151从键盘读一个数据2Washtype=10停转5秒秒并刷新数码管修改显示参数更新剩余时间设置洗衣时间设置定时洗衣时间判断到达定时时间TureFalse判断到达洗衣时间TureTure排水并显示当前水量False进水打开并显示当前水量False判断水排干Ture判断水满甩干,电机加速正传2分钟漂洗若干次并甩干,流程同上故障 服务中断程序有故障标志吗?False结束,电机停转,三分钟开机保护14
说明:软件可以分为10大块,分别为主程序、键盘扫描子程序、参数设置子程序、延时子程序、显示子程序、进水子程序、排水子程序、甩干子程序、停止及开机延时保护子程序组成。其中,进水、洗衣、排水为一次洗衣的三个不同状态,由相应的子程序来控制电机的运动和进水排水。它们的关系如图5.1-2.主程序参数设置进水洗衣排水甩干停止及开机保护键盘扫描延时显示 图5.1-2
5.2 源程序及其说明
CODE SEGMENT
ASSUME
CS:CODE
WASHTIME DW
20H
WASHTYPE DW
08H
ONTIME DW
00H
TIME DW
0
ADPORT EQU
0010H
ORG
1000H
IOCONPT EQU
0FF2BH
IOAPT EQU
0FF28H
IOBPT EQU
0FF29H
IOCPT EQU
0FF2AH
ORG
10E0H
DAPORT EQU
0020H
ORG
10A0H
MAIN PROC
;键盘参数设置
MOV
AL,01H
CALL
CONVERS
CALL
DISP
;显示01,提示输入洗衣时间
CALL
KEY
MOV
DL,10
MUL
DL
MOV
WASHTIME,AX
CALL
KEY
CBW
ADD
WASHTIME,AX
K1: MOV
AL,02
;显示02;提示选择洗衣方式
CALL
CONVERS
CALL
DISP
CALL
KEY
CMP
AL,2
JA
K1
CMP
AL,1
JB
K1
CMP
AL,1
JE
RUOXI
CMP
AL,2
JE
QIANGXI
RUOXI: MOV
WASHTYPE,08H
JMP
NEXT
QIANGXI: MOV
WASHTYPE,0FH
NEXT: MOV
AL,03
;显示3,提示输入定时时间
CALL
CONVERS
CALL
DISP
CALL
KEY
MOV
DL,10
MUL
DL
MOV
ONTIME,AX
CALL
KEY
CBW
ADD
ONTIME,AX
MOV
CX,ONTIME
LOOP
K2
K2: CALL
DELAY
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADD
AX,WASHTIME
ADD
AX,WASHTIME
ADD
AX,WASHTIME
MOV
TIME,AX
CALL
STEP1
;洗衣
MOV
CX,WASHTIME
LOOP
WASH
CALL
STEP3
CALL
SHUAIGAN
CALL
STEP1
;漂洗
MOV
CX,WASHTIME
LOOP
WASH
CALL
STEP3
CALL
SHUAIGAN
CALL
STEP1
;漂洗
MOV
CX,WASHTIME
LOOP
WASH
CALL
STEP3
CALL
SHUAIGAN
CALL
STOP
;洗衣完成,三分钟启动保护
JMP
MAIN
MAIN ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;WASH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WASH PROC
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
DX,DAPORT
DACON1: MOV
AL,0FFH
OUT
DX,AL
MOV
CX,WASHTYPE
LOOP
W1
W1: CALL
DELAY
DACON2: MOV
AL,80H
OUT
DX,AL
MOV
CX,8H
LOOP
W2
W2: CALL
DELAY
DACON3:
MOV
AL,00H
OUT
DX,AL
MOV
CX,WASHTYPE
LOOP
W3
W3: CALL
DELAY
MOV
AL,80H
OUT
DX,AL
MOV
CX,8H
LOOP
W4
W4: CALL
DELAY
DEC
TIME
MOV
AX,TIME
CALL
CONVERS
CALL
DISP
POP
DX
POP
CX
POP
BX
POP
AX
RET
WASH ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STEP1;;;;;;;;;;;;;;;;;;;;;;;;
STEP1 PROC
;判断水位
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
ADCONTORL: CALL
FORMAT
ADCON: MOV
AX,00
MOV
DX,ADPORT
OUT
DX,AL
DELAYS: LOOP
DELAYS
MOV
DX,ADPORT
MOV
DX,ADPORT
IN
AL,DX
PUSH
AX
CALL
CONVERS
CALL
DISP
POP
AX
CMP
AL,0EEH
JAE
LA
CALL
JINSHU
LA: MOV
DX,IOCONPT;水满,关水
MOV
AL,89H
OUT
DX,AL
MOV
DX,IOCPT
IN
AL,DX
AND
AL,0FEH
PUSH
AX
MOV
DX,IOCONPT
MOV
AL,80H
OUT
DX,AL
MOV
DX,IOCPT
POP
AX
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
RET
STEP1 ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;JINSHU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JINSHU
PROC
;控制进水
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
DX,IOCONPT
MOV
AL,89H
OUT
DX,AL
MOV
DX,IOCPT
IN
AL,DX
OR
AL,01H
PUSH
AX
MOV
DX,IOCONPT
MOV
AL,80H
OUT
DX,AL
MOV
DX,IOCPT
POP
AX
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
JMP
ADCON
JINSHU
ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;XIANSHI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CONVERS:
;字符转换
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
AH,AL
AND
AL,0FH
DISP:
DISP0:
DISP1:
MOV
BX,077AH MOV
DS:[BX],AL INC
BX MOV
AL,AH AND
AL,0F0H MOV
CL,04H SHR
AL,CL MOV
DS:[BX],AL POP
DX POP
CX POP
BX POP
AX RET
;显示 PUSH
AX PUSH
BX PUSH
CX PUSH
DX MOV
DX,077FH MOV
AH,20H MOV
CX,00FFH MOV
BX,DX MOV
BL,DS:[BX] MOV
BH,0H PUSH
DX MOV
DX,0FF22H MOV
AL,CS:[BX+1060H] OUT
DX,AL MOV
DX,0FF21H MOV
AL,AH OUT
DX,AL LOOP
DISP1 POP
DX
DEC
DX
SHR
AH,01H
JNZ
DISP0
MOV
DX,0FF22H
MOV
AL,0FFH
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
RET
DATA1:
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0AH
DB
86H,8EH,0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH
FORMAT:
;显示初始化
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
BX,0
MOV
WORD PTR DS:[BX+077AH],0000H
ADD
BX,2
MOV
WORD PTR DS:[BX+077AH],0009H
ADD
BX,2
MOV
WORD PTR DS:[BX+077AH],0008H
POP
DX
POP
CX
POP
BX
POP
AX
RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STEP3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STEP3 PROC
;判断水是否排干?
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX ADCON1TORL: CALL
FORMAT
ADCON1: MOV
AX,00
MOV
DX,ADPORT
OUT
DX,AL
MOV
CX,0500H
DB
DELAYSS: LOOP
DELAYSS
MOV
DX,ADPORT
IN
AL,DX
PUSH
AX
CALL
CONVERS
CALL
DISP
POP
AX
CMP
AL,08H
JBE
LAA
CALL
PAISHU
LAA: MOV
DX,IOCONPT;排干,停止排水
MOV
AL,89H
OUT
DX,AL
MOV
DX,IOCPT
IN
AL,DX
AND
AL,0FDH
PUSH
AX
MOV
DX,IOCONPT
MOV
AL,80H
OUT
DX,AL
MOV
DX,IOCPT
POP
AX
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
RET
STEP3 ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;PAISHU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PAISHU PROC
;控制进水
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
DX,IOCONPT
MOV
AL,89H
OUT
DX,AL
MOV
DX,IOCPT
IN
AL,DX
OR
AL,02H
PUSH
AX
MOV
DX,IOCONPT
MOV
AL,80H
OUT
DX,AL
MOV
DX,IOCPT
POP
AX
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
JMP
ADCON1
PAISHU ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;SHUAIGAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHUAIGAN PROC
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
DX,DAPORT
MOV
AL,0FFH
OUT
DX,AL
MOV
CX,80H
LOOP
SHUA1
SHUA1: CALL
DELAY
MOV
AL,80H
OUT
DX,AL
POP
DX
POP
CX
POP
BX
POP
AX
RET
SHUAIGAN ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DELAY;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:
POP
DX
POP
CX
POP
BX
POP
AX
MOV
CX,0FFFFH
DELAY1: LOOP
DELAY1
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STOP;;;;;;;;;;;;;;;;;;;;;;;;
STOP PROC
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
CX,0FFFFH
LOOP
DE
DE: CALL
DELAY
POP
DX
POP
CX
POP
BX
POP
AX
RET
STOP ENDP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;键盘扫描;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY: PUSH
AX
PUSH
BX
PUSH
CX
PUSH
DX
MOV
AL,0FFH
MOV
DX,0FF22H
OUT
DX,AL
MOV
BL,00H
MOV
AH,0FEH
MOV
CX,08H
KEY1: MOV
AL,AH
MOV
DX,0FF21H
OUT
DX,AL
SHL
AL,01H
MOV
AH,AL
NOP
NOP
NOP
NOP
NOP
NOP
MOV
DX,0FF23H
IN
AL,DX
NOT
AL
NOP
NOP
AND
AL,0FH
JNZ
KEY2
INC
BL
LOOP
KEY1
JMP
KEY
KEY2: TEST
AL,01H
JE
KEY3
MOV
AL,00H
JMP
KEY6
KEY3: TEST
AL,02H
JE
KEY4
MOV
AL,08H
JMP
KEY6
KEY4: TEST
AL,04H
JE
KEY5
MOV
AL,10H
JMP
KEY6
KEY5: TEST
AL,08H
JE
KEY
MOV
AL,18H
KEY6: ADD
AL,BL
CMP
AL,10H
JNC
FKEY
MOV
BL,AL
MOV
BH,0H
MOV
AL,BYTE PTR DS:[BX+DATA2]
POP
DX
POP
CX
POP
BX
POP
AX
FKEY: RET
DATA2: DB
07H,04H,08H,05H,09H,06H,0AH,0BH
DB
01H,00H,02H,0FH,03H,0EH,0CH,0DH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODE ENDS
END
MAIN 收获、体会
在这次微机的课程设计中进一步熟悉的汇编语言的编程方法,借助现代的网络技术,解决问题,不让问题遗留到下一天,极大地加快的进度,也让我们对汇编有了更深一层的认识,并且还让我们初步领略到计算机控制的魅力,可谓一举多得。
课程设计是我们从书本到实践非常关键的一步,当代大学生动手创新能力是社会所急需的,正因如此我们应该加强对自身动手实践能力的锻炼。当今社会计算机科学在应用上得到飞速发展,因此,学习知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。
课程设计中我们不仅培养了我们的实践能力,也培养了我们发现问题、分析问题、解决问题的能力。在学习设计过程中我查询了相关资料,也学习到了很多东西。感谢老师的谆谆教导和学校给我们提供了这么一次机会。
参考文献
微型计算机技术及应用,戴梅萼,清华大学出版社
第四篇:微机原理交通灯课程设计
湖南科技大学
潇湘学院信息与电气工程系
《课程设计报告》
题 目: 硬件描述语言课程设计 专 业: 通信工程 班 级: 二班 姓 名: 学 号:
指导教师: 欧青立
2015 年 12 月 28 日
信息与电气工程学院 课程设计任务书
2015 —2016
学年第 一 学期
专业:
通信工程
班级: 二班
学号: 姓名:
课程设计名称:
微机原理与接口技术
设计题目:
基于PC机与8255的交通灯电路系统设计
完成期限:自 2015年月 14 日至
2015 年月 日共 2 周 设计依据、要求及主要内容(可另加附页): 设计依据:
交通灯在我们的日常生活中很常见,现代化城市交通中交通灯已成为城市不可或缺的一部分。基于微处理器的交通灯控制系统成为主要设计方法。采用微处理器结合外围芯片,通过软件编程方式即可实现对交通灯的控制。设计内容及要求:
采用80868088控制器和8位并行接口芯片8255设计实现交通灯控制系统,编写相关软件程序。基本要求:
(1)采用Protel软件或其它软件绘制电路原理图;
(2)初始状态为全红灯,等待5秒,LED显示倒计时,然后东、西方向亮红灯,南、北方向亮绿灯,时间为10秒,LED显示倒计时;转为南、北方向绿灯闪3秒,然后转为黄灯3秒,LED显示倒计时;再转为东、西方向亮绿灯,南、北方向亮红灯,时间为10秒,LED显示倒计时;然后再转为东、西方向绿灯闪3秒再转为黄灯3秒,再次转为东、西方向红灯,南、北方向绿灯,以后按此循环。
提高要求:如果发生突发情况,能通过按键使东西或南北方向长时间红灯。
指导教师(签字):
批准日期:
****年**月**日
目录
前言....................................................4 第一章 绪论..............................................5
1.1 设计的目的及要求.....................................................5 1.2 设计期望实现的目标...................................................5 1.3 目标的可行性分析.....................................................6 1.4 使用的技术和方法.....................................................6 第二章 内容..............................................7 2.1 设计步骤.....................................................7 2.2 详细设计....................................................7
第三章 硬件设计..................................................7
3.1 8255A工作原理..............................................7 3.2 8088工作原理...............................................9 2.3 设计原理图与PCB...........................................10 第四章 软件设计.................................................11 3.1 程序分析...................................................11 3.1 程序代码...................................................15 第四章 心得体会.................................................16 参考文献.........................................................17
前言
在21世纪这个科技当道的年代,只要你敢想一切皆有可能。微机原理与接口技术作为大学本科通信电子专业的一门必修科目,对我们理解科学,认识科学的意义是深远的。本次课程设计皆在提高我们对微机原理以及相关软硬件的认识,提升理论与实践的结合能力,在本次课程设计中将基于AEDK8688ET微机教学实验系统来实现8259A、8255A芯片的工程应用设计。
本课程设计报告共分四章,在第一章中主要阐述课程设计的 意义与目的,并说明期望的目标。在第二章和第三章中分别就设计的硬件和软件做详细阐述,其中包括关键芯片的功能介绍,软硬件的设计思路与实现。第四章为课程设计的心得体会。
当然目前自己的知识与水平是非常有限的,设计报告中还存在很多的不足与错误,恳请老师与读者批评指正。在车辆日渐增多的今天,人们也越来越关注交通问题,而交通灯在安全行车过程中无疑起着十分重要的作用。现在交通灯一般都设在十字路口,用红、绿、黄三种颜色的指示灯和一个倒计时的显示计时器来控制行车, 对一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点:
1、车道轮流放行时间相对固定, 不能根据实际情况中两个车道的车辆多少来设置改变通行时间;
2、没有考虑紧急车辆通过时, 两车道应采取的措施。譬如, 有消防车通过执行紧急任务时, 两个车道的车都应停止, 让紧急车辆通过。因此如何合理高效地利用交通灯指示交通情况,是一个亟需解决的问题。
交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。
要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。绪论
本次专业课程设计作为前阶段学习知识的一个检验,培养了我们的动手能力以及独立思考设计的能力,也是大学培养的一个重要实践步骤。设计初期,我们通过网络,图书馆等资源查找到利用微机原理与接口技术设计制作交通灯的相关信息,对不同的方案进行细致的分析比较。并且按照题意与实际情况进行改进,使之符合要求。然后按照电路图进行接线,最终做出一个简单的交通灯。制作过程中发现的一些问题通过共同的分析研究得到的解决,此次课程设计巩固了前期的理论知识,增强了动手实践能力。
程序主要是由定时子程序、发光二极管显示子程序和中断服务程序组成。包括对8255、8088等可编程器件的编程。
一、课程设计目的以及要求
1、课程设计题目:交通灯
使用8255A和8088模拟十字路口交通灯的闪烁情况
2、基本要求:
1、设计实验电路
2、分析实验原理
3、列出实验接线表
4、采用汇编语言编写实验程序
5、通过实验验证功能的实现
6、编写课程设计说明书。
3、初始条件:
运用所学的微机原理和接口技术知识;
微机原理和接口技术实验室的实验箱设备。
4、设计目的
掌握8255A方式0的使用与编程方法 PC机及配套的接口电路实验装置 IC芯片:8255A应用
利用并行I/O识别开关(4个),使相应的发光二极管发光。 熟练掌握Altium designer10.0(或protel99)软件对电路原理图 4.1)设计期望实现的目标
因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的规律。假设一个十字路口为东西南北走向,初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1 5 4.2)目标的可行性分析
通过微机原理与接口课程的学习,在理论上设计目标是可以实现的,结合学校实验教学系统在设计合适的软硬件模块能够实现此课程设计的目标。
双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。4.43)使用的技术和方法
通过实验教学系统上搭建硬件环境,通过外设计算机提供软件编译环境两者结合起来,由汇编实现编程控制。
二、内容
● 采用8255A设计交通灯控制的接口方案
● 插接电路 ● 编写控制程序
1.设计步骤
(1)方案设计
考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,所以本方案要点是对六个交通灯进行控制。
由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。(2)电路插接
本实验利用装置提供的8255A芯片和逻辑电平显示器进行。(3)编程与运行
2.详细设计:
(1)电路原理:本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图所示。硬件电路由定时模块、发光二极管模块、数码管显示模块和紧急中断模块组成。
定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。数码管输出数据刷新子程序是实现倒计时25s,用LEDOUT表示输出的数据,cnt用来软件计时1s,就是计数10个100ms。LED输出是要将输出的数据转化为段选码。根据当前的状态跳转到相应的处理程序,在处理程序中完成定时和状态的切换。状态1和3的流程是一样的,先点亮对应的交通灯,再判断定时到了就可以切换了。状态2和4要实现黄灯的闪烁,间隔点亮和熄灭就可以了。状态1和3处理程序的流程图NUM是状态1对应的PC口输出。
外部中断服务子程序主要用来处理紧急情况,将2个方向的车都停止运行,点亮所有红灯。下次中断来时恢复以前的状态。用一个标志位FLAG判断是第一次进入还是恢复状态。
(2)编写汇编程序通过8255A控制四个方向交通灯的状态,具体假设设计状态如下:
1、首先初始状态0为东西南北都关灯。
2、然后经过一段时间后转为状态1东西绿灯通车,南北红灯。
3、过一段时间转为状态2,东西绿灯闪几次转亮黄灯,延时几秒,南北路口的仍然亮红灯。
4、再转状态3,南北绿灯通车,东西红灯。
5、过一段时间转状态4,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
6、最后返回至状态1继续循环。
说明:(1)实际上黄灯的闪烁由两个状态组成,例如南北红灯同时东西黄灯亮与南北红灯同时东西黄灯灭这两个状态的组成。所以端口一共有七组状态。东西方向:PA0红灯;PA1黄灯;PA3绿灯; 南北方向:PA4红灯;PA5黄灯;PA6绿灯;
三、硬件设计
3.1 8255A的工作原理1、8255A的内部结构:
1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。、8255A的 工作方式: 方式0---基本输入输出方式; 方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
3、脚信号
8255A的引脚如有:分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。
RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口输入/输出信号线。PB7~PB0(port B):B口输入/输出信号线。PC7~PC0(port C):C口输入/输出信号线。VCC:+5V电源。GND:电源地线。3.2 8088工作原理
1)、任何微处理器(包括8086/8088)的地址总线、数据总线及部分控制总线均采用三态缓冲器式总线电路。所谓三态,是指它们的输出可以有逻辑“1”、逻辑“0”和“浮空”三种状态。当处于浮空状态时,总线电路呈现极高的输出阻抗,如同与外界“隔绝”一样。总线电路的这种三态性,既保证了在任何时候,只允许此刻进行信息交换的设备占用总线,其他设备与总线“完全” 脱离,不会影响正常的信息传递,又为其他快速信息传递方式(如DMA)提供了必要条件。只要申请DMA方式传递,外总线可以完全“脱离”CPU的控制,而与存储器或I/O设备直接进行信息交换。总线的三态性是现在问世的所有微处理器的共性。学习和使用微处理器必须认识到这一特性。对8086来说,还应该认识其CPU引脚的特殊性:此元件是存储器电路中的一部分,它有28个端口,其中A1-A12为输入端是A【0..14】网络中一部分,而D0-D7就是D【0..7】网络中的一部分,另外9 28脚和14脚为电源和接地,在制作QEWE和CS1端口时,在每个字母后面都要加一个斜杠
这个图中8255元件是输入输出电路中的主要元件之一,D0-D7就是D【0..7】网络中的一部分,A0-A1是A[0..14]网络的一部分,其中PA0-PA7,PB0-PB7,PC0-PC7全部是IO输出
四、实验原理图
五、pcb图
六、程序:
PA55 EQU 0210H;8255PA口地址 PC55 EQU 0212H;8255PC口地址 P55CTL EQU 0213H;8255控制口地址;-----------LED灯----------------------PB55 EQU 211H D1 EQU 10H D2 EQU 50H DATA SEGMENT PB DB ? DATA ENDS STACK SEGMENT STACK STA DW 50 DUP(?)TOP EQU LENGTH STA STACK ENDS;-----------开始-----------------
CODE SEGMENT ASSUME CS:CODE,DS:CODE START: PUSH CS POP DS MOV DX,P55CTL;设置8255口为输出口 MOV AL,80H OUT DX,AL;---------LED----------------------MOV DX,204H MOV AL,00H
OUT DX,AL;清LED
MOV DX,PB55;全红 MOV AL,0FH OUT DX,AL MOV BX,7fH CALL DLY 11 CALL DLY CALL DLY CALL DLY CALL DLY;CALL BEGIN;CALL WRITE2;调用数码管过程
BG: MOV AL,96H;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DJS;计数
MOV DX,P55CTL;设置8255口为输出口 MOV AL,80H OUT DX,AL;---------LED----------------------MOV DX,204H MOV AL,00H
OUT DX,AL;清LED
MOV DX,PB55;全红;JMP XH1 MOV CX,03H JNZ XH1 XH1: MOV AL,9FH;绿灭 OUT DX,AL MOV BX,D1 CALL DLY MOV AL,96H;绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 MOV AL,06H;南北黄 OUT DX,AL MOV BX,D1 12 CALL DLY MOV BX,D1 CALL DLY MOV AL,69H;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DJS MOV DX,P55CTL;设置8255口为输出口 MOV AL,80H OUT DX,AL;---------LED----------------------MOV DX,204H MOV AL,00H
OUT DX,AL;清LED MOV DX,PB55;全红 MOV CX,03 XH2: MOV AL,6FH OUT DX,AL MOV BX,D1 CALL DLY MOV AL,69H OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 MOV AL,09H OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BG;倒计时----DJS PROC NEAR PUSH DX 13 PUSH CX PUSH AX PUSH BX BEGIN: MOV AL,0 MOV CH,0 WRITE2: MOV AH,AL LEA BX,LED XLAT MOV CL,8H;分八位写一个LED;-----------164驱动--WRITE1: MOV DX,PA55 OUT DX,AL PUSH AX MOV DX,P55CTL;利用8255PC5口控制DCLK,使DCLK产生一低电平到高电平的跳变
MOV AL,0AH;PC5置“0” OUT DX,AL MOV AL,0BH;PC5置“1”
OUT DX,AL POP AX RCR AL,1 DEC CL CMP CL,0 JNZ WRITE1 CALL DLY MOV AL,AH INC AL INC CH CMP CH,0AH;循环10次 JBE WRITE2;调用数码管过程 POP DX POP CX 14 POP BX POP AX RET DJS ENDP;JMP BEGIN;---------延时1S--------------------DLY PROC NEAR PUSH CX MOV BL, 24 M2: MOV CX,2810H LOOP $ DEC BL JNZ M2 POP CX RET DLY ENDP
;-----------数码管编码----------------------LED: DB 09H,01H,1FH,41H,49H,99H,0DH,25H,9FH,03H;9 8 7 6 5 4 3 2 1 0 CODE ENDS;------------
END START
七、心得体会
此次实习可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在程序中添加了黄灯闪烁,更加醒目。另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。在系统加电调试中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。
实验的完成需要扎实的基础知识,这次实验不仅是对课程内容掌握程度的一次考验,而且是一次很好的训练机会,训练了我们查找资料的能力。通过此次课程设计的锻炼,自己的动手能力有了很大的提高,查找问题、解决问题的能力也有了相应的进步。在本次的实验过程中,遇到很多困难,毫无头绪的时候,毅力和坚持的勇气很重要,支撑我们走过实验的每一步。在这次课程设计的过程中,我无论是在关于 X86 系列的相关知识或在接口芯片的初始化及应用方面还是在利用所学到知识全面设计系统方面收获都很大。为以后从事软件的设计开发打下了良好的基础树立独立从事研发的信心,同时也培养了我认真的做事态度。通过设计交通灯数字控制系统将软硬充分相结合,学会了很多有用的知识锻炼了软硬相互协调的能力。同时也增强了全面系统考虑问题的能力,以及硬件设计能力。可以说这次课程设计很成功,在自己学习独立思考的情况下找到了分析问题解决问题的方法。这对以后的学习和工作具有重要的指导意义!虽然花了很长时间编写软件程序设计,但这一切还是理论上的。希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。通过这次实习报告的设计,使我更加清楚以后的发展及学习的方向。最后感谢老师这个学期的指导和帮助!参考文献
[1]李国洪.可编程器件EDA技术与实践[M].北京:机械工业出版社,2004:100-123.[2]翟殿堂,方敏,历光伟.基于EDA的多功能计时器设计[J].信息技术,2008,17(11):39-45.[3]奚素霞.基于EDA技术的数字电路设计[J].重庆科技学院学报(自然科学),2009,11(4):124-151.[4]候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1999:5-7.[5]赵辉.基于EDA技术的数字系统设计[J].电子设计工程,2012,20(2):34-37.[6]周永亮,王军民,薛良玉,胡文宝.基于CPLD的时间信号精确同步研究[J].石油天然气学报,2011,33(4):105-108.[7]乔桥,张弛,邹安阳.基于CPLD的扭簧分选仪交流伺服系统的设计[J].武汉纺织大学学报,2011,24(3):62-65.[8]王永祥.基于CPLD的两相步进电机细分驱动器设计[J].宜春学院学报,2011,33(4):52-53.[9]刘凯,王红航.电子抢答器的EDA设计与实现[J].电子元器件应用,2010,12(8):54-57.[10]侯宝生.基于VHDL的数字倍频器设计[J].科学技术与工程,2009,9(3):705-708..17
第五篇:微机原理课程设计-8255控制交通灯
微机原理课程设计:8255模拟交通灯
1、目的:学习8255使用方法,学习模拟交通灯控制的方法,学习双色灯的使用。
2、要求:控制4个双色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。
3、电路及连线
PC0-PC3连DG1-DG4,PC4-PC7连DR1-DR4。8255片选CS8255连138译码处210H。
4、说明(1)因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。
(2)双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。(3)74LS240为8输入输出的反向驱动器。
5、完成的任务
(1)利用计算机和微机原理试验箱,将实验6的程序Tlamp_88.asm在试验箱运行和调试。全速运行,观察整体效果。单步运行,观察程序每条语句额执行效果,理解语句含义。(2)修改实验连线为,PC7-PC4连DG1-DG4,PC3-PC0连DR1-DR4。8255片选CS8255连138译码处210H孔。将Tlamp_88.asm另存为jiaotong.asm。修改jiaotong.asm,实现交通灯原有功能。
(3)修改实验连线为,PB7-PB4连DG1-DG4,PB3-PB0连DR1-DR4。8255片选CS8255连138译码处210H孔。将jiaotong.asm另存为jiaotong2.asm。修改jiaotong2.asm,实现交通灯原有功能。
(4)将jiaotong2.asm另存为jiaotong3.asm。修改jiaotong3.asm,实现交通灯各个灯亮和灭的时间是原有时间的3倍。
6、实验程序框图
7、源程序: Tlamp_88.asm
;FOR
EAT 598 PC55
EQU 212H
211 P55CTL EQU 213H D1
EQU 10H
D2
EQU 50H
DATA
SEGMENT PB
DB ? DATA
ENDS STACK
SEGMENT STACK STA
DW 50 DUP(?)TOP
EQU LENGTH STA STACK
ENDS CODE
SEGMENT ASSUME CS:CODE,DS:DATA START:
PUSH
CS
POP
DS
MOV
DX,P55CTL
;设置为全输出
MOV
AL,80H
OUT
DX,AL
MOV
DX,204H
MOV
AL,00H
OUT
DX,AL
;清LED
MOV
DX,PC55
;全红
MOV
AL,0FH
OUT
DX,AL
MOV
BX,7fH
CALL
DLY BG:
MOV
AL,96H
;南北绿,东西红
OUT
DX,AL
MOV
BX,D2
CALL
DLY
MOV
CX,03H XH1:
MOV
AL,9FH
;南北绿灭
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
AL,96H
;南北绿亮
OUT
DX,AL
MOV
BX,D1
CALL
DLY
LOOP
XH1
MOV
AL,06H
;南北黄
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
BX,D1
CALL
DLY
MOV
AL,69H;南北红,东西绿
OUT
DX,AL
MOV
BX,D2
CALL
DLY
MOV
CX,03
XH2:
MOV
AL,6FH;东西绿灭
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
AL,69H
;东西绿亮
OUT
DX,AL
MOV
BX,D1
CALL
DLY
LOOP
XH2
MOV
AL,09H
;东西黄
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
BX,D1
CALL
DLY
JMP
BG
DLY
PROC
NEAR
PUSH
CX
DDD:
MOV
CX,0FFFH CCC:
LOOP
CCC
DEC
BX
CMP
BX,0
JNE
DDD
POP
CX
RET
DLY
ENDP
CODE
ENDS END
START