云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > at89c51单片机-交通灯控制系统(含源码及仿真图)要点

at89c51单片机-交通灯控制系统(含源码及仿真图)要点

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 12:12:59

T0中断 定时计数初值 50ms计数(count)加1 判断1S(count=20?)到否 Y count清0 Time_SN--;Time_EW-- 恢复现场 中断返回 N

INT0中断 Busy_Button==0 SN_Add==0 获取中断信息 SN_Red==0 EW_Add==0 EW_Red==0 EW1-=1 所有路口全红灯 SN1+=1 SN1-=1 EW1+=1 Busy_Button==1 SN1>99 Y SN1=99 SN1<20 Y SN1=20 EW1>99 Y EW1=99 EW1<20 Y EW1=20 N N N N 恢复现场 中断返回

5.3 P0、P1口显示状态编码表

P0 P0^7 P0^6 P0^5 P0^4 P0^3 P0^2 P0^1 P0^0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 编码 备注 0FEH 红灯 0BFH 黄灯 0F7H 绿灯 P1 P1^7 P1^6 P1^5 P1^4 P1^3 P1^2 P1^1 P1^0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 编码 备注 0C0H 0F9H 0A4H 0 1 2 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0B0H 99H 92H 82H F8H 80H 90H 3 4 5 6 7 8 9 5.4 程序源代码

#include #define uchar unsigned char

uchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar code b[4]={0x0d,0x0e,0x07,0x0b}; //P2口低有效

uchar code c[4]={0x6a,0x66,0x5c,0x3c}; //P1口 低电平有效

char SN=35,WE=40; //SN表示南北方向 主干道 WE表示东西方向 支干到

char SN_G=35,WE_G=20,Y=5; //sn——g表示南北方向的绿灯 we——g表示东西方向的绿灯

uchar i,k=0,count=0; void delay(uchar t); void light(); void led(); void ledthrough(); void leddrive();

sbit K0=P3^7; //开关KO sbit K1=P3^6; //开关K1 sbit K2=P3^3; //开关K2

sbit K3=P3^5; //开关K3 sbit K4=P3^2; //开关K4

/*******程序初始化**********/ void init(void) {

TMOD=0X01; //计数器模式1 为16位计数器 }

/*******中断0处理程序*****/ void int0(void) interrupt 0 {

EA=0; //关闭总中断

P1=0x6c; //东西南北方向为红灯 TR0=!TR0; //计数器停止工作 for(; ;) //无条件循环 {

ledthrough(); //调用通行时间显示函数

if(K0==0) {

delay(10);

if(K0==0) {

while(!K0) //当松手时跳出循环 执行后面程序

{

ledthrough(); //调用通行时间显示函数

//设置南北通行时间

TH1=(65536-50000)/256; TL1=(65536-50000)%6; IT0=1; ET0=1; TR0=1; EA=1; EX0=1; EX1=1;

//用时50ms

//外部中断为低电平触发

//允许T0中断 //启动计数器 //总中断 //允许外部中断0 //允许外部中断1

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

T0中断 定时计数初值 50ms计数(count)加1 判断1S(count=20?)到否 Y count清0 Time_SN--;Time_EW-- 恢复现场 中断返回 N INT0中断 Busy_Button==0 SN_Add==0 获取中断信息 SN_Red==0 EW_Add==0 EW_Red==0 EW1-=1 所有路口全红灯 SN1+=1 SN1-=1 EW1+=1 Busy_Button==1 SN1>99 Y SN1=99 SN199 Y EW1=99 EW1<20 Y EW1=20 N N N N 恢复现场 中断返回 5.3 P0、P1口显示状态编码表 P0 P0^7 P0^6 P0^5 P0^4 P0^3 P0^2 P0^1 P0^0 1 1 1 1 0 1 1 1 1 1 1

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com