您的当前位置:首页正文

交通灯设计课程设计说明书

2023-10-19 来源:好走旅游网


课 程 设 计 说 明 书

课程名称: 《单片机技术》 设计题目: 交通灯设计 学 院: 电子信息与电气工程学院 学生姓名: 学 号: 专业班级: 指导教师:

2015年5月5日

课 程 设 计 任 务 书

设计题目 学生姓名 设计要求: 利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示 时间。控制十二个发光二极管燃灭,模拟交通灯管理。 1、具有电源开关及指示灯,有复位按键; 2、开始执行程序,初始态为四个路口的红灯全亮之后,南北路口的绿灯亮东西路口的红灯亮,南北路口方向通车。延时一段时间后南北路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,南北路口红灯亮,而同时东西路口的绿灯亮,东西路口方向开始通车,延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,再切换到南北路口方向,之后重复以上过程。 学生应完成的工作: 1.熟悉并了解交通灯的各个模块并且将所有模块连接并仿真 2.软件的编写和做成PCB板 参考文献阅读: [1] 张毅刚.单片机原理及应用[M].北京:高等教育出版社,2010. [2] 张鑫,华臻,陈书谦.单片机原理及应用[M].电子工业出版社,2008. [3] 张洪润,张亚凡.单片机原理及应用[M].清华大学出版社,2005. 工作计划: 交通灯设计 郑世健 所在学院 安阳工学院 专业、年级、班 12级通信工程1班 2015年4月20日—2015年4月21日: 熟悉课题 查阅资料 2015年4月21日—2015年4月22日: 根据课题需要,拟定系统硬件方案 2015年4月22日—2015年4月23日: 讨论,优化并确定系统硬件方案 2015年4月23日—2015年4月24日: 讨论并确定程序流程,逐步开始撰写课程设计报告 2015年4月24日— 2015年4月25日: 讨论、优化最终完成系统软件设计 2015年4月25日—2015年4月29日: 制版 任务下达日期:2015 年4月 20日 任务完成日期:2015 年4月 30 日 指导教师(签名): 学生(签名):

交通灯设计

摘 要:交通在人们的日常生活中占有重要的地位,交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果本系统。本系统硬件部分由单片机系统、LED灯、复位电路、晶振电路、七段数码管组成;具有基本的倒计时、时间设置、紧急情况处理等功能。软件部分由计时循环主函数和4个黄绿灯状态子函数以及数码管计时显示子函数3个部分组成。本系统采用单片机AT89S52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。 关键词:LED交通灯;AT89S52单片机;时钟电路;复位电路

目 录

1.设计背景 .................................................................................................. 0 课题背景.................................................................................................. 0 课题意义.................................................................................................. 0 2.设计方案 .................................................................................................. 3 系统方案的选择与论证 ......................................................................... 3 系统方案的总体设计 ............................................................................. 3 3.方案实施 .................................................................................................. 4 系统硬件方案实施 ................................................................................. 4 电源电路.................................................................................................. 4 时钟电路.................................................................................................. 4 复位电路.................................................................................................. 5 交通灯输出控制电路 ............................................................................. 5 数码管显示电路 ..................................................................................... 6 系统软件方案实施 ................................................................................. 7 软件设计.................................................................................................. 7 系统仿真与调试 ..................................................................................... 7 4.结果与结论.............................................................................................. 9 设计结果.................................................................................................. 9 硬件测试与结果 ..................................................................................... 9

软件测试与结果 ..................................................................................... 9 设计结论.................................................................................................. 9 5.收获与致谢............................................................................................ 10 6.参考文献 ................................................................................................ 11 7.附录 ........................................................................................................ 12

课题背景

单片机自20世纪70年代问世以来,已对人类社会产生了巨大的影响。由于其具有集成度高、处理能力强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域得到广泛的应用,单片机技术开发和应用水平已成为一个国家工业化发展水平的标志之一。单片机中断功能可提高CPU的效率;可实现实时处理,以满足实时控制要求;可及时处理故障,提高单片机的可靠性。单片机体积小、价格低、应用方便、稳定可靠,因此,单片机的普及给工业自动化等领域带来了很大的变化,由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当的增加一些必要的外围扩展电路,就可以灵活的构成各种应用系统。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。

