资源简介
包含交通灯仿真图与仿真程序,pcb封装,元件清单,设计论文,实物图,制作详解,芯片资料等等
代码片段和文件信息
#include //头文件
#define uchar unsigned char
#define uint unsigned int //宏定义
uchar data buf[4]; //秒显示的变量
uchar data sec_dx=15; //东西数默认
uchar data sec_nb=15; //南北默认值
uchar data set_timedx=15; //设置东西方向的时间
uchar data set_timenb=15; //设置南北方向的时间
int n;
uchar data countt0countt1;//定时器0中断次数
//定义6组开关
sbit k4=P3^7; //切换方向
sbit k1=P3^5; //时间加
sbit k2=P3^6; //时间减
sbit k3=P3^4; //确认
sbit k5=P3^1; //禁止
sbit k6=P1^5; //夜间模式
sbit Red_nb=P2^6; //南北红灯标志
sbit Yellow_nb=P2^5; //南北黄灯标志
sbit Green_nb=P2^4; //南北绿灯标志
sbit Red_dx=P2^3; //东西红灯标志
sbit Yellow_dx=P2^2; //东西黄灯标志
sbit Green_dx=P2^1; //东西绿灯标志
bit set=0; //调时方向切换键标志 =1时,南北,=0时,东西
bit dx_nb=0; //东西南北控制位
bit shanruo=0; //闪烁标志位
bit yejian=0; //夜间黄灯闪烁标志位
uchar code table[11]={ //共阴极字型码
0x3f //--0
0x06 //--1
0x5b //--2
0x4f //--3
0x66 //--4
0x6d //--5
0x7d //--6
0x07 //--7
0x7f //--8
0x6f //--9
0x00 //--NULL
};
//函数的声明部分
void delay(int ms); //延时子程序
void key(); //按键扫描子程序
void key_to1(); //键处理子程序
void key_to2();
void key_to3();
void display(); //显示子程序
void logo(); //开机LOGO
void Buzzer();
//主程序
void main()
{
TMOD=0X11; //定时器设置
TH1=0X3C;
TL1=0XB0;
TH0=0X3C; //定时器0置初值 0.05S
TL0=0XB0;
EA=1; //开总中断
ET0=1; //定时器0中断开启
ET1=1; //定时器1中断开启
TR0=1; //启动定时0
TR1=0; //关闭定时1
logo(); //开机初始化
P2=0Xc3; // 开始默认状态,东西绿灯,南北黄灯
sec_nb=sec_dx+5; //默认南北通行时间比东西多5秒
while(1) //主循环
{
key(); //调用按键扫描程序
display(); //调用显示程序
}
}
//函数的定义部分
void key(void) //按键扫描子程序
{
if(k1!=1) //当K1(时间加)按下时
{
display(); //调用显示,用于延时消抖
if(k1!=1) //如果确定按下
{
TR0=0; //关定时器
shanruo=0; //闪烁标志位关
P2=0x00; //灭显示
TR1=0; //启动定时1
if(set==0) //设置键按下
set_timedx++; //南北加1S
else
set_timenb++; //东西加1S
if(set_timenb==100)
set_timenb=1;
if( set_timedx==100)
set_timedx=1; //加到100置1
sec_nb=set_timenb ; //设置的数值赋给东西南北
sec_dx=set_timedx;
do
{
display(); //调用显示,用于延时
}
while(k1!=1); //等待按键释放
}
}
if(k2!=1) //当K2(时间减)按键按下时
{
display(); //调用显示,用于延时消抖
if(k2!=1) //如果确定按下
{
TR0=0; //关定时器0
shanruo=0; //闪烁标志位关
P2=0x00; //灭显示
TR1=0; //关定时器1
if(set==0)
set_timedx--; //南北减1S
else
set_timenb--; //东西减1S
if(set_timenb==0)
set_timenb=99;
if( set_timedx==0 )
set_timedx=99; //减到1重置99
sec_nb=set_timenb ; //设置的数值赋给东西南北
sec_dx=set_timedx;
do
{
display(); //调用显示,用于延时
}
while(k2!=1); //等待按键释放
}
}
if(k3!=1) //当K3(确认)键按下时
{
display(); //调用显示,用于延时消抖
if(k3!=1) //如果确定按下
{
TR0=1; //启动定时器0
sec_nb=set_timenb; //从
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 30720 2014-04-09 23:59 9-任务书\交通灯任务书.doc
文件 52736 2015-03-15 20:17 10-开题报告\开题报告.doc
文件 626890 2014-04-09 23:59 11-芯片资料\74HC245.pdf
文件 5226818 2014-05-26 21:28 11-芯片资料\AT89C51.pdf
文件 473904 2014-05-26 21:24 11-芯片资料\at89c52.docx
文件 1581040 2014-05-26 21:29 11-芯片资料\AT89S51.doc
文件 52224 2014-05-26 23:08 11-芯片资料\AT89S52的中文资料.doc
文件 2655200 2014-04-09 23:59 11-芯片资料\STC89C51.pdf
文件 1598470 2014-04-09 23:59 11-芯片资料\STC89C51应用介绍.pdf
文件 201216 2014-05-26 21:22 11-芯片资料\STC89C52单片机.doc
文件 14528860 2014-05-26 21:23 11-芯片资料\stc89c52单片机.pdf
文件 21303 2015-10-16 17:04 12-pcb\Backup of Sheet1.Sch
文件 23402 2015-10-16 17:01 12-pcb\Previous Backup of Sheet1.Sch
..A.SH. 40448 2015-10-16 12:48 12-pcb\Thumbs.db
文件 530432 2015-10-16 17:04 12-pcb\交通灯控制系统.Bkp
文件 491520 2015-10-16 17:04 12-pcb\交通灯控制系统.ddb
文件 13312 2015-10-16 17:19 13-操作说明及功能\主要功能及操作说明.docx
文件 47 2014-07-03 00:00 13-操作说明及功能\功能演示视频.txt
文件 1167872 2015-03-15 20:18 14-交通灯论文\2-正版+更新+单片机交通灯控制.doc
文件 286208 2014-05-17 00:10 14-交通灯论文\加蜂鸣器 2-正版+更新+单片机交通灯控制.doc
文件 386829 2014-04-09 23:59 14-交通灯论文\单片机交通灯控制_毕业设计.doc
文件 469504 2014-04-09 23:59 14-交通灯论文\基于单片机的交通灯设计论文.doc
文件 11635 2017-11-06 23:05 1-c程序\jtd
文件 8576 2017-11-06 23:05 1-c程序\jtd.c
文件 2615 2017-11-06 23:05 1-c程序\jtd.hex
文件 39 2017-11-06 23:05 1-c程序\jtd.lnp
文件 23622 2017-11-06 23:05 1-c程序\jtd.LST
文件 17788 2017-11-06 23:05 1-c程序\jtd.M51
文件 12922 2017-11-06 23:05 1-c程序\jtd.OBJ
文件 154 2018-03-19 18:51 1-c程序\jtd.plg
............此处省略101个文件信息
- 上一篇:刘焱-web安全与机器学习三本书打包
- 下一篇:OpenCV两种方法显示中文
评论
共有 条评论