admin管理员组文章数量:1794759
单片机(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); } /*仅供学习参考*/版权声明:本文标题:单片机(ISIS 7 Professional):实现简易十字路口红绿灯代码项目 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686559315a81851.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论