单片机在结构上的设计主要是面向控制的需要,因此,它在硬件结构、指令系统和IO能力等方面均有其独特之外,其显著的特点之一就是具有非常有效的控制功能,为此,又称为微控制器MCU(Micro Controller Unit)。单片机除了具备一般微型计算机的功能外,为了增强实时控制能力,绝大部分单片机的芯片上还集成有定时器、计数器,某些增强型单片机还带有AD转换器、DA转换器、语音控制、WDT看门狗、等功能部件。所以,单片机不但与一般的微处理机一样,是一个有效的数据处理机,而且还是一个功能很强的过程控制机。

课题意义

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

0

1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥

挤造成的经济损失,同时也减小了工作人员的劳动强度。

随着车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。

在大、中城市,十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东

1

西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞。

2

2.1系统方案的选择与论证

方案一复位电路采用下拉电阻按键复位。晶振电路由12Mhz晶振芯片及两个瓷片电容构成,按键电路由按键连接单片机中断控制引脚进行紧急状态控制。用74LS373和74LS164来驱动七段数码管。单片机P1口输出低电平信号控制红绿灯。

方案二复位电路、晶振电路、按键电路与方案一相同。但通过编程用单片机的P2口直接驱动2位共阳极七段数码管的段选,用P0.0、P0.1控制数码管的位选,由P1口输出低电平信号控制红黄绿灯。

经过讨论,方案二没有用74LS373和74LS164,使用硬件少,占用资源少。相对方案一简单实用,并且便于焊接制作。综合考虑采用方案二。

2.2系统方案的总体设计

交通控制系统主要控制A、B两车道的交通,以AT89S52单片机为核心芯片,通过控

制三色LED的亮灭来控制各车道的通行;根据设计要求,制定总体设计思想如下。

1、正常情况下运行主程序,采用延时子程序的反复调用来实现各种定时时间。

2、一道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置中断为低优先级中断。 总体设计框图如图所示。

晶振电路 复位电路 AT89S52 单片机 七段数码管倒计 时显示电路 按键电路 A、B车道LED 显示电路

3

系统硬件方案实施

R1为保护电路并且稳定电压减少电路振荡,R5为了使输出电压稳定,220V交流电经过变压器,再经过桥堆2W10整流,然后由电容C1滤波后变为脉动比较稳定的直流电,最后通过三端稳压器7805输出稳定的5V直流电压。电源电路如图3.2所示。

时钟电路由两个电容及一个11.0592MHZ晶振组成,晶振两端接XTAL1和XTAL2,用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。常有的时钟电路设计有两种方式,一种是内部时钟方式,一种是外部时钟方式。本设计采用的是内部时钟方式。时钟电路对硬件电路的连接要求较高。为了提高温度温度性,应该选用温度稳定性能好的电容。具体设计的时钟电路如图3.3。

4

图3.3 时钟电路

复位电路选用手动复位,整个电路一端接电源,另一端接芯片RST引脚上,该模块是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。按键电平复位电路,接至单片机复位端。 复位电路如图。

图3.4 复位电路

电路

道口交通灯指示采用高亮度红、黄、绿发光二极管进行提示。P1.2控制南北绿灯,P1.1控制南北黄灯,P1.0控制南北红灯,P1.5控制东西绿灯,P1.3控制东西红灯,P1.4控制东西黄灯。其图如图3.5所示。

5

图3.5 LED显示模块

道口通行剩余时间采用高亮红色7段LED发光数码管显示,P2.0到P2.7控制位选,P0.0和P0.1控制段选。采用共阳数码管。其显示电路如图3.6所示。

图3.6 数码管显示模块

6

系统软件方案实施

在有车车道的放行的中断服务程序首先要保护现场,所以需要用到延时

