资源简介
基于51单片机的智能交通灯控制,其中包含程序代码,仿真图,设计报告
代码片段和文件信息
//***************简易智能交通灯设计**************//
//***********************************************//
#include
#define uchar unsigned char
#define uint unsigned int
//***********************************************//
uchar code tab[]={ 0x3F/*0*/
0x06/*1*/
0x5B/*2*/
0x4F/*3*/
0x66/*4*/
0x6D/*5*/
0x7D/*6*/
0x07/*7*/
0x7F/*8*/
0x6F/*9*/
} ;
//*******************共阴码**********************//
sbit wela=P3^0; //段选
sbit dula=P3^1; //位选
sbit K1=P3^6; //停止
sbit K2=P3^7; //清零
sbit K3=P3^5;
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
uchar aashigeflagtt;
uint num=30;
//*******************延时函数*******************//
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//********初始化主函数T0定时器******************//
void init()
{
TMOD=0x01; //设置定时器0工作在方式一(16位工作方式)
TH0=(65536-50000)/256;
TH1=(65536-50000)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //开定时器
D2=0;
D1=0;
}
//*************数码显示子程序*******************//
void Display(uchar shiuchar ge) //显示十位和个位
{
dula=1; //开段选
P2=tab[shi]; //把十位给
dula=0; //关段选
wela=1; //开位选
P0=0xfe; //打开第一个数码管 1111 1110 - 0111 1111
wela=0; //关位选
P2=0x00; //关闭数码管
delay(10);
dula=1;
P2=tab[ge];
dula=0;
wela=1;
P0=0xfd;
wela=0;
P2=0x00;
delay(10);
}
//************键盘扫描程序**********************//
void keyscan()
{
uchar aa;
if(K1==0)
{
aa++;
switch(aa)
{
case 1:TR0=0; //停止
break;
case 2:TR0=1; //启动
}
if(aa==2)
{
aa=0;
init();
}
}
if(K2==0)
{
delay(80);
if(K2==0)
{
delay(80);
num++;
}
while(!K2);
}
if(K3==0)
{
delay(80);
if(K3==0)
{
delay(80);
num--;
}
while(!K3);
}
}
void main()
{
init();
while(1)
{
shi=num/10;
ge =num%10;
Display(shige);
keyscan();
}
}
//*************定时器控制**********************//
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TH1=(65536-50000)%256;
aa++;
if(aa==20)
{
aa=0;
num--;
if(num<=10)
{
D3=1; //红灯亮
D2=0;
if(num<=5)
{
D1=1; //黄灯开始闪烁
delay(80);
D1=0;
}
if(num==0)
{
D2=1;
D3=0;
}
}
if(num==-1)
{
num=30;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 159609 2013-06-24 19:58 智能交通灯.DSN
文件 290304 2013-06-24 22:06 智能交通灯设计1.doc
文件 2779 2013-06-24 16:11 jiaotongdeng.c
- 上一篇:多个DLL合并成一个DLL
- 下一篇:编译原理答案 李文生
相关资源
- 51单片机电子琴设计C程序
- 基于51单片机的电子密码锁keil源码电
- 智能交通灯控制器keil程序代码+Prote
- 51单片机测量环境温度
- C8051F020.SchLib
- C8051F020用定时器3以中断方式产生方波
- 基于AT89C51的倒计时盘
- 51单片机 按键控制流水灯左右两边中
- 基于51单片机的出租车计费系统设计
- 51单片机频率计包括占空比1602显示
- 基于51单片机的自动门系统.zip
- 51单片机入门常用函数
- 篮球记分牌proteus版本.zip
- C51蜂鸣器播放两只老虎和小星星代码
- 课程设计题七:交通灯控制器.zip
- 基于51单片机温控风扇
- 加湿器源码
- 8086Proteus交通灯
- 51单片机的电机测速
- mma8451 stm32代码.rar.rar
- 基于51单片机的数字频率计及proteus仿
- 汇编实现pwm及按键控制
- mega16单片机实现交通灯protues仿真,
- IP5209IP5109IP5207IP5108寄存器手册.pdf
- 51单片机开发板原理图经典
- 51单片机控制TC35 之发送TEXT短信
- 1bbaa9493bf64fa6b626d351c0c84423.zip
- 基于VHDL的交通灯设计EDA课程设计报告
- 51单片机正弦波C程序
- 多路温度采集—8086与Proteus实现
评论
共有 条评论