
单片机(ISIS 7 Professional):实现简易十字路口红绿灯代码项目
这一篇文章主要介绍用C语言制作一个简易的十字路口红绿灯。
基本电路图如下:
使用的代码如下:
#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit LED0 = P0^0; sbit LED1 = P0^1; sbit LED2 = P0^2; sbit LED3 = P0^3; sbit LED4 = P0^4; sbit LED5 = P0^5; uchar Time = 0,Flash = 0; uint flag = 1; //T0 中断函数 void LED_Flash()interrupt 1 { TH0 = (65536-5000)/256; TL0 = (65536-5000)%256; switch(flag) { case 1: LED0 = 0;LED1 = 0;LED2 = 1; LED3 = 1;LED4 = 0;LED5 = 0; if(++Time != 200) return; Time = 0;flag = 2; break; case 2: if(++Time != 10) return; Time = 0; LED0 = 0;LED1 =! LED1;LED2 = 0; LED3 = 0;LED4 =! LED4;LED5 = 0; if(++Flash != 10) return; Flash = 0;flag = 3; break; case 3: LED0 = 1;LED1 = 0;LED2 = 0; LED3 = 0;LED4 = 0;LED5 = 1; if(++Time != 200) return; Time = 0;flag = 4; break; case 4: if(++Time != 10) return; Time = 0; LED0 = 0;LED1 =! LED1;LED2 = 0; LED3 = 0;LED4 =! LED4;LED5 = 0; if(++Flash != 10) return; Flash = 0;flag = 1; break; default:break; } } void main() { EA = 1; ET0 = 1; TMOD = 0x01; //定时器//计数器方式寄存器TMOD,定时器T0,工作于模式0 //方式:Mode 0x00,位数13位,计数范围:0——8191 TH0 = (65536-5000)/256; TL0 = (65536-5000)%256; IE = 0x82; TR0 = 1; //定时器开关 while(1); } /*仅供学习参考*/👁️ 阅读量:0
© 版权声明:本文《单片机(ISIS 7 Professional):实现简易十字路口红绿灯代码项目》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686559532a292068.html。