子程序,子程序采用定时器0方式1查询式定时,定时器定时50ms,确定50ms循环20次,从而获得1S的延时时间,保护现场时还需关中断。

主程序采用查询方式定时,调用0.5S延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1查询式定时,定时器定时50ms,确定50ms循环20次,从而获得1s的延时时间。

开中断,由软件查询外中断1,判别哪一道有车,再根据查询情况执行相应的服务。待交通灯信号出现后,保持17s的延时,然后,关中断,恢复现场,再开中断返回主程序。程序流程图如下所示。

初始化 紧急状态 开始 所有路口红灯亮5s 南北绿灯亮,东西红灯亮 27s 是否按下中 断按钮 南北黄灯闪,东西红灯亮3s Y 所有路口红灯亮 南北红灯亮,东西绿灯亮22s 南北红灯亮,东西黄灯闪 3s 图3.7 主程序流程图 图3.8 中断程序流程图

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件

7

中国总代理为广州风标电子技术有限公司)。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

Proteus是目前最好的仿真单片机及外围器件的工具。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

首先运用proteus软件画出系统电路图,然后用Kill51软件把编好的C语言程序转换为Hex文件。在proteus软件中把程序添加到单片机中进行仿真。在刚开始仿真时数码管显示错误,无规律闪烁。经过分析发现是程序中数码管段码编写错误,数码管分共阴与共阳,不同的数码管有不同的编码。通过上网查阅资料对程序进行了修改。调试之后,数码管计数正常,同时交通灯发光二极管也计数到0而明灭。按下紧急通车中断按钮时,所有红灯亮,数码管七段全部显示。仿真成功。

8

由于硬件条件问题和焊接问题,最后焊接出来的板子不能工作。

程序开始执行,四个路口的红灯全亮5s之后,东西路口的红灯亮30S,南北路口的绿灯亮30S东西路口的红灯亮,东西方向不通车,南北路口方向通车。30S之后南北路口的绿灯熄灭,东西路口红灯不变,南北路口黄灯闪烁3S之后,东西路口绿灯亮,南北路口红灯亮,所以东西路口方向通车。25S之后东西路口绿灯熄灭南北路口红灯不变,东西路口黄灯闪烁3S之后,开始交换。之后重复以上过程。经过观察各检测,可以看到整个系统的功能都能达到我的设计要求。

从开始老师对单片机的整体介绍及其应用前景,就对单片机产生了浓厚的兴趣,并利用自己的课余时间提前学习有关单片机的基本知识。本次设计经历让我对交通控制系统有了更深入的认识,也了解到现有交通控制系统存在的不足。希望通过努力,最终能将本系统修改为可以指挥交通的有理路知识,却无半点的实际操作经验。理论和实践相结合,从中更懂得理论是实践的基础,实践又能检验理论的正确性,对以后继续学习将会产生巨大的帮助和影响。

9

在设计的过程中很多平时想不到的问题都会出现,我也学到了许多解决问题的方法。尤其是有专业的导师指导,让我受益非浅。通过对单片机课程的学习,让我对用单片机控制电路和单片机在现实生活中的重要作用有了很深的了解。课堂上老师讲解的知识在我们与课程同步的实验中得到了巩固和提高,通过这次的课程设计更是升华了我们平时学习中所获得的知识。我发现这项技术在我们以后的工作和学习中将起到很大的作用,会让我们为社会作出更大的贡献。课程设计要求我们立足实际,观点新颖,多些创新,尽量满足现实情况的前提下开动脑筋,大胆别致的作出更好的作品。经过研究与学习终于作出了自己的设计,在完成设计的过程中查阅了很多资料,把课本的知识综合的系统的应用在我的设计之中。在这次课程设计中我收获很多。首先,在知识方面:经过这次课程设计,我对大学几年中所学的专业知识有一个良好的回顾和总结。平时学的知识在这里得到了综合运用,使我对所学的专业知识有了更深的理解;使我学会如何将理论知识运用到具体的实用领域中。同时在设计的过程中,我还接触到很多新的知识。其次,在能力方面:在设计过程中,我需要查找资料,找工具书,需要将所学的知识综合,需要学习新的知识补充,需要与老师交流,这些都锻炼了我运用现有知识的能力。学到知识又能应用到实践中去才是最重要的。同时我的个人素质也得到锻炼。在设计过程中,它需要耐心、毅力和解决问题的能力。

