51单片机——红绿灯系统
利用51单片机完成红绿灯系统
该程序是基于使用STC89C52芯片下的51开发板
首先确认两种工作状态:
①南北方向红灯60s;东西方向绿灯57s,然后黄灯三秒。
②南北方向绿灯57秒,然后黄灯3秒;东西方向红灯60s。
这两种工作状态交替进行。
该程序是主要使用定时器中断来完成的,学好定时器中断就能轻松写出这个程序
给程序标了一些简单注释,有看不懂的地方可以评论区留言。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit du=P2^6;
sbit we=P2^7;
sbit NS_r=P1^0;
sbit NS_y=P1^1;
sbit NS_g=P1^2;
sbit EW_r=P1^4;
sbit EW_y=P1^5;
sbit EW_g=P1^6;
uint i=60,j=57;
uchar k;
uchar code SMGdu[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
uchar code SMGwe[]={0xfe,0xfd,0xef,0xdf};
void time0() //定时计数器0初始化
{
EA=1;
ET0=1; //配置定时器0中断
TR0=1;
TMOD=0x01;
TH0=0xed; //定时5ms
TL0=0xff;
}
void display() //扫描数码管
{
uint n1,n2,e1,e2;//NS,EW方向数码管
n1=i/10;
n2=i%10;
e1=j/10;
e2=j%10;
we = 1;//打开位选锁存器
P0 = SMGwe[k%4];
we = 0;//锁存位选数据
switch(k%4)
{
case 0:du=1;P0=SMGdu[e1];du=0;break;
case 1:du=1;P0=SMGdu[e2];du=0;break;
case 2:du=1;P0=SMGdu[n1];du=0;break;
case 3:du=1;P0=SMGdu[n2];du=0;break;
}
}
void main()
{
time0();
NS_r=0; //初始化南北方向红灯,东西方向绿灯
EW_g=0;
while(1)//两个阶段 1.南北方向红60s;东西方向绿57s,黄3s
{ //2.东西方向红60s;南北方向绿57s,黄3s if(j==0&&i==3){EW_g=1;EW_y=0;j=3;}if(i==0&&EW_y==0) {NS_r=1;NS_g=0;EW_y=1;EW_r=0;i=57;j=60;}if(i==0&&j==3){NS_g=1;NS_y=0;i=3;}if(i==0&&NS_y==0){NS_y=1;NS_r=0;EW_r=1;EW_g=0;i=60;j=57;}
}
}
void timer0() interrupt 1 //定时器0中断处理函数
{
TH0=0xed; //定时5ms
TL0=0xff;
k++;
if(k==200)
{
i–;
j–;
k=0;
}
display();
}
51单片机——红绿灯系统相关推荐
- 单片机复位电路电容一定用电解电容_什么叫51单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机.晶振电路.复位电路.下面给出一个51单片机的最小系统电路图. 复位 ...
- 理解51单片机最小系统的工作原理
51单片机最小应用系统 概述 要想使用单片机,第一个要搭建的电路就是单片机的最小系统,有了这个最小系统单片机就可以去正常的工作,即使没有其他的外围电路(显示器啥的),也可以对单片机进行程序的编写,程序 ...
- 51单片机最小系统板制作过程
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- 【单片机】51单片机最小系统
51单片机最小系统由三部分组成:主控电路.复位电路.晶振电路. 添加LED电路和独立按键.原理图如下所示:
- 51单片机最小系统的制作和程序烧录
这篇博客就来分享一下51单片机最小系统的制作以及怎么下载程序 首先准备的材料有:一块板子,一块89c51/52的芯片,一个51芯片插座,12MHZ的晶振,一个10的电阻,一个10uf的电解电容 两个2 ...
- 手把手讲解51单片机最小系统焊接、流水灯(跑马灯)编写以及烧录
(1)首先当然是要购买"51单片机最小系统的散件",淘宝上面卖的比较多,散件的话一般二.三十元左右,其次还需要购买一个电烙铁,一般30瓦的就足够了,这里我就讲一讲51单片机散件的焊 ...
- 51单片机 | 数字电路与C语言基础 | 51单片机最小系统
文章目录 一.数字电路基础 1.电平特性 2.二进制与十六进制 2.1 二进制 2.2 十六进制 3.二进制的逻辑运算 二.C语言基础语法 三.51单片机最小系统 1. 51 单片机最小系统构成 1. ...
- 51单片机最小系统的相关知识
51单片机最小系统的相关知识 单片机最小系统,或者称为 最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机.晶振电路.复位电路.下面给出一个5 ...
- 51单片机最小系统电路设计
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- 51单片机最小系统制作笔记
原文地址:51单片机最小系统制作笔记作者:忘忧角落 上面所示是51系列单片机最小系统全家福照片,组装完成后的照片如下: 本电路各输入.输出脚全部用插针引出,可以连接外围电路进行单片机电路的实验,芯片可 ...
最新文章
- iOSSharing #9 | 2019-05-19
- 相爱相杀:程序员的数学
- call of overloaded 'round(float)' is ambiguous
- Oracle database datafile header中记录的datafile的大小
- 手把手玩转协同编辑(1):AST (Address Space Transformation)地址空间转换算法 基本介绍...
- jQuery $.ajax传递数组的traditional参数传递必须true 对象的序列化
- 理论基础 —— 树 —— 树的存储结构
- simhash与Google的网页去重
- 48 - 算法 - leetcode 118 杨辉三角
- 通过VirtualBox与Vagrant在windows上搭建LNMP开发环境
- java对列表数据排序_如何在Java中对列表进行排序
- bzoj 1093 [ ZJOI 2007 ] 最大半连通子图 —— 拓扑+DP
- 单服务器部署rancher_基于CentOS 7部署Rancher 2.0
- 【JS】1126- 如何更好的取消一个promise?
- MTK 智能机平台系统文件夹文件详解
- 学生网课网页设计成品 在线视频学习类网页制作 三层结构网页模板 静态HTML注册登录网页模板 学生毕业设计网页制作作品 网校类网页代制做
- 【POJ 3107】 Godfather
- hisi3559平台PCIE转USB调试
- 小论文查重率一般小于多少?
- JS相等(==)和全等(===)区别
热门文章
- 全自动与半自动手表的区别_机械表全自动好还是半自动好 有什么区别
- 点击改变文本框选择内容,Jquery datatables 重新加载数据
- 触动精灵mysql用法教程_触动精灵如何使用 触动精灵脚本编写教程攻略大全
- 学计算机买电脑显卡1605ti够吗,GTX1650和GTX1050Ti哪个好?GTX1050ti和GTX1650性能差距对比评测...
- 决策树模型,XGBoost,LightGBM和CatBoost模型可视化
- 语义分割论文:Fully Convolutional Networks for Semantic Segmentation (CVPR2015)
- MySQL数据库高级SQL语句【进阶查询、null值、数据库正则、数据库运算符、连接查询(内连接、左外连接、右外连接)】
- 【HTML基础】acronym和abbr的区别
- 扫描QR码即可完成移动支付的LevelUp推出集合NFC、QR码等技术的移动支付终端,供商家免费使用 | 36氪
- [Spark进阶]--深入Spark Locality Level