案例:

L1 - 红灯 30s; L2 - 黄灯 3s; L3 - 绿灯 40s。

核心代码


#include "reg52.h"
#define u8  unsigned char
#define u16 unsigned int
#define u32 unsigned longu8 code LedChar[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
u8 LedBuff[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};u8 T0RH;
u8 T0RL;bit flag1s = 0;
void CloseFucker();
void ConfigTimer0(u16 ms);
void TrafficLed();
void OpenLed(u8 i);
void main()
{EA = 1;CloseFucker();ConfigTimer0(1);P2 = (P2 & 0x1F) | 0x80;P0 = 0xFF;P2 = 0x00;while(1){if(flag1s == 1){flag1s = 0;TrafficLed();}}}void OpenLed(u8 i)//注意里面的移位...
{P2 = (P2 & 0x1F) | 0x80;P0 = ~(0x01 << (i-1));P2 = 0x00;
}void TrafficLed()
{static u8 timer = 0;static u8 color = 0; //0-Red; 1-Yellow; 2-Greenif(timer == 0){switch(color){case 0:color = 1;timer = 3;OpenLed(2);break;case 1:color = 2;timer = 40;OpenLed(3);break;case 2:color = 0;timer = 30;OpenLed(1);break;default :break;}}else{timer--;}LedBuff[0] = LedChar[timer%10];LedBuff[1] = LedChar[timer/10];}void CloseFucker()
{P2 = (P2 & 0x1F) | 0xA0;P0 = P0 & 0xAF;P2 = 0x00;
}void ConfigTimer0(u16 ms)
{u32 tmp;tmp = 11059200/12;tmp = (tmp*ms)/1000;tmp = 65536 - tmp;T0RH = (u8)(tmp >> 8);T0RL = (u8)tmp;TMOD &= 0xF0;TMOD |= 0x01;TH0 = T0RH;TL0 = T0RL;ET0 = 1;TR0 = 1;
}void LedScan()
{static u8 index;P2 = (P2 & 0x1F) | 0xE0;P0 = 0xFF;P2 = 0x00;P2 = (P2 & 0x1F) | 0xC0;P0 = 0x80 >> index;P2 = 0x00;P2 = (P2 & 0x1F) | 0xE0;P0 = LedBuff[index];P2 = 0x00;if(index < 7)index++;elseindex = 0;
}void InterruptTimer0() interrupt 1
{static u16 tmr1s=0;TH0 = T0RH;TL0 = T0RL;LedScan();tmr1s++;if(tmr1s == 1000){tmr1s = 0;flag1s = 1;}
}

蓝桥杯国信长天单片机实战--交通灯设计相关推荐

  1. 蓝桥杯国信长天单片机实战--呼吸灯设计

    利用PWM实现呼吸灯 核心源码 #include "reg52.h" #define u8 unsigned char #define u16 unsigned int #defi ...

  2. 蓝桥杯国信长天单片机实战--复习

    1.LED 例1:LED1和LED3点亮 #include<stc15f2k60s2.h>void main(){P2=0xA0;P0=0X00;P2=0X80;P0=0XFF;while ...

  3. 蓝桥杯国信长天单片机实战--数码管的动态显示

    一.原理分析 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管 ...

  4. 蓝桥杯国信长天单片机--LED灯模块(五)

    LED等内部连接示意图 整体思路 通过74HC138芯片及74HC02芯片输入高低电平,来控制Y4C为1或0.当Y4C为1时,方可通过P0端口来控制LED灯的亮灭.当Y4C为0时,无法控制LED灯的亮 ...

  5. 蓝桥杯国信长天单片机--硬件环境(一)

    CT107D 单片机由以下功能模块组成 1.功能模块 (1)单片机芯片 配置IAP15F2K61S2单片机 (2)显示模块 配置8路LED输出L1-L8 配置8位8段共阳极数码管DS1-DS2 配置L ...

  6. 蓝桥杯国信长天单片机--串口程序设计(十)

    实验目的: 1.掌握51单片机串口工作模式及相关寄存器配置方法 2.了解51单片机波特率的计算方法 3.掌握单片机串口接收中断服务函数的设计方法 程序说明: 1.通过USB连接线连接PC机,在计算机硬 ...

  7. 蓝桥杯国信长天单片机--程序下载(三)

    STC-ISP 程序下载 (1)打开下载界面:双击 stc-isp-15xx-v6.86.exe 运行程序,出现如图. (2)选择单片机型号:在左上方的"单片机型号"下拉列表中选择 ...

  8. 蓝桥杯国信长天单片机--软件环境(二)

    Keil Vision5 集成开发环境建立工程 第一步: 单击"Project"菜单下的"New Vision Project-"菜单项启动新工程的建立,出现新 ...

  9. 蓝桥杯国信长天单片机--数码管模块(六)

    数码管内部连接示意图 设备连接关系图 什么是位选,什么是段选? 假设我们有4个数码管,我想让某1个数码管显示对应的数字,我就需要先选中它,选中这个数码管的过程就叫位选:一般单个数码管都是8段(带小数点 ...

最新文章

  1. ArXiv 2020 | 抖音“变身漫画”滤镜背后的技术,难道来自这篇论文?
  2. Python基础教程:函数及其参数
  3. matlab 程序设计
  4. ubuntu17.04 调试系统工具bcc,systamtap安装
  5. jzoj5699-[GDOI2018day1]涛涛接苹果【树套树】
  6. ssl2290-潜水员【dp之二维费用】
  7. 流量复制_快速体验之《gor+diffy实现线上流量复制到测试环境》
  8. 谁说大学生找工作难?鄙视说这样话的人!!
  9. 数据结构二叉树线索化
  10. 分布式系统原理_终于有架构大牛把分布式系统概念讲明白了,竟然用了足足800页...
  11. java上下文_Java,gRPC和上下文传播(Java, gRPC and Context propagation)
  12. Eclipse 工程迁移到 Android Studio
  13. Extjs项目使用技巧————文件上传
  14. 白盒测试:三角形问题实验报告
  15. 算法工程师面试:必备的机器学习、深度学习知识点
  16. uclinux编译 心得一
  17. Win10 打开图片,提示文件系统错误(-2147219196)
  18. 乐视2能刷原生android,乐视2高通版(S2) 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  19. js删除网页中图片width 和 height
  20. python学习第八天

热门文章

  1. corona sdk android,在Corona SDK中为Android添加标记
  2. S32K的wdog组件使用(看门狗)
  3. 这可能是全网Spring Cloud Gateway限流最完整的方案了!
  4. 中国超级计算机第一次获得冠军,中国“芯”超级计算机首获世界冠军
  5. mysql 1118 通达_Mysql [Err] 1118 - Row size too large
  6. 为什么React还是比Vue受欢迎?
  7. NSString stringWithFormat
  8. Android手机主题制作
  9. 某程序员哀叹:月薪四五万,却每天极度焦虑痛苦,已有生理性不适,又不敢裸辞,怎么办?...
  10. 斯蒂夫乔布斯传札记:第一波