在设计的过程中,我还接触到很多新的知识。此次课程设计让我能够亲身参与电子产品的设计,使我更加深刻地体会到现在社会是信息的社会,很多电子产品都是与我们的生活息息相关的;要熟练掌握单片机的基本知识,这样才能对实验中出现的问题进行分析解决。

无论最终结果如何,在这里都非常感谢我的指导老师张庭亮老师和我的同学,同时也很感谢学校和所有老师给我们提供这次实习的机会.在这次课程设计当中他们给我了很大的帮助.让我再设计过程中学会了许多,让我知道了许多自己的不足之处,我相信下次的课程设计自己一定会更好,在社会中也更好立足.

10

[1] 张毅刚.单片机原理及应用[M].北京:高等教育出版社,2010. [2] 张毅刚.单片机原理及应用设计[M].北京:高等教育出版社,2008.

[3] 杜树春.单片机C语言和汇编语言混合编程实例详解[M].北京:北京航空航天大学出版社,2006.

[4] 张鑫,华臻,陈书谦.单片机原理及应用[M].电子工业出版社,2008. [5] 张洪润,张亚凡.单片机原理及应用[M].清华大学出版社,2005.

11

附录1:元件清单

元器件名称 单片机 晶振 集成三端式稳压器 电解电容 电解电容 瓷片电容 发光二极管 桥堆 按钮 开关 电阻 电阻 数码管 导线 底座 型号规格 AT89S52 12M 7805 10uF 22uF 33pF 2W10 100 10k 共阳极 40P 数量 1 1 1 2 1 2 13 1 2 1 8 2 1 若干 1 备注 两位七段数码管

12

附录2:原理图

13

附录3:仿真图

14

附录4:实物图

15

附录5:源程序

/*第一个状态:主干道、支干道均亮红灯5S */ /*第二个状态:主干道亮绿灯30S、支干道亮红灯 */ /*第三个状态:主干道绿灯闪3次转亮黄灯、支干道亮红灯3S */ /*第四个状态:主干道亮红灯、支干道亮绿灯25S */ /*第五个状态:主干道亮红灯、支干道绿灯闪3次转亮黄灯3S */ /*返回到第二个状态 */ /*********************************************************************/

/* 11.0952M晶振*/

#include//头文件 #include//头文件

#define uchar unsigned char//宏定义 #define uint unsigned int//宏定义 sbit RED_ZHU = P1^0; sbit YELLOW_ZHU = P1^1; sbit GREEN_ZHU = P1^2; sbit RED_ZHI = P1^3; sbit YELLOW_ZHI = P1^4; sbit GREEN_ZHI = P1^5; uint aa, bai,shi,ge,bb; //定义变量 /*数码管显示0-9*/

uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*子函数声明*/ void delay(uint z); void delay0(uint z); //void init(uint a);

void display(uint ge,uint shi); void xtimer0(); void init1(); void init2(); void init3(); void init4(); void init5(); void xint1(); void xint0();

void LED_ON(); void LED_OFF();

