當前位置:
首頁 > 知識 > 單片機C語言程序設計:定時器控制交通指示燈

單片機C語言程序設計:定時器控制交通指示燈

/* 名稱:定時器控制交通指示燈

說明:東西向綠燈亮 5s 後,黃燈閃爍,閃爍 5 次亮紅燈,

紅燈亮後,南北向由紅燈變成綠燈,5s 後南北向黃燈閃爍,

閃爍 5 次後亮紅燈,東西向綠燈亮,如此往複。

*/

#include

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0; //東西向指示燈

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3; //南北向指示燈

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

//延時倍數,閃爍次數,操作類型

變數

uchar Time_Count=0,Flash_Count=0,Operation_Type=1;

//定時器 0 中斷函數

void T0_INT() interrupt 1

{

TL0=-50000/256;

TH0=-50000%256;

switch(Operation_Type)

{

case 1: //東西向綠燈與南北向紅燈亮 5s

RED_A=0;YELLOW_A=0;GREEN_A=1;

RED_B=1;YELLOW_B=0;GREEN_B=0;

if(++Time_Count!=100) return; //5s(100*50ms)切換

Time_Count=0;

Operation_Type=2;

break;

case 2: //東西向黃燈開始閃爍,綠燈關閉

if(++Time_Count!=8) return;

Time_Count=0;

YELLOW_A=~YELLOW_A;GREEN_A=0;

if(++Flash_Count!=10) return; //閃爍

Flash_Count=0;

Operation_Type=3;

break;

case 3: //東西向紅燈與南北向綠燈亮 5s

RED_A=1;YELLOW_A=0;GREEN_A=0;

RED_B=0;YELLOW_B=0;GREEN_B=1;

if(++Time_Count!=100) return; //5s(100*50ms)切換

Time_Count=0;

Operation_Type=4;

break;

case 4: //南北向黃燈開始閃爍,綠燈關閉

if(++Time_Count!=8) return;

Time_Count=0;

YELLOW_B=~YELLOW_B;GREEN_A=0;

if(++Flash_Count!=10) return; //閃爍

Flash_Count=0;

Operation_Type=1;

break;

}

}

//主程序

void main()

{

TMOD=0x01; //T0 方式 1

IE=0x82;

TR0=1;

while(1);

}

零基礎小白到大神之路,歡迎加裙 四八七八七五零零四,群里有免費C++課程,還有大量乾貨哦

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT技術java交流 的精彩文章:

程序員必知的6個好習慣
為什麼具有編程思維的孩子更容易成功?
做代碼審查必須得有工具,推薦N個最佳代碼審查工具
實戰黑客是如何通過釣魚wifi 盜取密碼的?
關於前端開發,500位工程師總結出了8款「最牛」編程語言工具

TAG:IT技術java交流 |

您可能感興趣

馴服定時器和線程
微創課堂◇定時器與計數器
陳若儀稱Kimi沉迷於魔方,玩平板還被限時,自配計時器好自律
如何使用定時器做脈衝計數?
奧特曼為何還不廢除彩色計時器的設定!
蘋果發布內測版 HomePod 固件,可接打電話、設置多個計時器
泰塔斯奧特曼新設定公開 胸口的勳章可不是計時器
App Store限免:有趣的重力彈球&做菜計時器&列車調度員
賽羅奧特曼無限形態SHF勁爆來襲,計時器可替換,武器為賽羅大刀
賽羅奧特曼雙計時器設定引猜想,我來告訴你答案!
中國科大在單細胞水平上創建熒光計時器用以檢測致病持留菌
能計算地球年齡的計時器
奧特曼胸前的彩色計時器有什麼作用?
擁有彩色計時器就能戰鬥,這類奧特曼說:我也要彩色計時器
領略灰熊隊主場場館特色:NBA首個使用透明計時器的球場 低調奢華
灰熊主場24秒計時器故障,現場DJ倒計時報數
一個沙漏計時器,鎖定犯罪嫌疑人!
Apple Watch用戶終於能對部分預裝應用說不了 包括鬧鐘、定時器等
Systemd 定時器:三種使用場景
關於霍華德你不知道的5件事:扣翻計時器只有他,唯一單換詹姆斯