资源简介
研究目的: 模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。利用所学知识设计一款基于单片机的交通信号灯的控制系统。主要功能如下:东西向与南北向信号灯定时20秒交换一次、每次交换时点亮黄灯5s提醒行人。
代码片段和文件信息
#include
//--定义你要使用的IO口--//
#define GPIO_DIG P0
#define GPIO_PLACE P1 //1111-1101
//定义颜色
#define RED 1
#define YELLOW 2
#define GREEN 3
#define YELLOW_1 4
unsigned char Time;
//--定义全局变量--//
//RAMROM
unsigned char code DIG_CODE[16]={0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07
0x7F 0x6F 0x77 0x7C 0x39 0x5E 0x79 0x71};
unsigned char code DIG_PLACE[4]={
0xFE0xFD0xFB0xF7};//位选控制 查表的方法控制
unsigned char MyData[4]={0000};
//init
unsigned char x_R_val = 8;
unsigned char x_Y_val = 0;
unsigned char x_G_val = 0;
unsigned char y_R_val = 0;
unsigned char y_Y_val = 0;
unsigned char y_G_val = 15;
unsigned char x_static = 0;
unsigned char y_static = 0;
sbit x_R_LED = P2^2;
sbit x_Y_LED = P2^1;
sbit x_G_LED = P2^0;
sbit y_R_LED = P2^4;
sbit y_Y_LED = P2^5;
sbit y_G_LED = P2^3;
#define x_R_Work() x_R_LED = 0; x_Y_LED = 1; x_G_LED = 1;
#define x_Y_Work() x_R_LED = 1; x_Y_LED = 0; x_G_LED = 1;
#define x_G_Work() x_R_LED = 1; x_Y_LED = 1; x_G_LED = 0;
#define y_R_Work() y_R_LED = 0; y_Y_LED = 1; y_G_LED = 1;
#define y_Y_Work() y_R_LED = 1; y_Y_LED = 0; y_G_LED = 1;
#define y_G_Work() y_R_LED = 1; y_Y_LED = 1; y_G_LED = 0;
/*******************************************************************************
* 函数名 : DigDisplay
* 函数功能 : 使用数码管显示
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=0;i<4;i++)
{
GPIO_PLACE=DIG_PLACE[i];
GPIO_DIG=DIG_CODE[MyData[i]];//发送段码
j=10; //扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
/*******************************************************************************
* 函数名 : TimerConfiguration()
* 函数功能 : 配置定时器值
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void TimerConfiguration()
{
TMOD = 0x01; //选择工作方式1
TH0 = 0x3C; //设置初始值定时50MS
TL0 = 0xB0;
EA = 1; //打开总中断
ET0 = 1; //打开定时器0中断
TR0 = 1; //启动定时器0
}
/*******************************************************************************
* 函数名 : Timer0()
* 函数功能 : 定时器0中断函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void Timer0() interrupt 1
{
TH0 = 0x3C; //设置初始值
TL0 = 0xB0;
Time++;
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main(void)
{
TimerConfiguration();
Time = 0;//初始化时间
//自动判断当前状态
//1:R 2:Y 3:G
if((x_R_val!=0)&&(x_Y_val==0)&&(x_G_val==0))
{
x_static = RED;
}
if((x_R_val==0)&&(x_Y_val!=0)&&(x_G_val==0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-09 11:37 原理图\
文件 117784 2017-03-19 22:21 原理图\Sheet1.PDF
文件 250368 2017-03-19 22:20 原理图\Sheet1.SchDoc
目录 0 2017-06-04 04:24 实物照片\
文件 2604237 2017-03-19 22:05 实物照片\IMG_1300.JPG
文件 2826829 2017-03-19 21:29 实物照片\IMG_1301.JPG
文件 1533880 2017-03-19 21:29 实物照片\IMG_1302.JPG
文件 1763133 2017-03-19 21:29 实物照片\IMG_1303.JPG
文件 2276310 2017-03-19 22:36 实物照片\IMG_1304.JPG
目录 0 2017-06-04 04:24 源代码\
目录 0 2017-06-04 04:24 源代码\Listings\
文件 15234 2017-03-19 22:31 源代码\Listings\main.lst
文件 11911 2017-03-19 22:31 源代码\Listings\Project.m51
文件 14155 2017-03-19 22:31 源代码\Listings\STARTUP.lst
文件 5668 2017-03-19 22:31 源代码\main.c
目录 0 2017-06-04 04:24 源代码\ob
文件 9472 2017-03-19 22:31 源代码\ob
文件 8780 2017-03-19 22:31 源代码\ob
文件 991 2017-03-19 22:31 源代码\ob
文件 2065 2017-03-19 22:31 源代码\ob
文件 105 2017-03-19 22:31 源代码\ob
文件 819 2017-03-19 22:31 源代码\ob
文件 71083 2017-03-19 22:31 源代码\Project.uvgui.Tanghua
文件 5389 2017-03-19 21:29 源代码\Project.uvopt
文件 14031 2017-03-19 21:29 源代码\Project.uvproj
文件 6376 2016-03-14 08:58 源代码\STARTUP.A51
相关资源
- 测量液体的液位(内含原理图、源代
- MC成本系统使用说明
- 现代故障诊断与容错控制
- 差错控制编码(原书第2版)_[林舒.著
- 现代电气控制及PLC应用技术
- Power System Stability And Control--Kundur.pdf
- ROS中使用STM32作为底层控制板4WD(MD
- ROBOTICS:modellingplanning and control
- 混合储能系统的控制方法。详细传函
- 开关变换器的建模与控制1 张卫平
- 基于STM32开发的数据手套控制机械臂
- 自动控制原理考研大串讲
-
Lyapunov-ba
sed Control of Robotic Systems - 导弹制导和控制系统的分析与设计.
- 相控雷达控制.pdf
- 鲁棒H∞控制_11825104.pdf
- 机器人控制 ppt
- 基于STM32C8T6的按键温度双模式控制风
- [周克敏]鲁棒与最优控制中文版
- STM32f103循迹小车控制程序源码
- 《轻松玩转ARM Cortex-M0+微控制器基于飞
- 现代控制理论习题答案及答题过程
- Optimal Control
- WiFi-STC-DOWNLOADER.zip
- 现代控制理论(第三版)》答案
- 模糊pid和模糊控制的智能车编程实现
- 基于AT89C51单片机的水塔智能水位控制
- opc服务器设计与应用pdf+光盘
- 计算机控制系统 原理与设计:第3版
- 基于51单片机的全自动洗衣机控制器的
评论
共有 条评论