/********************************************************* 主函数

16

*********************************************************/ void main() { P0=0XFF; P1=0xFF; P2=0xFF; EA=1;//打开外部中断 EX1=1;//允许外部中断1中断 IT1=0;//INT0为沿触发方式 init1(); while(1) { init2();//第2个状态 init3(); //第3个状态 init4(); //第4个状态 init5();//第5个状态 } }

void init1()//第一个状态:主干道、支干道均亮红灯5S { uint temp; temp=6;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) { RED_ZHU=0; //第一个状态主干道、支干道均亮红灯5S RED_ZHI=0; GREEN_ZHU=1; GREEN_ZHI=1; YELLOW_ZHU=1; YELLOW_ZHI=1; if(aa==20)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 //delay(10); if(temp>250)//定时100S {

17

temp=6;//变量清0 break; } shi=temp%100/10;//显示十位 ge=temp%10;//显示个位 } display(ge,shi); } }

void init2()//第二个状态:主干道亮绿灯30S、支干道亮红灯 { uint temp; temp=31;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) { RED_ZHU=1; RED_ZHI=0; GREEN_ZHU=0; GREEN_ZHI=1; YELLOW_ZHU=1;//第二个状态:主干道亮绿灯30S、支干道亮红灯 YELLOW_ZHI=1; if(aa==20)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 if(temp==3)//定时100S { temp=30;//变量清0 break; } shi=temp%100/10;//显示十位 ge=temp%10;//显示个位 } display(ge,shi); } }

18

void init3() //第三个状态:主干道绿灯闪3次转亮黄灯、支干道亮红灯3S { uint temp; temp=4;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) { RED_ZHI=0; GREEN_ZHU=1; //YELLOW_ZHU=~YELLOW_ZHU; if(aa==20)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 YELLOW_ZHU=~YELLOW_ZHU; if(temp>200)//定时100S { temp=4;//变量清0 break; } shi=temp%100/10;//显示十位 ge=temp%10;//显示个位 } display(ge,shi);; } }

void init4()//第四个状态:主干道亮红灯、支干道亮绿灯25S { uint temp; temp=26;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) {

19

RED_ZHU=0; RED_ZHI=1; YELLOW_ZHU=1;//第一个状态主干道、支干道均亮红灯5S GREEN_ZHI=0; if(aa==20)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 if(temp==3)//定时100S { temp=25;//变量清0 break; } shi=temp%100/10;//显示十位 ge=temp%10;//显示个位 } display(ge,shi); } }

void init5()//第五个状态:主干道亮红灯、支干道绿灯闪3次转亮黄灯3S { uint temp; temp=4;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) { RED_ZHI=1; RED_ZHU=0; GREEN_ZHU=1; GREEN_ZHI=1; //YELLOW_ZHI=~YELLOW_ZHI; if(aa==20)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 YELLOW_ZHI=~YELLOW_ZHI; if(temp>200)//定时100S {

20

temp=4;//变量清0 break; } shi=temp%100/10;//显示十位 ge=temp%10;//显示个位 } display(ge,shi); } }

/*显示子函数*/

void display(uint ge,uint shi) { P0=0xfd; P2=table[shi];//显示十位 delay0(5); P0=0xfe; P2=table[ge];//显示个位 delay0(5); }

void xint0() interrupt 2 //外部中断1,这里用2是INT1的优先级为0 { LED_ON(); }

void LED_ON()//外部中断0显示子程序 { RED_ZHI=0; RED_ZHU=0; GREEN_ZHI=1; GREEN_ZHU=1; YELLOW_ZHI=1; YELLOW_ZHU=1; delay0(1000); return ; }

/*定时中断子函数*/

void xtimer0() interrupt 1 { TH0=0x4c; TL0=0x00; aa++;

21

}

/*延时子函数*/ void delay0(uint z) { uint i,j; for(i=0;i/********************************************************* 500ms延时函数

*********************************************************/ void delay(unsigned char j) {

unsigned char k; unsigned int i; for(;j>0;j--) {

for(i=1250;i>0;i--) {

for(k=180;k>0;k--); } } }

22

指导教师评语: 课程设计报告成绩: ,占总成绩比例: 30% 课程设计其它环节成绩: 环节名称: 考勤 ,成绩: ,占总成绩比例: 20% 环节名称: 综合 ,成绩: ,占总成绩比例: 50% 总 成 绩: 指导教师签字: 年 月 日 本次课程设计负责人意见: 负责人签字: 年 月 日

23

因篇幅问题不能全部显示,请点此查看更多更全内容