单片机仿真交通灯实验

合集下载

交通信号灯控制实验——单片机实验报告

交通信号灯控制实验——单片机实验报告

实验名称:交通灯信号控制实验一、实验目的:1.学习P1口的使用方法;2.学习延时子程序的编写;3. 学习单片机的开发环境及流程。

二、实验内容及步骤:以P1口作为输出口,控制6个发光二极管,模拟交通信号灯的管理。

在实验仪上选择两组红、黄、绿指示灯,代表交通信号灯。

要求:设有一个十字路口为东西南北方向,其中东西方向为支路,南北方向为主路。

初始状态为4个路口的红灯全亮。

之后,南北路口的绿灯亮,东西路口的红灯亮。

南北路口方向通车,延时20秒后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁5次后红灯亮。

而同时东西方向路口的绿灯亮,东西方向开始通车,延时10秒后,东西路口的绿灯熄灭,而黄灯开始闪烁。

闪烁5次后,再切换到南北路口的绿灯亮,东西路口的红灯亮。

之后重复上述过程。

三、实验电路四、程序流程图五、单片机程序(*.lst文件)A51 MACRO ASSEMBLER JIAOTONGDENG 04/17/2010 11:17:58 PAGE 1MACRO ASSEMBLER A51 V7.01OBJECT MODULE PLACED IN jiaotongdeng.OBJASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE jiaotongdeng.asm SET(SMALL) DEBUG EPLOC OBJ LINE SOURCE0000 1 ORG 0000H230000 759018 4 START: MOV P1,#00011000B0003 1155 5 CALL DALY1 ;调用0.5s延时子程序0005 7590DB 6 MOV P1,#11011011B0008 1133 7 CALL DALY;调用20s子程序000A 7805 8 MOV R0,#5H000C 74DD 9 LOOP1: MOV A,#11011101B ;P1口状态000E F590 10 MOV P1,A0010 1155 11 CALL DALY1 ; 调用0.5s延时子程序0012 74DF 12 MOV A,#11011111B0014 F590 13 MOV P1,A0016 1155 14 CALL DALY1 ;调用0.5s延时子程序0018 D8F2 15 DJNZ R0,LOOP1001A 747E 16 MOV A,#01111110B001C F590 17 MOV P1,A001E 1144 18 CALL DALY2 ;调用10s延时子程序0020 7805 19 MOV R0,#5H0022 74BE 20 LOOP2: MOV A,#10111110B0024 F590 21 MOV P1,A0026 1155 22 CALL DALY1 ;调用0.5s延时子程序0028 74FE 23 MOV A,#11111110B002A F590 24 MOV P1,A002C 1155 25 CALL DALY1 ;调用0.5s延时子程序002E D8F2 26 DJNZ R0,LOOP20030 020000 27 LJMP START2829 ;20s延时子程序0033 7C64 30 DALY:MOV R4,#1000035 7B64 31 DELAY1:MOV R3,#1000037 7A14 32 DELAY2:MOV R2,#200039 792D 33 DELAY3:MOV R1,#45003B D9FE 34 DELAY4:DJNZ R1,DELAY4003D DAFA35 DJNZ R2,DELAY3003F DBF6 36 DJNZ R3,DELAY20041 DCF2 37 DJNZ R4,DELAY10043 22 38 RET3940 ;10s延时子程序0044 7C64 41 DALY2:MOV R4,#1000046 7B64 42 DEAY1:MOV R3,#1000048 7A0A43 DEAY2:MOV R2,#10004A 792D 44 DEAY3:MOV R1,#45004C D9FE 45 DEAY4:DJNZ R1,DEAY4004E DAFA46 DJNZ R2,DEAY30050 DBF6 47 DJNZ R3,DEAY20052 DCF2 48 DJNZ R4,DEAY10054 22 49 RET5051 ;0.5s延时子程序0055 7C64 52 DALY1: MOV R4,#1000057 7B64 53 DEY1: MOV R3,#1000059 7A19 54 DEY2: MOV R2,#25005B DAFE 55 DEY3: DJNZ R2,DEY3005D DBFA56 DJNZ R3,DEY2005F DCF6 57 DJNZ R4,DEY10061 22 58 RET04/17/2010 11:17:58 PAGE 25960 END04/17/2010 11:17:58 PAGE 3SYMBOL TABLE LISTING------ ----- -------六、实验总结及感想本次实验主要学习了单片机的开发环境和程序调试及运行两种模式,并通过交通灯信号控制实验进行了实例演练。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告简介本实验通过使用单片机设计并实现一个交通灯控制系统,模拟城市道路上的交通信号灯。

