8255交通灯控制系统(倒计时显示,紧急中断)

合集下载

实验九 可编程接口芯片8255应用(交通灯控制)

实验九 可编程接口芯片8255应用(交通灯控制)

实验九可编程接口芯片8255应用(交通灯控制)双击自动滚屏发布者:admin 发布时间:2005-9-8 阅读:2151次一、实验目的1、学习扩展简单I/O接口的方法以及双色灯的使用。

2、进一步学习微处理器的编程技术。

二、实验要求编写程序,以8255作为输出口,控制4个双色LED灯(可发红、绿、黄光)红绿交替闪亮。

三、实验说明1、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

2、本实验要求8255工作于方式0,四个双色灯红绿交替闪亮。

四、实验电路及连线将DG1~DG4,DR1~DR4用导线连至8255的PC0~PC7,8255的CS片选接至138译码处的200H~207插孔。

芯片在实验机的位置五、实验参考程序D1 EQU 10HD2 EQU 200HDA TA SEGMENTPB DB ?DA TA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CSPOP DSMOV DX,203H ;设置为全输出MOV AL,80HOUT DX,ALMOV DX,202HOUT DX,AL ;清LEDMOV DX,202H ;全红MOV AL,0F0HOUT DX,ALMOV BX,7fHCALL DL YBG: MOV AL,01101001B ;南北绿,东西红OUT DX,ALMOV BX,D2CALL DL YMOV CX,03HXH1: AND AL,0F6H ;绿灭OUT DX,ALMOV BX,D1CALL DL YOR AL,09H ;绿亮OUT DX,ALMOV BX,D1CALL DL YLOOP XH1OR AL,90H ;南北黄OUT DX,ALMOV BX,D1CALL DL YMOV BX,D1CALL DL YMOV AL,10010110B ;南北红,东西绿OUT DX,ALMOV BX,D2CALL DL YMOV CX,03XH2: AND AL,0F9HOUT DX,ALMOV BX,D1CALL DL YOR AL,06HOUT DX,ALMOV BX,D1CALL DL YLOOP XH2OR AL,60HOUT DX,ALMOV BX,D1MOV BX,D1CALL DL YJMP BGDL Y PROC NEARPUSH CXDDD: MOV CX,0FFFHCCC: LOOP CCCDEC BXCMP BX,0JNE DDDPOP CXRETDL Y ENDPCODE ENDSEND START六、思考题有紧急车辆或紧急情况出现,如何处理?程序如何设计?七、实验报告要求1、实验内容为必做内容,其中,思考题须自行设计电路、连线及编写程序。

交通灯设计-8255,8254(附连线图和源代码)

交通灯设计-8255,8254(附连线图和源代码)

西安郵電學院硬件课程设计报告题目:微机原理与接口课程设计院系名称:计算机学院专业名称:软件工程班级:软件0802学生姓名:***学号(8位):********指导教师:**设计起止时间:2011年05月23日~2011年05月27日一、设计目的通过可编程并行接口芯片8255A和可编程定时器/计数器芯片8253/8254以及中断控制器 8259实现十字路口交通灯的模拟控制,进一步掌握并行接口和定时器/计数器及数码管控制的实际应用。

