搜索
您的当前位置:首页正文

基于C51单片机实现简易的路灯控制

来源:欧得旅游网


课程设计报告

江汉大学物理与信息工程学院

课题名称:C51单片机实现简易的路灯控制 专 业: 自动化一班

班 级: B12072011 学 号: 122209303135 学生姓名: 徐 指导教师: 李池水

2014年6月20日

用51单片机实现简易的路灯控制

一.课程设计目的:

1.掌握C51单片机的结构,能熟练使用单片机的各种资源。 2.独立编写C51程序实现特定功能。 3.掌握定时/计数器的用法。

4.独立完成自己设计的实验,锻炼自己的动手能力。 二.课程设计要求

1.假设南北方向为车行道,东西方向为人行横道,实现车行道绿灯亮60S,人行横道绿灯亮30s,并且每次换灯前5S黄灯闪烁。

三.设计原理。

1.用P1口输出倒计时的值给7段数码管显示,建一个60S倒计时表。

2.利用51单片机内部晶振12mhz和定时器1实现1s的定时,然后用一个变量k实现对60S,30s灯转换的控制。

3.用if语句判断P1口是否为5,若是,黄灯开始闪烁。这里分别用P2和P3口对红绿黄灯进行控制。 四.器材。

一片51单片机,4个7段数码管,两个红绿灯指示,一片驱动芯片74ls245. 五.实现代码。

#include #define uchar unsigned char #define uint unsigned int

uchar display[]={0x60,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,

0x50,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40, 0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x29,

0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x19,0x18, 0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x09,0x08,0x17,

0x06,0x05,0x04,0x03,0x02,0x01,0x00};

uint i=0,j=0,k=0;

void time(void) interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; i++; if(i==20) { P1=display[++j]; i=0;k++;

} } void main() { TMOD=0X10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; P1=0X60; P3=0X04; P2=0X01; while(1) { if(P1==5) { P3=P3|0X02; P2=P2|0X02; } if(P1==4) { P3=P3&0XFD; P2=P2&0XFD; } if(P1==3) { P3=P3|0X02; P2=P2|0X02; } if(P1==2) { P3=P3&0XFD; P2=P2&0XFD;

P1=0X60;

P2=0X01; P3=0X04; j=0; k=0;

} } } } }

if(P1==1) {

P3=P3|0X02; P2=P2|0X02; }

while(P1==0) {

if(k==60)

{ P1=0X30; P2=0X04; P3=0X01; K=0; J=30; } else {

六.实现proteus仿真图。

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

Top