实验过程中,我们通过编程控制不同灯的亮灭状态,实现交通灯的循环变换,以此来模拟车辆和行人的行进。

实验材料•单片机•LED灯•电阻•连线•电源实验过程及结果1. 电路连接首先,我们根据实验需要将单片机和LED灯等材料进行连接。

具体连接方式如下:- 将电阻连接到单片机的IO口上,起到限流的作用。

- 将LED灯连接到电阻的另一端。

- 将单片机通过连线与电源进行连接。

2. 程序设计接下来,我们需要编写程序来实现交通灯的循环变换。

使用C语言编程,通过控制IO口的高低电平来控制LED灯的亮灭状态。

以下是程序的主要逻辑:#include <reg52.h>sbit redLed = P1^0; // 红灯sbit yellowLed = P1^1; // 黄灯sbit greenLed = P1^2; // 绿灯void delay(unsigned int t){while(t--);}void main(){while(1){// 红灯亮,其他灯灭redLed = 0;yellowLed = 1;greenLed = 1;delay(50000);// 红灯亮黄灯亮,绿灯灭redLed = 0;yellowLed = 0;greenLed = 1;delay(20000);// 绿灯亮,其他灯灭redLed = 1;yellowLed = 1;greenLed = 0;delay(50000);// 黄灯亮,其他灯灭redLed = 1;yellowLed = 0;greenLed = 1;delay(20000);}}3. 实验结果与分析通过实验,我们观察到LED灯按照我们设计的程序循环地变换亮灭状态,从而实现了交通灯的模拟效果。

红灯、黄灯、绿灯在规定的时间间隔内依次亮起,并在该时间间隔结束后熄灭。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告一、实验目的二、实验原理三、实验器材四、实验步骤五、实验结果六、实验分析与讨论七、实验总结一、实验目的:本次单片机交通灯实验的主要目的是通过使用单片机控制LED灯的亮灭,模拟交通信号灯的运行状态,并能够正确地掌握单片机编程技巧和硬件连接技术。

二、实验原理:本次交通灯实验采用了单片机作为中央处理器,通过编写程序控制LED灯的亮灭来模拟交通信号灯。

在程序中,我们需要使用到延时函数和条件判断语句。

具体来说,在红绿黄三个LED灯之间切换时,需要设定一个时间段,并在该时间段内循环执行红绿黄三个LED灯亮度变化的循环语句。

三、实验器材:1. 单片机开发板一块;2. LED 灯若干;3. 杜邦线若干。

四、实验步骤:1. 将红色 LED 灯连接至 P0 口;2. 将黄色 LED 灯连接至 P1 口;3. 将绿色 LED 灯连接至 P2 口;4. 将单片机开发板与电脑连接,打开 Keil 软件;5. 编写程序,将红色 LED 灯亮起来;6. 编写程序,将黄色 LED 灯亮起来;7. 编写程序,将绿色 LED 灯亮起来;8. 编写程序,模拟交通信号灯的运行状态。

五、实验结果:在完成了上述步骤后,我们成功地模拟出了交通信号灯的运行状态。

具体来说,在程序中我们设定了一个时间段为10s,在这个时间段内,红灯亮 5s,黄灯亮 2s,绿灯亮 3s。

在这个时间段结束后,循环执行该过程。

六、实验分析与讨论:通过本次交通灯实验,我们学习到了如何使用单片机控制LED灯的亮灭,并能够正确地编写程序模拟交通信号灯的运行状态。

在编写过程中需要注意以下几点:1. 在使用延时函数时要注意时间单位和精度;2. 在编写条件判断语句时要注意逻辑结构和语法规范;3. 在硬件连接时要注意杜邦线的颜色对应关系和插口位置。

七、实验总结:本次单片机交通灯实验是一次非常有意义的实践活动。

