工作总结

51单片机交通灯设计报告

时间:2021-10-16 17:27:12  来源:网友投稿

课 课 程 设 计 说 明 书 课程名称:

  《单片机技术》

 设计题目:

  交通灯设计

 学

 院:

 电子信息与电气工程学院

  学生姓名:

  学

 号:

  专业班级:

  指导教师:

  2017 年 4 月 20 日课 课 程 设 计 任 务 书 设计题目 交通灯电路设计 学生姓名

  所在学院 电子信息与电气工程学院

 专业、年级、班

  设计要求: 1、设计制作一个给予单片机得交通灯设计;

  2、能够根据时钟芯片提供得时间指标控制电路;

  3、能够按照程序要求进行工作;

  4、系统能够正常工作。

 学生应完成得工作:

  参考文献阅读: [1]李建忠、单片机原理及应用[M]、西安电子科技大学出版社,2008 [2]胡辉、单片机原理及应用设计[M]、中国水利水电出版社,2006 [3]徐爱钧、8051 单片机实践教程[M]、北京电子工业出版社,2005 [4]楼然苗,李光飞、51 系列单片机设计实例[M]、北京航空航天大学出版社,2006 [5]邱关源、电路[M]、北京:北京高等教育出版社,2006 [6] 张毅刚、 单片机原理及接口技术、哈尔滨:哈尔滨工业大学出版社,1999 [7]全国大学生电子设计竞赛组委会、北京:北京理工大学出版社,2004 年 8 月、

 工作计划: 4 月 1 号— 4 号完成原理图得设计;4 月 5 号— 7 号进行 PCB 设计;4 月 8 号— 10 号制作 PCB 板;4月 11 号—14 号电路板安装与调试,提交课程设计报告。

  任务下达日期:2017 年 4 月

 1 日

  任务完成日期:2017 年 4 月 14 日

 指导教师(签名):

 学生(签名):

  交通灯 设计 摘 摘

 要: 展 近年来随着科技得发展, 单片机得应用正在不断深入, 同时带动传统控制检测技术日益更新。在实时检测与自动控制得单片机应用系统中, 单片机用 往往作为一个核心部件来使用, 仅单片机方面得知识就是不够得, 还应该根据具体硬件结构软硬结合, 加以完善。

 十字路口车辆穿梭, 行人熙攘, 车行车道 道, 人行人道, 有条不紊, 那么靠什么来实现这井然秩序呢?靠得就就是交通信用 号灯得自动指挥系统。交通信号灯控制方式很多。本系统采用 51 系列单机 片机 ATMEL89C51 为核心控制器件来设计交通信号灯控制器, 实现亮绿灯通行, 亮黄灯闪烁并发声警示, 亮红灯禁止通行得功能, 并显示通行或禁止通行倒计时, 紧急按键信号灯加时与紧急按键南北、东西红绿灯跳变。本系统使用性强, 操作简单, 容易实现, 扩展功能强, 可自行修改程序扩展自己想要实现得功能。

 关键词: 交通灯, 单片机, 复位电路 目 目

 录 1 1 、

 设计背景

 ························

 1 1 1、1 设计原因

 ········································································································································· 1 1、2 个人意义

 ········································································································································· 1 2 2 、 设计方案

 ·························

 1 1 2、1 总体方案提出

 ······························································································································ 1 2、2 稳压电源方案设计与分析

 ··································································································· 1 2、3 复位电路方案设计与分析

 ··································································································· 2 3 3 、

 方案实施

 ························

 2 2 3、1 总体设计框图

 ······························································································································ 2 3、2 硬件设计

 ········································································································································· 3 3、3 软件设计

 ········································································································································· 6 3、4 电路仿真

 ········································································································································· 9 3、5 制板子与安装过程

 ················································································································· 10 3、6 软硬件调试

 ·································································································································· 11 4 4 、

 结果与结论

 ·······················

 11 5 收获与致谢

 ························

 11 6 6 、

 参考文献

 ························

 12 7 7 、

 附件

 ··························

 12 7、1 硬件电路图

 ·································································································································· 12 7、2 元器件清单

 ·································································································································· 13 7、3 作品实物图

 ·································································································································· 14 7、4 源程序:

 ·········································································································································· 15 1 、 设计背景 1 、1 设计原因 随着社会得进步,交通得高速发展,红绿灯已经成为了我们生活中不可或缺得一部分,如今,红绿灯已经安装在各个道路得交接口处,已经成为疏导交通车辆最常见与最有效得手段。根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,不少人提出了一种用 S-51 单片机自动控制交通信号灯及时间显示得方法,同时给出了软硬件得实现方法,为交通指挥自动化提供了一种新得廉价手段,具有一定得推广意义。

 1 、2 个人意义 本设计就是由单片机控制得交通信号灯,运用 89S51 单片机实现交通灯得控制,实现红绿灯自动跳变,倒计时显示,黄灯蜂鸣器警示灯功能。在这次设计作品中,不仅可以增加对整套系统运行得合理安排,为未来做大得项目打下基础,也可以增加对软硬件得在系统中得作用得了解,同时也培养了我们团队得合作能力。

 2、设计方案 2 、1 总体 方案提出 实现一种系统功能或者技术指标都具有多种可行得设计方案,每一种设计方案针对不同得应用场合都具有它自己得缺点。在设计得过程中要考虑到其功能,系统稳定性,技术指标,成本与所需要得技术条件等方面得因素。

 方案一:PLC 控制交通灯

 PLC 主要应用于强电方面得工业控制,或者整条流水线得控制。虽然比较稳定,但就是功耗要大,成本也比较高。

  方案二:单片机控制交通灯

 单片机具有结构简单、编程方便、经济、易于连接等优点,特别就是其内部定时器计数器、中断系统资源丰富可对交通灯进行精确得控制,有应用价值,可扩展功能多,灵活性比较强,线路也非常简单,成本也就是比较低得。

 由于此次课程设计就是单片机设计,还有结合从各方面优缺点来瞧,以及简便方面,成本方面,与结构、控制方面来瞧。为了同时满足课程设计要求,综上所述,选择了方案二,做为本设计得方案选择。

 2 、2 稳压电源方案设计与分析 方案一:采用电源变压器,整流滤波电路与稳压电路,其中稳压电路就是使用分立元件,通过取样,放大,比较与调整四个环节,晶体管选用 3DD 或 3DG 等型号 方案二:采用电源变压器,整流滤波电路与稳压电路,其中稳压电路时使用集成电路LM7805 三端稳压器,该电路能输出固定得正 5V 得直流电压, 方案一一般来说比较复杂,而且验证过程也比较麻烦且所有用到得分立元件较多且误差较多,因此不采用这种方案制作电源,方案二得电源设计较方案一结构简单,所用元器件比较少,且容易调试,因此,本次电源设计采用方案二。

 2 、3 复位电路 方案设计与分析 方案一:根据复位原理,只需要在复位引脚提供两个机器周期以上得高电平信号,单片机便会从地址零开始运行。对此,可以在复位引脚通过按键连接到电源正极,当按键按下得时候,复位引脚即可获得高电平信号,实现电路得复位。

 方案二:通过RC电路实现复位功能,当按键没有按下得时候,复位引脚时低电平,电容充满电,当按键按下得时候,电容放电,直至电容两端电压为零时,复位引脚才会达到 5V 得高电平信号。

 方案一通过按键直接使复位引脚接收高电平信号,由于按键会产生机械震动,使得信号产生不稳定,电平信号宽度达不到两个机器周期以上,使得电路复位发生错位,方案二,利用电容两端电压不突变得特性,实现消除抖动,而且还有复位延时作用,消除了复位信号不稳定得因素,因此,该设计采用方案二得复位电路设计。

 3、 方案实施 3 、1 总体设计框图 交通灯组成框图,如图 3-1 所示 图 3-1 系统总体框图 据此,本设计系统以单片机为控制核心,连接成最小系统,与按键设置模块等产生输入,信号灯状态模块,LED 倒计时模块与接受输出。

 3 、2 硬件设计 3、2、1 电源设计

  电源电路采用拨动开关。原理图部分如下:

  图 3、2、1 电源电路 3、2、2 复位电路设计 单片机在可靠得复位之后,才会从 0000H 地址开始有序得执行应用程序。同时,复位电路也就是容易受到外部噪 声干扰得敏感部分之一。因此,复位电路应该具有两个主要得功能: 1、必须保证系统可靠得进行复位; 2、必须具有一定得抗干扰得能力; 复位电路部分原理图如下:

 图 3、2、2 复位电路 3、2、3 时钟震荡电路设计 如下图 3、2、3 所示,晶振就是给单片机提供工作信号脉冲得,这个脉冲就就是单片机得工作速度,比如该系统采用得 12M 晶振,单片机工作速度就就是每秒 12M 当然,单片机得工作频率就是有范围得,不能太大,一般 24M 就不上去了,不然不稳定。

 晶振与单片机得脚 XTAL0 与脚 XTAL1 构成得振荡电路中会产生偕波(也就就是不希望存在得其她频率得波) 这个波对电路得影响不大,但会降低电路得时钟振荡器得稳定性 为了电路得稳定性起见 ATMEL 公司只就是建议在晶振得两引脚处接入两个10pf-50pf 得瓷片电容接地来削减偕波对电路得稳定性得影响,所以晶振所配得电容在10pf-50pf 之间都可以。

 图 3、2、3 时钟震荡电路 3、2、4 数码管显示电路设计

 数码管显示电路,通过P0口与P2口得控制输出,其中P0口要加多上拉电阻才能使用,由于其内部无上拉电阻,作为 I/O 用时候要加上拉电阻。P0 口作为显示倒计时得输出端口控制 2 个 2 位得数码管,其中还需要用到 P3、7,P3、6,P3、5,P3、4 来进行控制位选。J2 就是东西显示数码管,J5 就是南北显示数码管,REDCC 就是流量显示数码管,P2 口接流量显示数据。电路接线图如下 3、2、4 所示:

 图 3、2、4 数码管显示电路 3、2、5 红绿灯显示电路设计

 红绿灯电路设计主要就是由12盏灯进行控制,东西6转盏灯,南北6盏灯,分别由单片机得 6 个 I/O 进行控制。电路图如 3、2、5 所示:

 图 3、2、5 红绿灯显示电路 3 、3 软件设计 3、3、1 程序设计流程图 对于单片机得控制系统来说,软件系统得设计就是必不可少得,这就是采用 KEIL 软件为开发平台,C 语言为程序设计语言,以模块化结构进行程序设计,建立工程,设置工程,接着编译程序,最后调试与下载,不过这里KEIL软件不包含STC系列单片机,因此,在程序编译成功后,要通过STC系列单片机专用得下载软件将程序写入单片机得FLASH程序存储器。

 全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。

 整个软件程序方面主要分两大部分:按键处理程序与 50ms 扫描程序。流程图如图 3、3、1 所示:

 图 3、3、1 系统程序流程图 3、3、2 子程序模块 按键模块得控制就是调用中断来实现控制得,独立式键盘得实现方法就是利用单片宏定义 I/O 初始化 定义共阴极字型编码表 定义函数变量并初始化 定义状态数组 定义字位码函数 进 入 主 函 数main() 定时器0初始 化 初始化外部中断 进入 while(1)循环 调用显示控制函数void display () 调用 Buzzer() 函数 设置字型码与字位码,完成显示 返回 while(1)函数 机 I/O 口读取口得电平高低来判断就是否有键按下。将常开按键得一端接地,另一端接一个 I/O 口,程序开始时将此 I/O 口置于高电平,平时无键按下时 I/O 口保护高电平。当有键按下时,此 I/O 口与地短路迫使 I/O 口为低电平。按键释放后,单片机内部得上拉电阻使I/O 口仍然保持高电平。我们所要做得就就是在程序中查寻此 I/O 口得电平状态就可以了解我们就是否有按键动作了。

 图 3、3、2 中断子程序 参考程序: unsigned char key() {

 if(key1==0)

 {

  delayms(10);

  {

  if(key1==0)

  {

  while(key1==0) dis();

  return 1;

  }

  }

 }

  if(key2==0)

 {

  delayms(10);

  {

  if(key2==0)

  {

  while(key2==0) dis();

 return 2;

  }

  }

 } INT0 东西通行

 东西绿灯亮 南北红灯亮 保持中断 中断返回 INT1 南北通行 东西绿灯亮 南北红灯亮 保持中断 中断返回

  return 0; } 定时中断子程序就是本设计得重点,定时器一但启动,它便在原来得数值上开始加 1计数,若在程序开始时,我们没有设置TH0与TL0,它们得默认值都就是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0与TL0就需要216 -1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。因此溢出一次共需65536us,约等于 65、6ms,如果我们要定时 50ms 得话,那么就需要先给 TH0 与 TL0 装一个初值,在这个初值得基础上记 50000 个数后,定时器溢出,此时刚好就就是 50ms 中断一次,当需要定时1s时,我们写程序时当产生20次50ms得定时器中断后便认为就是1s,这样便可精确控制定时时间啦负责完成数码管输出数据刷新与各个状态得处理切换。中断子程序包括数码管输出数据刷新程序与各状态处理程序。中断程序得流程图如图所示。

 图3、3、3

 定时中断流程图 参考程序: void main() {

 //unsigned char num;

 TMOD |=0X11;

  TH1=0X3c;

 TL1=0xb0;

 TH0=0XF0;

 TL0=0XF0;

 EA=1;

 IP=0X08;

 ET0=1;

 TR0=1;

 ET1=1;

 TR1=1;

 shuju[0]=~duanma[shu/10];

 shuju[1]=~duanma[shu%10];

  while(1) 定时中断入口 启动定时器中断 初始化定时器 0 设置字型码与字位码,完成数码管倒计时显示 关闭定时器 0 计数变量自加 1 定义 1s

 {

  sxpass();

 zjzj=1;

  while(flag);

 flag=1;

 sxpassHU();

 zjzj=2;

  while(flag);

  flag=1;

 zypass();

 zjzj=3;

  while(flag);

  flag=1;

 zypassHU();

 zjzj=4;

  while(flag);

  flag=1;

 } } 复位参考程序: void timer1_help(void) interrupt 3 {

 static unsigned char zj=0;

 TH1=0X3c;

 //50ms 一个周期

 TL1=0Xb0;

  if(zj==20)

  {

  zj=0;

  shuju[0]=~duanma[shu/10];

 shuju[1]=~duanma[shu%10];

  if(shu==0) {shu=31;flag=0;}

 //复位标志位

  shu--;

  }

  zj++; } 3 、4 电路仿真 一、电路仿真步骤如下: 1、在 PROTEUS 中找到相应得电子元器件 。

 2、在 PROTEUS 中新建原理图,选择 A4 大小得纸张规格,按照设计原理排放元器件,画好能用于仿真得线路图,为避免元器件之间得连接带来原理图得可读性变差,在此采用编号连接得方式,似得原理图模块坏,便于分析,即所用得元件都应有仿真模型,保存后就可以仿真了!

 3、编制相应得单片机程序,可以在 PROTEUS 中编译,也可以在相应得单片机开发平台中编译(不同厂家得单片机得开发平台不同)。

  a) 如在PROTEUS中编译,要在“源程序”->“定义生成代码工具”中设定,不同得单片机设定不同,然后可以调入源程序;编译,把编译后得代码插入单片机中(在单片机属性中设定),接着就可以仿真,如果仿真结果不对,修改程序,重新编译、运行,直到正确为止;

 b) 如在单片机平台下编译,则进入单片机开发平台,编译正确后(指语法没问题),再到 PROTEUS 平台中把生成得代码调入,仿真运行。如果仿真有问题,回到单片机开发平台,重新编译,再进到 PROTEUS 中仿真,直到正确为止。

 有时在仿真时可能会发现PROTEUS 图有问题,就直接改图,直到正确为止。

 由于软件得原因,只能在软件内部编辑,而无法进行编译,而且外部编译比较方便,因此,此时设计采用单片机程序编译选择外部 KEIL 软件单独编译,不采用内部集成得编译环境, 4、查瞧仿真结果。

 3 、5 制板子与安装 过程 (1)用 Altium Designer 画出原理图(见附录),PCB 图(见附录)。

 (2)图纸打印。将画好得 PCB 图利用打印机把图形打印在“专用转印机”得亚光面。

 (3)图纸转印。按实际尺寸裁切覆铜板,覆铜板去油污锈渍,图纸与覆铜板得铜箔面对正贴实,并固定好,以防止转印时图纸脱落。启动转印机进行图纸转印,待自然冷却到室温后揭去转印纸。

 (4)修板。用“油性”签字笔或用“酒精松香溶液”(助焊剂)修复转印中形成得“砂眼”“断线”。

 (5)蚀刻。溶液量基本淹没过电路板为宜,用长矛软刷轻刷印制板或晃动腐蚀液,(5-10分钟)即可蚀刻完毕,从腐蚀液中取出,用清水冲洗。腐蚀液妥善存放,以备后用,如失效,倒入回收桶中保存。

 (6)钻孔。压住印制板,钻孔过程中不得移动,以防钻头折断,钻头进刀速度适中,以防毛刺过大。

 (7)表面处理。用少许棉丝式碎布,蘸去污粉用力擦拭,直至焊盘与线条光亮无污渍,再用清水清洗。

 按照自己设计得电路,在在通用板上焊接。焊接完毕后,应对照电路图仔细检查,瞧就是否有错接、漏接、虚焊得现象。对安装完成得电路板得参数及工作状态进行测量,以便提供调整电路得依据。经过反复得调整与测量,使电路得性能达到要求。

 3 、6 软硬件调试 3、6、1 硬件调试: (1)观察板子,焊接状况,确认单片机电源正负极就是否连接正常,确定单片机最小系统就是否连接正常。

 (2)给单片机提供 5V 电源,观察电源指示灯就是否正常发光, (3)用万用表测试发光二极管从单片机 IO 口到电源地就是否导通。

 3、6、2 软件测试 (1)根据元器件得连接,分别写出相应得程序,下载到单片机观察电路工作, (2)确认子电路可以在程序得引导下成功工作后,进行总体程序设计,下载后,观察电路总体运行情况。

 4、 结果与结论 在本次设计中,本小组成员尽心尽力得设计,共同合作,完成了前期得原理图设计,在PCB 板布线设计得时候遇到了问题,幸好在最后小组成员得共同努力下还就是完成了工作,其她环节都还算顺利。不过很遗憾得就是,尽管我们按照预先设计好得方案进行了交通灯得设计,并且在遇到问题得时候也努力得去解决了,可在所有得工作都完成后,我们得交通灯还就是无法按照预先得设计进行工作。LED 灯也只就是可以工作却无法就是按照程序那样像交通灯一样得工作。

 5 收获与致谢 在设计得过程中,我们深深体会到,理论与现实得差距,实践得重要性,在调试得过程中遇到了很多问题,这些问题往往就是自己理论认为就是可以行得通,但就是实际并非如此,给我调试带来了很多不解得困惑,我们小组得成员也都努力得完成自己得分工,尽心尽力得去配合工作,想要得到一个好得结果。然而到了最后我们还就是未能完成这次课程设计得要求,使我们得交通灯作品进行工作。

 虽然这次课程设计没能够顺利完成,但就是我却感觉我收获了很多。这次课程设计,不仅有团队得共同努力,而且还有指导老师得细心指导,关心与教诲。在此,我要感谢关心我得单片机课程老师,传授我们专业知识,教会了做技术得严谨与认真得重要性,让我们在今后得工作与生活中收益无穷,还有我们得小组成员,让我明白了团结合作得重要性,明白了学习探索过程中也可以十分有趣。

 6、 参考文献 [1]李建忠、单片机原理及应用[M]、西安电子科技大学出版社,2008 [2]胡辉、单片机原理及应用设计[M]、中国水利水电出版社,2006 [3]徐爱钧、8051 单片机实践教程[M]、北京电子工业出版社,2005 [4]楼然苗,李光飞、51 系列单片机设计实例[M]、北京航空航天大学出版社,2006 [5]邱关源、电路[M]、北京:北京高等教育出版社,2006 [6]全国大学生电子设计竞赛组委会、北京:北京理工大学出版社,2004 年 8 月、 [7]韩全立、赵德申编著、微机控制技术[M]、北京:机械工业出版社,2008 [8]王守中,聂元铭、 51 单片机开发入门与典型实例[M]、 北京:人民邮电出版社,2009 [9]钟富昭,张晨、 8051 单片机典型模块设计与应用[M]、 北京:人民邮电出版社,2007 [10]胡学海、 单片机及应用系统设计[M]、 北京:北京电子工业出版社,2001 [11]陈小忠,黄宁、单片机接口技术实用子程序[M],北京:北京人民邮电出版社,2005 [12]李广弟、单片机基础、北京:北京航空航天大学出版社,1992、 [13]何立民、单片机应用技术大全、北京:北京航空航天大学出版社,1994、 [14]张毅刚、 单片机原理及接口技术、哈尔滨:哈尔滨工业大学出版社,1999 7、 附件 7、1 硬件电路图

 图 7、1 系统原理图 图 7、1、2 PCB 电路图 7、2 元器件清单 名称 规格 数量 主要功能或作用 按钮 6*6*5 2 分别控制黄灯常亮(深夜模式)、禁行(紧急模式)、东西通行、南北通行、时间加、时间减、切换、确定。

 电容 30P 2 单片机时钟振荡 电容 10UF 1 单片机复位 电阻 220 3 限流 排阻 10K 2 单片机 单片机 AT89S51 1 CPU 晶体 12M 1 单片机时钟振荡 三极管 9012 1 驱动蜂鸣器 蜂鸣器 12*9、5MM 1 信号灯切换时报警 两位一体共阴数码 0、36 4 倒计显示 芯片底座 40 脚 1 保护引脚 芯片底座 20 脚 1 保护引脚 发光二极管(红) 5MM 4 交通灯路口显示 发光二极管(绿) 5MM 4 交通灯路口显示 发光二极管(黄) 5MM 4 交通灯路口显示 发光二极管 3MM 1 电源显示 自锁开关 8*8MM 1 控制 VCC USB 电源线 60MM 1 连接 USB 口 DC 座 3、5*1、3MM 1 直流电源插座 插针

  2 外接电源接线 PCB 板 155MMX100MM 1

  7、3 作品实物图 图 7、3 7、4 源程序: #include<reg52、h> sbit wei1=P1^0; sbit wei2=P1^1; sbit wei3=P1^5; sbit wei4=P1^6; unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; #define weima1 {wei1=1;wei2=0;wei3=1;wei4=0;} #define weima2 {wei1=0;wei2=1;wei3=0;wei4=1;} sbit led1=P2^7; sbit led11=P2^6; sbit led111=P2^5; sbit led1111=P2^4; sbit led2=P2^3; sbit led22=P2^2; sbit led222=P2^1; sbit led2222=P2^0; sbit led3=P3^7; sbit led33=P3^6; sbit led333=P3^5; sbit led3333=P3^4; sbit led4=P1^3; sbit led44=P1^4; sbit led444=P3^1; sbit led4444=P1^2; sbit key1=P3^3; sbit key2=P3^2; unsigned char shuju[2]; unsigned char shu=30; //全局变量 30s unsigned char shu1=60;//全局变说量 60S unsigned char shu2=10;//全局变量 5s unsigned char flag=1; unsigned char zjzj=0; void delayms(unsigned int dat); void delayus(unsigned int dat); void dis(); void sxpass(); void sxpassHU(); void zypass(); void zypassHU(); unsigned char key(); void main() {

 //unsigned char num;

 TMOD |=0X11;

  TH1=0X3c;

 TL1=0xb0;

 TH0=0XF0;

 TL0=0XF0;

 EA=1;

 IP=0X08;

 ET0=1;

 TR0=1;

 ET1=1;

 TR1=1;

 shuju[0]=~duanma[shu/10];

 shuju[1]=~duanma[shu%10];

  while(1)

  {

  sxpass();

 zjzj=1;

  while(flag);

 flag=1;

 sxpassHU();

  zjzj=2;

  while(flag);

  flag=1;

 zypass();

 zjzj=3;

  while(flag);

  flag=1;

 zypassHU();

 zjzj=4;

  while(flag);

  flag=1;

 } } unsigned char key() {

 if(key1==0)

 {

  delayms(10);

  {

  if(key1==0)

  {

  while(key1==0) dis();

  return 1;

  }

  }

 }

  if(key2==0)

 {

  delayms(10);

  {

  if(key2==0)

  {

  while(key2==0) dis();

  return 2;

  }

  }

 }

 return 0; } void sxpass() { shu=30;

 led1=led11=led1111=1;led111=0;

 led3=led33=led3333=1;led333=0;

 led222=led22=1;led2=led2222=0;

 led444=led44=1;led4=led4444=0;

 } void sxpassHU() { shu=10;

 led1=led111=led1111=1;led11=0;

 led3=led333=led3333=1;led33=0;

 led222=led22=led2222=1;led2=0;

 led444=led44=led4444=1;led4=0; } void zypass() { shu=30;

 led11=led111=1;led1=led1111=0;

 led2=led22=led2222=1;led222=0;

 led33=led333=1;led3=led3333=0;

 led4=led44=led4444=1;led444=0; } void zypassHU() { shu=10;

 led11=led111=led1111=1;led1=0; led33=led333=led3333=1;led3=0;

 led2=led222=led2222=1;led22=0;

 led4=led444=led4444=1;led44=0; } void timer1_help(void) interrupt 3 {

 static unsigned char zj=0;

 TH1=0X3c;

 //50ms 一个周期

 TL1=0Xb0;

  if(zj==20)

  {

  zj=0;

  shuju[0]=~duanma[shu/10];

 shuju[1]=~duanma[shu%10];

  if(shu==0) {shu=31;flag=0;}

 //复位标志位

  shu--;

  }

  zj++; } void timer0_help(void) interrupt 1 { unsigned char dat;

 TH0=0Xf0;

 TL0=0Xf0;

  dis();

  dat=key();

  if(dat==1 && zjzj==1)

 {

 shu=60;

 }

 if(dat==2 && zjzj==3)

 {

  shu=60;

 }

  } void dis() {

 P0=0xff;

 wei2=wei1=0;

 P0=shuju[0];

 weima1;

 delayms(2);

 P0=0Xff;

 wei1=wei2=0;

 P0=shuju[1];

 weima2;

 delayms(2); } void delayms(unsigned int dat) {

 unsigned int t;

 for(dat;dat>0;dat--)

 for(t=140;t>0;t--); } void delayus(unsigned int dat) {

 while(dat--); } 指导教师评语: 课程设计报告成绩:

  ,占总成绩比例:

 30%

 课程设计其它环节成绩: 环节名称:

  考勤

 ,成绩:

  ,占总成绩比例:

 20%

  环节名称:

  综合

 ,成绩:

  ,占总成绩比例:

 50%

 总 成 绩:

  指导教师签字: 年

  月

  日 本次课程设计负责人意见: 负责人签字: 年

  月

  日

推荐访问: 交通灯 单片机 报告

版权所有:精诚范文网 2010-2024 未经授权禁止复制或建立镜像[精诚范文网]所有资源完全免费共享

Powered by 精诚范文网 © All Rights Reserved.。 蜀ICP备20022334号