资源简介
51单片机液晶屏交通灯,c语言,模拟交通灯功能。

代码片段和文件信息
/*******************************************************************
交通灯篇
功能简介:模拟交通灯,用液晶屏显示出红灯绿灯黄灯三种情形,当黄灯剩下
三秒时,让数字闪烁并显示出时间剩余情况。
实施步骤:步骤1:完成LCD的显示功能,开启定时器0,完成红灯功能;步骤2:
完成绿灯功能;步骤3:完成黄灯功能,开始让黄灯闪烁。
********************************************************************
********************************************************************/
#include
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^3; //lcd液晶显示屏读使能端,蜂鸣器,数码管段选位选的重定义
sbit wela=P2^7;
sbit dula=P2^6;
sbit lcden=P3^4;
sbit lcdrs=P3^5;
uchar table[]=“The light is red“; //lcd上交通灯信息提示语
uchar table1[]=“Please stop: “;
uchar table2[]=“It‘s your time !“;
uchar table3[]=“Be careful : “;
uchar table4[]=“Time is limited!“;
uchar iflag; //i用来完成提示语的显示,flag用来切换信息显示
uchar num; //num用来计数
int red=59green=59yellow=4;
void delay(uint z)
{
uint ij;
for(i=0;i for(j=0;j<110;j++);
}
void writecom(uchar com) //lcd写命令函数
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void writedate(uchar date) //lcd写数据函数
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void lcdinit() //lcd初始化函数
{
lcden=0;
wela=0;
dula=0;
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
writecom(0x80);
for(i=0;i<16;i++)
{
writedate(table[i]);
delay(5);
}
writecom(0xc0);
for(i=0;i<13;i++)
{
writedate(table1[i]);
delay(5);
}
}
void lcddisplay(uchar adduchar date) //lcd显示倒计时函数
{
uchar shige;
shi=date/10;
ge=date%10;
writecom(0xc0+add);
writedate(0x30+shi);
delay(5);
writedate(0x30+ge);
delay(5);
}
void timeinit() //定时器0初始化函数表
{
TMOD=0x01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
EA=1;
ET0=1;
TR0=1;
}
void timedelay() interrupt 1 //定时器中断函数
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
num++;
if(num==20)
{
num=0;
if(flag==0) //红灯倒计时
{
red--;
if(red==-1)
{
flag=1;
red=59;
}
}
if(flag==1) //绿灯倒计时
{
green--;
if(green==-1)
{
flag=2;
green=60;
}
}
if(flag==2) //黄灯倒计时
{
yellow--;
if(yellow==-1)
{
flag=0;
yellow=4;
}
}
}
}
int main()
{
timeinit();
lcdinit();
beep=1;
while(1)
{
if(flag==2)
{
writecom(0x80);
for(i=0;i<16;i++)
{
writedate(table4[i]);
delay(5);
}
writecom(0xc0); //黄灯状态下的黄灯的倒计时将会以闪烁形式完成,同时蜂鸣器,led的状态形式与数码管交通灯的状态相同
for(i=0;i<13;i++)
{
writedate(table3[i]);
delay(5);
}
lcddisplay(13yellow);
beep=0;
P1=0xaa;
delay(500);
writecom(0xc0+13);
writedate(0xa0);
writecom(0xc0+14);
writedate(0xa0);
beep=1;
P1=0;
}
if(flag==1)
{
P1=0xaa;
writecom(0x80);
for(i=0;i<16;i++)
{
writedate(table2[i]);
delay(5);
}
writecom(0xc0);
for(i=0;i<13;i++)
{
writedate(table3[i]); //lcd显示绿灯倒计
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3631 2012-08-30 18:31 综合应用6-液晶屏交通灯\trafficlight.c
文件 7026 2012-08-30 10:46 综合应用6-液晶屏交通灯\trafficlight.LST
文件 11622 2012-08-30 10:46 综合应用6-液晶屏交通灯\trafficlight.OBJ
文件 9886 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯
文件 2315 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯.hex
文件 50 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯.lnp
文件 15070 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯.M51
文件 1009 2012-08-30 12:48 综合应用6-液晶屏交通灯\交通灯.Opt
文件 385 2012-08-30 12:48 综合应用6-液晶屏交通灯\交通灯.plg
文件 1665 2012-08-30 12:48 综合应用6-液晶屏交通灯\交通灯.Uv2
....... 1011 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯_Opt.Bak
....... 1665 2012-08-30 10:46 综合应用6-液晶屏交通灯\交通灯_Uv2.Bak
目录 0 2012-08-30 18:31 综合应用6-液晶屏交通灯
----------- --------- ---------- ----- ----
55335 13
相关资源
- C51单片机技术教程(304页)
- C51单片机交通
- 单片机电子密码锁
- 51单片机数码管四层电梯模拟系统
- 基于51单片机的温控系统
- 51单片机protues文件(KST-51.DSN)
- 51单片机交通灯设计
- 基于51单片机的简易计算器
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- qt上位机采集51单片机温湿度数据
- 基于51单片机射频RFID卡考勤上课上班
- 基于51单片机的888光立方设计.rar
- 51单片机DS18B20温度计C语言程序附详解
- 郭天祥51单片机C语言教程配套光盘
- 新概念51单片机C语言教程第2版郭天祥
- C语言实现51单片机和ADC0809芯片的AD模
- C语言实战——基于51单片机的RFID射频
- 基于51单片机的c语言程序 电机转速测
- 基于80C51单片机的20多个仿真实验
- 基于51单片机汽车尾灯设计论文
- 51单片机C语言编程入门(详讲版)
- 轻松玩转51单片机c语言
- 51单片机C编程100例
- 基于51系列单片机的电子罗盘设计总结
- 郭天祥51单片机C语言教程配套光盘内
- 51单片机C语言程序设计教程 王云书本
- 51单片机程序大全C语言写的150个程序
- 基于51单片机的教室计数系统 C语言程
- PS2键盘、鼠标与at89c51单片机的通信设
评论
共有 条评论