通过此次实验,我们掌握了单片机编程技巧和硬件连接技术,并能够正确地模拟交通信号灯的运行状态。

单片机交通灯实验报告(一)

单片机交通灯实验报告(一)

单片机交通灯实验报告(一)引言概述:交通灯是城市交通管理的重要组成部分,通过控制红绿灯的变化,实现车辆和行人的有序通行。

本文将详细介绍单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。

正文:一、硬件设计1. 确定电路所需元件:单片机、LED灯、电阻等。

2. 组装硬件电路:按照电路图进行元件的连接,确保电路的正确连接。

3. 设计适当的电源:为单片机和LED灯提供稳定的电源。

二、程序编写1. 定义程序所需的IO口:确定控制LED灯的IO口。

2. 初始化单片机:设置单片机的工作频率和中断。

3. 设计交通灯的流程控制:根据实际的交通灯变化规律,设计程序的流程控制。

4. 编写交通灯控制的函数:使用if-else语句或switch-case语句编写函数控制交通灯的变化。

5. 调试程序:通过单片机调试工具或仿真软件,检查程序运行的正确与否。

三、实验结果分析1. 观察实验现象:通过实验现场观察交通灯的变化,记录每一种灯亮的时间和顺序。

2. 分析实验结果:根据实验记录,分析交通灯的工作原理和实现的准确性。

3. 比较与设计要求的符合度:将实验结果与设计要求进行比较,评估实验的完成度。

4. 探讨存在问题与改进方向:分析实验中可能存在的问题,并提出改进措施。

四、小结本文介绍了单片机交通灯实验的设计与实现。

通过硬件设计和程序编写,实现了交通灯的变化控制。

通过实验结果分析,我们可以得出实验的有效性和可行性。

当然,实验中也存在一些问题,需要进一步改进。

在后续的实验中,我们将进一步完善交通灯的控制,提高其实际应用的稳定性和可靠性。

总结:本文详细介绍了单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。

通过该实验,我们对交通灯的工作原理和控制方法有了更为深入的了解,并对实验的经验和教训进行了总结。

相信在今后的学习和实践中,我们能够更好地应用单片机技术,为实现交通管理的智能化和高效化作出贡献。

《单片机原理及应用》基于51单片机的交通信号灯模拟控制系统实验

《单片机原理及应用》基于51单片机的交通信号灯模拟控制系统实验

《单片机原理及应用》基于51单片机的交通信号灯模拟控制系统实验一、实验目的和要求1.掌握单片机基本资源使用。

2.掌握单片机电路原理图绘制和仿真。

3.掌握单片机C语言软件开发以及联合仿真。

二、实验内容和原理实验内容:1.根据题目绘制单片机电路原理图。

2.绘制程序流程图并编写C语言程序3.在仿真程序中进行联合仿真,最后提交实验报告三、主要仪器设备keilC,proteus。

四、操作方法与实验步骤4.1 题目要求用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。

4.2 系统设计思路南北的红,绿,黄发光二极管与单片机AT89C51单片机的P1.0,P1.1,P1.2相连。

东西的红,绿,黄发光二极管与单片机AT89C51单片机的P1.4,P1.5,P1.6相连。

因此改变单片机P1口的输出编码就可控制交通灯的输出状态。

程序中实现交通灯正常运行过程,两种异常用外中断0和外中断1管理,外接开关模拟异常发生,在中断服务程序中实现异常处理,在主程序中开放外中断0和外中断1,设置为边沿触发方式。

时间单位采用500ms信号,由定时/计数器0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方式1。

4.2 电路图绘制(包含详细的参数选定文字和图像叙述)C1=1nF,C2=1nF,C3=1nF,R1=300,R2=300,R3=300,R4=300,R5=300,R6=300,R7=300,R8=300,R9=300,R10=300,R11=300,R12=300,R13=300,时间单位=500ms。

4.3 C程序编制(包含详细的文字和程序流程图)4.3 仿真分析(包含文字和图像叙述)状态1:东西绿灯,南北红灯,20s。

状态2:东西黄灯,南北红灯,3s。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告实验目的:1.熟悉单片机的基本工作原理和编程方法。

2.学习如何使用单片机控制交通灯的运行。

