1、 单片机课程设计报告 设计课题: 十字路口交通灯控制 专业班级: 学生姓名: 指导教师: 设计时间: 2013-6-11 1 设计任务 利用单片机设计一个十字路口交通灯控制器 设计要求:设计要求: 利用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯 交替点亮和熄灭, 并且用 6只 LED 数码管显示十字路口两个方向的剩 余时间。要求能用按键设置两个方向的通行时间(绿、红灯点亮的时 间 )和暂缓通行时间(黄灯点亮的时间 )。系统的工作应符合一般 交通灯控制的要求。 2 硬件设计与系统总体方案图 2.1 AT89C52 单片机简介 AT89C52 是一种低功耗、高性能CMOS8 位微控制器。
2、 片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥 有灵巧的8 位CPU 和在系统可编程Flash,使得 AT89C52 为众多嵌入 式控制应用系统提供高灵活、超有效的解决方案。 AT89C52 具有以下 标准功能: 8K 字节Flash, 256 字节RAM, 32 位I/O 口 线,看门狗 定时器,2 个数据指针,三个16 位定时器/计数器, 一个6 位向量2 级中断结构,全双工串行口,片内晶振及时钟电路。 空闲模式下, CPU 停止工作,允许RAM、定时器计数器、串口、中断 继续工作。 鉴于以上的优点本系统采用AT89C52 作为主控芯片, 实现对整个系 统
3、的控制。 2.2 系统硬件电路设计 (1)显示灯开关 显示灯开关 (2) 按键电路 (3)显示电路 (4)总电路图 3 源程序 #include #include #define unit unsigned int#define unit unsigned int / /宏定义宏定义 #define uchar unsigned char#define uchar unsigned char sbit red=P10; /sbit red=P10; /设置设置P1,P1,控制三个发光二极管控制三个发光二极管 sbit yellow=P12;sbit yellow=P12; s sbit gre
4、en=P14;bit green=P14; sbit beep=P23;sbit beep=P23; sbit dula=P26;sbit dula=P26; / /设置位选接口设置位选接口 sbit wela=P27;sbit wela=P27; / /设置段选接口设置段选接口 sbit K1=P34;sbit K1=P34; / /设置独立键盘接口设置独立键盘接口 sbit K2=P35;sbit K2=P35; sbit K3=P36;sbit K3=P36; sbit K4=P37;sbit K4=P37; uchar code table=uchar code table= / /定
5、义数码表定义数码表 0x3f,0x06,0x5b,0x4f,0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x70x7f,0x6f,0x77,0x7c, c, 0x39,0x5e,0x79,0x71;0x39,0x5e,0x79,0x71; uchar uchar R=10,Y=5,G=10,numl,nums,temp,flag,flag1,r1,r2,y1,y2,g1,g2; R=10,Y=5,G=10,numl,nums,temp,flag,flag1,r1,r2,y1,y2,g1
6、,g2; / /定义变量定义变量 void init();void init(); / /声明初始化程序声明初始化程序 void display(uchar r1,uchar r2,uchar y1,uchar y2,uchar g1,uchar void display(uchar r1,uchar r2,uchar y1,uchar y2,uchar g1,uchar g2);g2); / /声明显示程序声明显示程序 void delay_1ms(unit z)void delay_1ms(unit z) /1ms/1ms延时程序延时程序 unit x,unit x,y; y; for(x=z;x0;xfor(x=z;x0;x-) ) for(y=