二、设计内容1.用试验台提供的发光二极管(红绿黄各两支,共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模拟交通灯。

2.用可编程并行接口芯片8255A控制模拟交通灯的亮与灭和数码管的倒计时显示。

3.用可编程定时器/计数器芯片8253实现模拟交通灯亮与灭的时间延迟控制。

4.用数码管作为模拟交通灯亮与灭的时间延迟控制的倒计时显示。

5.用汇编语言编程使六个灯按交通灯变化规律“亮/灭”。

交通灯变化规律要求:① 南北路口的绿灯,东西路口的红灯同时亮30秒,且数码管30秒倒计时显示。

② 南北路口的黄灯闪烁3秒(三亮三灭),同时东西路口的红灯继续亮,且数码管3秒倒计时显示。

③ 南北路口的红灯,东西路口的绿灯同时亮20秒,且数码管20秒倒计时显示。

④ 南北路口的红灯继续亮,同时东西路口的黄灯闪烁3秒(三亮三灭),且数码管3秒倒计时显示。

⑤ 转①重复⑥按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再次按压“东西紧急键”,解除东西紧急通行状态。

(“东西紧急键”可是键盘键,亦可是逻辑开关键)⑦按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再次按压“南北紧急键”,解除南北紧急通行状态。

(“南北紧急键”可是键盘键,亦可是逻辑开关键)⑧按<ESC>键退出程序。

备注:1、按键用8255A 芯片的PC 口实现或用键盘模拟实现。

2、8253定时到可以通过8259,用中断的方式实现定时器。

8255交通灯控制实验

8255交通灯控制实验

交通灯控制实验计算机实验班1001 赵训201026811130交通灯控制实验:设计一个十字路口的交通灯控制,设初始状态是4个路口红灯全亮,然后,南北方向绿灯亮,延时30秒,南北方向灯灭,黄灯闪3次后,红灯亮,东西方绿灯亮,延时30秒,东西方黄灯闪3次后红灯亮。

重复上述过程。

要求:作出实验流程图。

硬件连接图。

写出汇编语言程序。

1、实验目的:分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制(红,黄,绿三色灯)。

2、实验设备及材料:微机原理和接口技术实验室的实验箱和电脑设备等。

3、理论依据:此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

8255A是可编程的通用并行输入/输出接口芯片,因通用性强,使用灵活,可直接与CPU总线相连,应用非常广泛。

8255A芯片内部有3个8为的输入/输出端口,即A口,B口和C口。

从内部控制的角度来讲,可分为两组:A组合B组。

A 组控制模块管理A口和C口德高四位(PC7~PC4),B组控制模块管理B口和C口的低四位(PC3~PC0)。

如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。

8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。

8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。

OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。

8255控制交通灯实验原理

8255控制交通灯实验原理

8255控制交通灯实验原理我们需要了解交通灯的工作原理。

一般来说,交通灯是通过控制红、黄、绿三个灯的亮灭来指示交通的状态。

红灯表示停车,黄灯表示准备行车,绿灯表示可以行车。

交通灯的亮灭是通过控制电流的开关来实现的。

在实验中,我们将使用8255芯片的三个I/O端口来控制交通灯的红、黄、绿三个灯。

具体来说,我们将把红灯连接到8255芯片的一个I/O端口,黄灯连接到另一个I/O端口,绿灯连接到第三个I/O端口。

通过编程控制这三个I/O端口的输出电平,我们就可以控制交通灯的亮灭。

在编程方面,我们需要使用汇编语言来编写控制程序。

首先,我们需要初始化8255芯片的工作模式。

通过将控制字写入控制寄存器,我们可以将8255芯片设置为输出模式,同时设置输出的电平。

然后,我们需要编写一个循环程序,不断改变输出的电平,从而实现交通灯灯光的变换。

具体来说,我们可以通过改变红、黄、绿三个灯的输出电平的组合来控制交通灯的亮灭。

在实验中,我们可以通过按下开关来触发交通灯的变换。

当按下开关时,控制程序将会执行一次循环,改变交通灯的亮灭状态。

这样,我们就可以通过按下开关来模拟交通灯的工作过程。

通过这个实验,我们可以更好地理解8255芯片的工作原理,并且掌握使用8255芯片来控制外部设备的方法。

在实际应用中,我们可以利用8255芯片来控制各种外部设备,如LED灯、电机等。

这样,我们可以通过编程来实现对外部设备的控制,从而实现各种功能。

使用8255芯片来控制交通灯是一种简单而有效的方法。

通过编程控制8255芯片的输出电平,我们可以实现交通灯的亮灭变换。

这个实验不仅可以帮助我们更好地理解8255芯片的工作原理,还可以培养我们的编程能力。

希望通过这个实验,我们可以更好地掌握8255芯片的使用,为以后的学习和工作打下良好的基础。

微机原理与接口技术8254 8255 8259倒计时秒表 实验报告

微机原理与接口技术8254 8255 8259倒计时秒表 实验报告

微机原理与接口技术8254 8255 8259倒计时秒表实验报告内蒙古师范大学计算机与信息工程学院《微机原理与接口技术期末实验设计报告》设计题目指导教师姓名学号日期希润高娃倒计时秒表职称讲师一、实验要求设计一个倒计时表,用8255设置灯,用8254记录时间,8259提供中断。

其中MIR7接KK1设置倒计时的总时间,每按一次脉冲,总时间加1,SIR1接KK2确认开始倒计时(DI=0对KK2屏蔽,DI=1对KK2开放),MIR6接8254设置准确的1s倒计间隔时间。

利用8254芯片的计数功能,芯片有5中工作方式,选择方式2和方式3都可以输出连续的波形,故都可以符合实验要求。

8254可以采用二进制计数或是BCD 码计数,如果用二进制计数,最大范围是65535,如果采用BCD码计数,最大范围是99999。

使用2个计数器,可以达到输出周期为1秒的方波。

计数初值=fclki/fouti。

利用8255芯片,设置灯的初始状态。

利用8259芯片的中断功能,当中断来时,启动8254芯片,进入计数状态。

IP=中断向量*4,CS=中断向量*4+2;二、设计2.1 硬件设计2.1.1 按下图的电路图连接电路图1 电路连线2.1.2电路说明该电路是在唐都实验箱上的操作,2片8259芯片是嵌在系统总线下,只有主片的中断序号为6和7 的两个口是对外开放的,从片的中断序号为1的口是对外开放的。

8254芯片计数器0的端口地址为06C0H,计数器1的端口地址为06C2H,计数器2的端口地址为06C4H,计数器3的端口地址为06C6H。

8255芯片PA口的端口地址为0640H,PB口的端口地址为0642H,PC口的端口地址为0644H,控制口的端口地址为0646H。

主8259芯片的偶地址为20H,奇地址为21H。

从8259芯片的偶地址为A0H,奇地址为A1H。

IOY0的编址空间:0600H~063FH IOY1的编址空间:0640H~067FH IOY2的编址空间:0680H~06BFH IOY3的编址空间:06C0H~06FFH2.2 软件设计2.2.1思路利用8254芯片的计数功能,输出周期为1秒的方波。

单片机实验8255控制交通灯

单片机实验8255控制交通灯
pb8255=0x0c;
delay(20);
pa8255=0xf7;
pb8255=0x0d;
delay(20);
}
pa8255=0xae;
pb8255=0x0b;
delay(400);
while(d2--)
{
pa8255=0x9e;
pb8255=0x07;
delay(20);
pa8255=0xbe;
题目:实验四8255控制交通灯
硬件实验
实验类别:【设计】
班级:
学号:
姓名:
1、实验内容或题目
题目:8255控制交通灯
实验内容:用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
2、实验目的与要求
实验目的:
(1)掌握8051系统中,扩展8255做输出口的方法;
(2)了解芯片8255编程方法。
void delay(unsigned int i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<1000;j++);
}
void main(void)
{ com8255=0x88;
pa8255=0xb6;
pb8255=0x0d;
delay(400); //all red lamp light
pb8255=0x0f;
delay(20);
}
}
}
while(1)
{ uchar d1=5,d2=5;
pa8255=0x75; //west and east green lamp light
pb8255=0x0d; //south and north red lamp light

微机课程设计_应用8255A实现交通灯控制

微机课程设计_应用8255A实现交通灯控制

随着计算机科学技术的不断发展,微型计算机得到了广泛的应用,是人们利用计算机设计和开发各种应用系统的基础。

同时微型计算机接口技术也是一门实践性较强的课程,理论与实践相结合可以更好的掌握知识,这也是这次交通灯系统控制的设计目的。

交通灯是交通安全的关键,已广泛应用于城乡的十字路口,它的有无作为交通安全检查的重要依据,是交通秩序正常进行的有力保障。

十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。

但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。

采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。

它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。

目前,有一种使用“模糊控制”技术控制交通灯的方法。

能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。

但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。

本次的交通灯控制系统主要由8255A并行口、8253定时/计算器、8259单极中断控制器以及74LS139译码器实验等芯片组成。

整个课程设计主要使用8255A的A口和B口模拟十字路口交通灯的闪烁情况。

主要包括以下五个方面:1.课程设计题目名称;2.课程设计要求完成的任务;3.系统设计文档(包括了总体设计、详细设计以及程序设计等文档);4、课程设计总结;5.参考文献本次课程设计以固定的程序实现对交通灯实行控制,没有实现智能化,但智能化是交通控制系统是交通控制系统发展的必然趋势,也是满足日益发展的社会需要。

交通灯设计-8255-8254(附连线图和源代码)

交通灯设计-8255-8254(附连线图和源代码)

西安郵電學院硬件课程设计报告题目:微机原理与接口课程设计;^院系名称:计算机学院专业名称:软件工程班级:软件0802学生姓名:王晶晶学号(8位): 04085047指导教师:刘军设计起止时间:2011年05月23日~2011年05月27日[一、设计目的通过可编程并行接口芯片8255A和可编程定时器/计数器芯片8253/8254以及中断控制器 8259实现十字路口交通灯的模拟控制,进一步掌握并行接口和定时器/计数器及数码管控制的实际应用。

二、设计内容1.用试验台提供的发光二极管(红绿黄各两支,共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模拟交通灯。

2.用可编程并行接口芯片8255A控制模拟交通灯的亮与灭和数码管的倒计时显示。

3.用可编程定时器/计数器芯片8253实现模拟交通灯亮与灭的时间延迟控制。

4.用数码管作为模拟交通灯亮与灭的时间延迟控制的倒计时显示。

'5.用汇编语言编程使六个灯按交通灯变化规律“亮/灭”。

交通灯变化规律要求:① 南北路口的绿灯,东西路口的红灯同时亮30秒,且数码管30秒倒计时显示。

② 南北路口的黄灯闪烁3秒(三亮三灭),同时东西路口的红灯继续亮,且数码管3秒倒计时显示。

③ 南北路口的红灯,东西路口的绿灯同时亮20秒,且数码管20秒倒计时显示。

④ 南北路口的红灯继续亮,同时东西路口的黄灯闪烁3秒(三亮三灭),且数码管3秒倒计时显示。

⑤ 转①重复⑥按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再次按压“东西紧急键”,解除东西紧急通行状态。

(“东西紧急键”可是键盘键,亦可是逻辑开关键)⑦按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再次按压“南北紧急键”,解除南北紧急通行状态。

(“南北紧急键”可是键盘键,亦可是逻辑开关键)"⑧按 <ESC>键退出程序。

备注:1、按键用 8255A 芯片的 PC 口实现或用键盘模拟实现。

2、8253定时到可以通过8259,用中断的方式实现定时器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机原理与应用》课程设计报告题目:简单交通灯控制系统专业:计算机科学与技术班级:09计算机1班学号:09070009姓名:陈民厅天津理工大学中环信息学院计算机工程系2011年12月29 日交通灯控制系统设计摘要设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。

如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。

同时用LED用倒计时方式显示各路口亮灯时间。

关键词:单片机,交通灯,应急开关,LED1绪论1.1设计背景红绿交通灯自动控制系统在城市十字(或丁字)路口有着广泛的应用。

随着社会的进步,人们生活水平的提高,私家车数量会不断增加,对城市交通带来前所为有的压力。

道路建设也将随之发展,错综复杂的道路将不段增多。

为维持稳定的交通秩序,红绿灯自动控制系统将得到更为广泛的应用。

现在实际应用的红绿灯系统中一般没有倒计时功能,使司机和行人不知道指示灯还有多久将会改变现有状态。

本设计应用基本数字电路知识,采用LED灯作红、绿、黄三交通灯,用七段数码管作同步倒计时显示。

实现两方向通行时间不相等的控制并配有倒计时。

1.2设计目的熟悉单片机控制系统,并了解系统设计的一般规律。

掌握8255芯片的结构及编程方法。

熟悉模拟交通灯控制的实现方法。

1.3设计任务及要求设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。

如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。

同时用LED用倒计时方式显示各路口亮灯时间。

2 设计使用的仪器和设备2.1 达爱思教仪本实验采用达爱思教仪型号是Dais-PG206FD2.2八段数码管码管,2.3 8255芯片8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(8255引脚如图1,8255编程模式如图2)。

的中间接口电路。

8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU 连接部分、与外设连接部分、控制部分。

图1 8255引脚图2 8255编程模式3系统硬件设计方案 3.1系统硬件方案框图交通灯系统硬件方案框图如图(3)图3交通灯系统硬件方案框图3.2电路原理图电路原理图是借鉴外部中断实验(急救车与交通灯)修改的如图4,增加P2.1连接K1和P2.2连接K2。

如遇到特殊情况,可拨动应急开关K1,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关K2,系统返回继续运行。

图 4 交通灯与急救车3.3相关知识及原理介绍8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有使用灵活,通用性强。

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两种模式,而这些操作模式完全由控制寄存器的控制字决定.交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。

如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。

同时用LED用倒计时方式显示各路口亮灯时间。

4系统软件设计方案4.1工具介绍汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM 等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。

但实际情况是Linux程序员有时还是需要使用汇编,或者不得不有汇编语言能帮上忙了。

汇编语言源程序的设计步骤:(1)拟制设计任务书(2)建立数学模型(3)确立算法(4)绘制程序流程图(5)编制汇编语言源程序(6)上机调试图5单片机4.2程序流程图交通灯控制系统流程框图如图6,如遇到特殊情况外部中断子程序框图如图7图6主程序流程框图图7 外部中断子程序框图4.3程序源代码及注释CS8255 EQU 0FFFFh ;8255命令控制口OUTSEG EQU 0FFFCh ;字形控制口OUTBIT EQU 0FFFDh ;字位/键扫控制口SECOND EQU 30HNUM EQU 31HTIME EQU 32HTIME1 EQU 33HORG 0000H ;主程序的入口地址LJMP MAIN ;跳转到主程序的开始处ORG 0003H ;外部中断0的中断程序入口地址LJMP INTORG 000BH ;定时器0的中断程序入口地址LJMP T0_INT ;跳转到中断服务程序处MAIN : MOV SP,#50HMOV TCON,#01h ;下降沿, IT0MOV IE,#8FH ;CPU开中断,允许T0中断,T1中断和外部中断1中断 MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1MOV DPTR ,#CS8255MOV A, #80H ;给8255赋初值,8255工作于方式0MOVX @DPTR, AMOV R3,#5LCALL DISPLCALL DELAY;-------------------------------------------Na: SETB TR0 ;启动T0计时器Na0: MOV R3,#02h ;东西方向禁止,南北方向通行MOV P1,#0DBH ;置8255A口,东西南北方向红灯亮Na2:CJNE R3,#00H,Na2 ;比较SECOND中的值是否为0,不为0转到当前指令处执行;-------------------------------------------N00: MOV R3,#0ah ;东西方向禁止,南北方向通行 10sMOV P1,#0ddH ;置8255A口,东西方向红灯亮,南北方向绿灯亮N02:CJNE R3,#00H,N02 ;比较SECOND中的值是否为0,不为0转到当前指令处执行;------黄灯闪烁3秒程序------MOV R3,#3N1: MOV P1,#0DEH ;置P1口,东西,南北方向黄灯亮N11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒N13: MOV P1,#0DFH ; 置P1口,南北方向黄灯灭N14: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N1 ;闪烁时间达3秒则退出;------------------------------------------------------------N2: MOV R7,#00HMOV R3,#0fh ;东西通行,南北禁止 15sMOV P1,#0EBH ; 置P1口,东西方向绿灯灭,南北方向红灯亮N22:CJNE R3,#00H,N22;------黄灯闪烁3秒程序------MOV R3,#03HN3: MOV P1,#0F3H ;置P1口,东西,南北方向黄灯亮N31: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续亮0.5秒N32: MOV P1,#0FBH ; 置P1口,南北方向黄灯灭N33: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N3 ;闪烁时间达3秒则退出;---------------------------N41: MOV R7,#00HMOV R3,#03h ;东西通行,南北禁止 3sMOV P1,#0bBH ; 置P1口,东西方向绿灯灭,南北方向红灯亮N42:CJNE R3,#00H,N42SJMP N00;------1秒延时子程序-------T0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值MOV TH0,#0F1HINC R4INC R5CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序 MOV R5,#00H ;R5清零DEC R3 ;倒计时初值减一T01: ACALL DISP ;调用显示子程序RETI ;中断返回INT: PUSH PSWMOV TIME1,R3MOV NUM,P1MOV P1,#1BHI1:;CALL DELAY1JB P3.1,I1MOV R3,TIME1MOV P1,NUMPOP PSWRETI;------显示子程序------DISP:MOV B,#0AHMOV A,R3 ;SECOND中值二转十显示转换DIV ABMOV R0,AMOV R2,#00000010b;Loop:MOV DPTR,#OUTBITCLR AMOVX @DPTR,A ;关所有八段管MOV DPTR,# LEDMAPMOV A,R0MOVC A,@A+DPTRMOV DPTR,#OUTSEGMOVX @DPTR,AMOV DPTR,#OUTBITMOV A,R2MOVX @DPTR,A ;显示一位八段管MOV R6,#01CALL DELAYMOV A,R2 ;显示下一位RR AMOV R2,AMOV DPTR,# LEDMAPMOV A,BMOVC A,@A+DPTRMOV DPTR,#OUTSEGMOVX @DPTR,AMOV DPTR,#OUTBITMOV A,R2MOVX @DPTR,A ;显示一位八段管MOV R6,#01CALL DELAYMOV DPTR,#OUTBITCLR AMOVX @DPTR,A ;关所有八段管RET;------延时4MS子程序---------- DELAY: MOV R1,#0AHLP: MOV R7,#64HNOPLP1: DJNZ R7,LP1DJNZ R1,LPRETDELAY1:MOV TIME,#0FHLP4: MOV R1,#0FFHLP2: MOV R7,#0FFHNOPLP3: DJNZ R7,LP3DJNZ R1,LP2DJNZ TIME,LP4RETLEDMAP: ;八段管显示码DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8HDB 080H,090H,088H,083H,0C6H,0A1H,086H,08EHEND5硬件、软件调试步骤5.1安装注意事项首先观察原理图,根据电气要求进行合理的整体布局,最大限度的减少叉线和飞线,降低干扰。

相关文档
最新文档