3.加深对电子元器件和电路原理的理解和掌握。

实验器材:1.51系列单片机开发板:包括单片机主控板、显示器板、外部扩展板等。

2.LED灯:红色、黄色、绿色各一颗。

3.电阻:用于限流。

4.连接线:用于连接各个电子元器件。

实验原理:在交通中,红灯代表停止、黄灯代表警告、绿灯代表通行。

在本实验中,我们将使用单片机控制三个LED灯实现交通灯的运行。

具体原理如下:1.使用单片机的IO口控制LED灯的亮灭。

2.根据交通灯的运行状态,通过改变LED灯的亮灭顺序来模拟交通的运行。

实验步骤:1.连接电路:将三个LED灯连接到单片机的IO口,并通过电阻限流。

2.编写程序:使用C语言编写程序,在主函数中设置交通灯的运行状态和亮灭顺序。

3.烧写程序:将编写好的程序烧写到单片机中。

4.运行实验:启动单片机,观察LED灯的亮灭情况,验证交通灯是否能正常工作。

实验结果:经过实验,我们成功地实现了单片机交通灯的控制。

在程序运行过程中,红灯先亮,表示停止;然后黄灯亮,表示警告;最后绿灯亮,表示通行。

整个过程循环不断,符合实际交通灯的运行规律。

实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法,掌握了使用单片机控制交通灯的技巧。

同时,我也加深了对电子元器件和电路原理的理解和掌握。

这些知识将对我今后的学习和工作产生积极影响。

然而,在实验过程中也遇到了一些问题。

比如,如果LED灯连接不正确或程序编写有误,交通灯可能无法正常运行。

因此,在进行单片机实验时,我们需要仔细检查电路连接和程序编写,确保一切正常。

总之,单片机交通灯实验是一次充满趣味和挑战的实践活动。

通过这次实验,我不仅学到了许多知识,而且培养了动手能力和实践能力。

希望将来能有更多这样的实验机会,继续提升自己的电子技术水平。

单片机模拟交通灯综合实训

单片机模拟交通灯综合实训

C51单片机模拟交通灯综合实训背景:设计模拟交通灯,东南西北各有红绿黄3只led灯。

工作状态:初始化全部灯亮,并闪烁三次;东西绿灯亮20s(南北红灯亮),黄灯亮并闪烁3次(每次0.5s),然后红灯亮,切换到南北绿灯亮,时间与点亮规律同东西方向,循环重复上述过程。

任务:1设计流程说明。

2系统框图设计。

3硬件电路设计。

4 软件设计及调试。

P1、简要说明设计流程及各环节的工作内容和目的。

1、确定任务:对任务进行分析,确定功能、性能要求,制定总体方案2、总体设计:系统功能分配,确定软件硬件功能关系,拟定调试方案3、硬件设计:绘制硬件原理图,绘制印制板图,配置元器件,硬件功能分配4、软件设计:确定算法与数据结构,程序模块划分,绘制程序流程图,程序编写与仿真调试5、系统调试:包括硬件调试和软件调试P2、根据系统需求,设计并画出系统功能模块框图,说明产品总体工作原理和各模块的功能。

交通灯模块工作原理是通过单片机控制实现灯的亮灭功能是实现东西南北的红、黄、绿灯的亮灭情况数码管模块工作原理是从单片机I/O口接出,实现数字显示功能是实现计时20S倒数和3秒倒数P3、根据系统框图,设计单片机应用系统和接口驱动电路图,标注电路中元器件型号和参数。

