admin管理员组

文章数量:1794759

单片机(ISIS 7 Professional):实现简易十字路口红绿灯代码项目

单片机(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); } /*仅供学习参考*/

本文标签: 红绿灯单片机简易路口代码