交通灯报告.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交通灯报告重点讲义

工业管理学院 单片机课程设计说明书 13届 电子信息工程 专业 8(2) 班级 题 目 基于单片机的交通灯设计 学 号 姓 名 指导教师 王 丹 一:交通灯的基本原理 交通灯设计要求如下: 1、具有直行、左转、右转、停止四个指示灯; 2、指示灯有倒计时显示功能,直行+右转20秒,左转+右转10秒,停止+右转30秒,按此规律不断循环; 3、直行和左转灯灭掉前3秒能够闪烁提示(每秒两次); 4、能够调整直行、左转、停止指示灯的时间。 根据设计要求,采用单片机STC89C52RC作为核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的交通灯功能,在单片机的外围电路接入键盘实现功能的控制,并用两个四位数码管用于时间显示及方向控制. 两个四位数码管分别用于方向与时间的显示,在四个按键中,KEY1是暂停键,KEY2,KEY3,KEY4分别可以控制直行、停止、左转的时间调整,SW-RST为复位键。 二:交通灯的硬件设计 USB座 1 USB USB线 1 双排针(2) 1 CONN1 跳帽 1 104电容0.1uF 6 C2,5,6,7,8,9,11 LED灯 1 D1 电阻2K 1 R2 最小系统部分 40针座 1 U1 STC89C52 1 晶振12MHz 1 Y1 电容20pF 2 C3,C4 复位键 1 SW_RST 电阻10K 1 R1 蜂鸣器 1 LS1+ 三极管9015(电子钟,交通灯) 9 Q1~Q9 电阻330 1 R3 键盘显示、通信部分 16针座 1 U2 MAX232 1 单排针(5) 1 UART 按键(电子钟,交通灯) 4 KEY1~KEY4 单排针(3) 1 SWITCH1 跳帽 1 4位LED(电子钟,交通灯) 2 DIGILED1,2 电阻4.7K 8 R14~R21 电阻330 8 R6~R13 元件清单 1. 89C52 89C52的管脚可分为主电源,外接晶体整荡,多功能I/0口,控制复位等。其中I/0口共有四个8位的并行口:p0,p1,p2,p3端口,对应的引脚分别是P0.0~P0.7,P1.0~P1.7,P2.0.~P2.7,P3.0~P3.7,共32根I/0线。每根线可以单独用输入或输出。 2. LED 七段数码管 当按下对应按键时数码管会显示相应的数字来显示当前的工作情况,同时数码管的对应数字也可知道播放的音节本数码管为16位数码管. 接口电路设计采用MAX232芯片实现单片机与计算机的连接。 复位电路:单片机的复位信号由RET引脚输入,高电平有效。当RET引脚输入高电平时,单片机内部就会执行复位操作。 三:交通灯的软件设计 流程图 程序: *加入按键控制,未对按键进行消抖2012-12-20 */ #includemain.h code uint8 SEG_NUM[] = {0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xF8, 0x80,0x90,0xF8,0xC9, // 0xCE,0xBF,0xFF}; //数码管段码0-9 ,LEFT,GO,RIGHT,STOP,NO Codeuint8 SEG_BIT[8] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};//数码管位码选择 uint8 disnum[8] = {13,11,12,14,14,14,14,14};//数码管刷新数组 uint8 time,time_set,j,cont = 0; uint8 time_buff[] = {20,30,10};//三个时间段 static uint8 k = 0;//3秒闪烁标志位 static uint8 p = 0; void key() { static uint8 i; if(!SET){ while(!SET); if(i == 1){ i = 0; } else i++; if(i == 1){ TR0 = 0; p = 2; } if(i == 0){ TR0 = 1; p = 1; if(cont == 1){ grean(); } if(cont == 2){ red(); } if(co

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档