电路图用到得元器件如下表设计单片机应用系统和接口驱动电路图P4、编写软件代码,仿真、下载运行验证,实现要求的功能1.软件代码#include <reg51.h>unsigned char second=20, time0 =100 ,time1=50,county=6;unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char con[]={0xfd,0xfe};sbit NB_G=P1^0;sbit NB_Y=P1^1;sbit NB_R=P1^2;sbit DX_G=P1^3;sbit DX_Y=P1^4;sbit DX_R=P1^5;bit DXT=1;unsigned int i,j;void showtime();main(){for(j=6;j>=1;j--){P0=~P0;for(i=50000;i>0;i--);}P0=0xFF;for(i=50000;i>0;i--);NB_R=0;DX_G=0;showtime();TMOD=0X11;TL0=-10000;TH0=-10000>>8; TL1=-10000;TH1=-10000>>8;EA=1;ET0=1;ET1=1;TR0=1;while(1);}void isr_time0() interrupt 1{ showtime();TL0=-10000;TH0=-10000>>8; time0--; showtime(); if (time0==0){time0=100;second--;if (second==0){TR0=0; TR1=1;second=3;showtime();if (DXT){ DX_G=1;DX_Y=0; }else { NB_G=1;NB_Y=0; } }}}void isr_time1()interrupt 3{TL1=-10000;TH1=-10000>>8;time1--;showtime();if(time1==0){time1=50;if (county%2!= 0){second--;}county--;if(county){if(DXT) DX_Y=~DX_Y;else NB_Y=~NB_Y; }else{county=6;if (DXT){ DX_Y=1;DX_R=0; NB_R=1;NB_G=0;} else{DX_R=1 ;DX_G=0; NB_Y=1;NB_R=0;}TR1=0;TR0=1;DXT=~DXT;second=20;showtime();}}}void showtime(){unsigned int i,j;unsigned char time[2];time[0]=second/10;time[1]=second%10;P2=con[0];P0=seg[time[0]];for(j=100;j>0;j--);P2=con[1];P0=seg[time[1]];}2.仿真电路如图所示M1、分析并列出软件设计中需用到的单片机特殊功能寄存器(SFR)及其功能设置。

单片机交通灯实验报告(二)2024

单片机交通灯实验报告(二)2024

单片机交通灯实验报告(二)引言概述本报告旨在介绍单片机交通灯实验的进一步研究。

通过对单片机交通灯实验的深入探讨,我们将了解交通信号灯电路的设计原理、控制逻辑以及实际应用的相关知识。

本文将分为五个大点进行阐述,包括:电路设计、控制逻辑编程、硬件连接、功能扩展和实验结果分析。

正文一、电路设计1. 确定交通信号灯的基本电路结构2. 选择适当的电子元件并进行电路布局3. 绘制电路原理图和PCB布局图4. 按照电路设计进行焊接和组装二、控制逻辑编程1. 理解交通信号灯的控制逻辑2. 学习并掌握单片机编程语言3. 根据控制逻辑编写程序代码4. 调试程序的运行,确保交通信号灯按照预期进行切换5. 优化控制逻辑,提高程序效率和稳定性三、硬件连接1. 连接交通信号灯的LED灯及其它电子元件2. 理解并实现灯光的正反相控制3. 使用适当的电阻进行电流限制4. 连接并配置单片机与电路的通信接口5. 建立单片机与计算机之间的连接,方便程序下载与调试四、功能扩展1. 添加电子组件以实现交通信号灯的更多功能2. 尝试不同的交通灯控制算法3. 增加人车辨别传感器以实现智能化控制4. 加入音效与声光提示功能,提高交通信号灯的可视性和可听性5. 设计并实现交通流量的实时监测和统计功能五、实验结果分析1. 对交通信号灯的各项功能进行实验验证2. 分析实验结果,评估系统的性能和稳定性3. 总结实验中遇到的问题和解决方案4. 提出改进交通信号灯设计的建议总结通过本文详细的阐述,我们了解了单片机交通灯实验的电路设计、控制逻辑编程、硬件连接、功能扩展以及实验结果分析等方面的知识。

这些内容不仅对于我们更深入地了解交通信号灯的工作原理和应用具有重要意义,而且为我们开展相关实际项目提供了指导和启示。

希望本报告能够帮助读者更好地理解和应用单片机交通灯实验。

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

实验报告实验名称:交通灯实验
姓名
班级
日期
实验要求:
1. 请使用单片机系统主机板和单片机系统键盘、显示板设计一个硬件系统,最终实
现一个交通路口红绿灯的控制。

用两个数码管显示秒,8个LED灯分成四组,分别作为十字交叉路口的红绿灯。

2. 相对双向绿灯的最后几秒时,绿灯要闪烁,即亮灭交替,亮灭时间均为0.5秒,
然后变成红灯。

3. 每组同学可自行设计进行连接,形成一个单片机硬件系统。

4. 模拟调试完成后,用STC-ISP下载编程软件将生成的*。

HEX文件在线下载到单片
机中。

5.下载后,按复位键执行程序,检验程序运行结果。

硬件连线方案:
程序流程图:
源代码:
#include<reg51.h> //51单片机头文件声明
unsigned char code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //定义无符号数组,定义的数据要放在ROM(程序存储区)里面
sbit dula=P1^3; //特殊功能位定义,数码管段码控制信号
sbit G1=P1^4; //数码管位选控制信号
sbit c=P1^5; //c表示P1.0口,地址最高位
sbit b=P1^6; //地址次高位
sbit a=P1^7; //地址最低位
sbit xl=P2^0; //特殊功能位声明,xl表示P2.0口
sbit xh=P2^1; //
sbit yl=P2^2;
sbit yh=P2^3;
sbit sl=P2^4;
sbit sh=P2^5;
sbit zl=P2^7;
sbit zh=P2^6;
char count=100; //定时时间取10ms,循环100次即为1s
unsigned char ssx=14; //秒上下,为上下绿灯亮时倒计数
unsigned char szy=10; //秒左右,为左右绿灯亮时倒计数
char sx=1; //方向标志,上下绿灯亮
void delay(char x) //延时函数,通过for循环进行延时
{
char a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void shumaguanxianshi() //数码管显示函数
{
if(sx==1) //方向标志假如为上下
{ P0=tab[ssx/10]; dula=1; //选择2号管显示秒十位(上下) c=0;b=1;a=0; G1=1;
delay(2); //在晶振频率12MHz,延时2ms。

G1=0;
P0=tab[ssx%10]; dula=1; //选择3号管显示秒个位(上下)c=0;b=1;a=1; G1=1;
delay(2);
G1=0;
}
if(sx==0) //方向标志假如为左右
{ P0=tab[szy/10]; dula=1; //选择4号管显示秒十位(左右) c=1;b=0;a=0; G1=1;
delay(2);
G1=0;
P0=tab[szy%10]; dula=1; //选择5号管显示秒个位(左右)c=1;b=0;a=1; G1=1;
delay(2);
G1=0;
}
}
void xiaodeng() //小灯函数
{
if(sx==1) //判断方向是否为上下
{ xl=0; xh=1; sl=0; sh=1;
yl=1; yh=0; zl=1; zh=0; //红绿灯亮灭,0表示亮,1表示灭。

上下绿灯,左右红灯 if(ssx<=5) //当左数码管显示5秒,控制绿灯闪烁
{ if(count<=50) //计数器时间小于0.5s
{xl=1;sl=1;} //绿灯灭
}
}
if(sx==0)
{ xl=1; xh=0; sl=1; sh=0;
yl=0; yh=1; zl=0; zh=1;
if(szy<=5)
{if(count<=50)
{yl=1;zl=1;}
}
}
}
initial() //初始化函数
{
TMOD=0x01; //设置定时器为工作方式1
TH0=0xD8; //在晶振频率12MHz下,赋初值
TL0=0xF0;
EA=1; //允许CPU中断
G1=0; //位选信号G1无效
TR0=1; //启动定时器T0
ET0=1; //允许定时器T0中断
}
main() //主函数
{
initial();//调用初始化函数
while(1) //无限循环,用于循环点亮小灯和显示数码管{
shumaguanxianshi(); //调用数码管显示函数xiaodeng(); //调用小灯函数
}
}
t0_int() interrupt 1 //中断函数,T0中断
{
TH0=0xD8; //重新赋初值
TL0=0xF0;
count--; //计数器减1
if(count==0) //判断计数器是否记满100次
{
count=100; //定时时间重新取值
if(sx==1) //假如方向标志是上下
{
ssx--; //时间倒记时
if(ssx==0) //左数码管显示0
{
sx=0; //方向标志取反,方向为左右
szy=10; //右数码管取值10s
}
}
if(sx==0) //假如方向标志是左右
{
szy--; //时间倒记时
if(szy==0) //右数码管显示0
{
sx=1; //方向标志取反,方向为上下
ssx=14; //左数码管取值10s
}
}
}
}
每个成员完成的工作:独立完成。

实验总结:。

相关文档
最新文档