80C51控制8255實現(xiàn)交通燈模擬系統(tǒng)(詳)-創(chuàng)新互聯(lián)

80C51控制8255實現(xiàn)交通燈模擬系統(tǒng)(詳)

提示:實現(xiàn)的功能較為簡單,這個是我的假期大作業(yè)(但是這個挺重要的,能為初學(xué)者節(jié)省不必要的大量時間)

創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計客戶1000+,服務(wù)滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注品牌網(wǎng)站制作和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!

文章目錄
  • 80C51控制8255實現(xiàn)交通燈模擬系統(tǒng)(詳)
  • 一、🎊主要功能演示視頻
  • 二、🎉主要功能介紹
    • 1.💎流程圖
    • 2.💍文字介紹
  • 三、🎃源碼(C語言附帶注釋)
  • 四、🎨(初學(xué)者)操作指南
    • 1.🎄我的軟件準備
    • 2.🎋連接實驗圖
    • 3.🍟二進制文件
  • 🧨總結(jié)(附百度網(wǎng)盤資源)


一、🎊主要功能演示視頻

8255交通燈

二、🎉主要功能介紹 1.💎流程圖

在這里插入圖片描述

2.💍文字介紹

用51單片機擴展一片8255,用12個發(fā)光二極管模擬一個十字路口的紅、綠、黃燈,并設(shè)置二個緊急放行按鍵;正常行駛時,東西或南北方向的燈按綠燈亮7秒,黃燈閃爍3秒,紅燈亮10秒;當(dāng)東西或南北方向的緊急放行按鍵按下時,禁行方向紅燈維持7秒,相對應(yīng)放行方向為綠燈維持4秒,然后立即變?yōu)辄S燈閃爍3秒,緊急情況結(jié)束后,禁行方向變?yōu)榫G燈,相對方向變?yōu)榧t燈正常回歸循環(huán)。


三、🎃源碼(C語言附帶注釋)
#include  //引入頭文件
#include//為了外部寫入數(shù)據(jù)的頭文件

#define uchar unsigned char             //對變量定義名進行簡略定義
#define uint unsigned int

#define PA XBYTE[0X0000] //8255A端口地址
#define PB XBYTE[0X0001]//8255B端口地址
#define PC XBYTE[0X0002]//8255C端口地址
#define COM XBYTE[0X0003]//8255A控制口地址

sbit CS = P2^7;//8255 CS片選信號
sbit button1 = P1^0;//緊急開關(guān)東西通行
sbit button2 = P1^1;//緊急開關(guān)南北通行
    
uint counter = 10;//倒計時10秒
uint state = 0;//狀態(tài)選擇

uint aaa = 0;//輸出口存數(shù)

//簡單的延時程序
void delay_ms(uchar x) 
{uchar i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}

//控制狀態(tài)   交通燈盜撩鵡
void traffic_lights()
{switch(state)//判斷狀態(tài),從0開始
		{//狀態(tài)1,東西通行,南北禁止
		case 0:
		    aaa = 0x09;//輸出PA,東西綠燈南北紅燈
				PA = aaa;
				break;
				//狀態(tài)2,東西緩速停車,南北禁止通行
		case 1:
		    aaa = 0x0a;//東西黃燈,南北紅燈
				PA = aaa;
				delay_ms(1);//閃爍延遲
				aaa = 0x08;//東西不亮,南北紅燈
				PA = aaa;
				delay_ms(1);
				break;
				//狀態(tài)3,東西禁止,南北通行
		case 2:
		    aaa = 0x24;//東西紅燈,南北綠燈
				PA = aaa;
				break;
				//狀態(tài)4,東西禁止,南北緩速停車
		case 3:
		    aaa = 0x14;//東西紅燈,南北黃燈
				PA = aaa;
				delay_ms(1);//閃爍延遲
				aaa = 0x04;//東西紅燈,南北不亮
				PA = aaa;
				delay_ms(1);
				break;
		}
}

//緊急開關(guān),控制南北或者東西通行
void button()
{if(button1 == 0)
	 {counter = 7;//數(shù)碼管顯示七秒
			state = 0;//變?yōu)闋顟B(tài)1
	 }
	 if(button2 == 0)
	 {counter = 7;//數(shù)碼管顯示七秒
			state = 2;//變?yōu)闋顟B(tài)2
	 }
}

//主程序
void main(void)
{//片選信號打開
    CS = 0;
		
		//定時器初始化,并啟動,延時為20ms
		TMOD = 0x01;
		TH0 = (65536 - 20000)/256;
		TL0 = (65536 - 20000)%256;
		IE = 0x82;
		TR0 = 1;
		//設(shè)置8255控制字,PAPBPC口均以方式0輸出
		COM=0x80;
		//進入循環(huán)
		while(1)
		{  button();//判斷是否按下緊急開關(guān)
		
			traffic_lights();//交通燈亮滅函數(shù)
			
			//數(shù)碼管顯示數(shù)字
			if(counter == 10)
			{	   PC = counter;
				 delay_ms(1);
			   PB = counter;
				 delay_ms(1);
			}	
			else
			{		PB = counter;
				delay_ms(1);
				PC = counter;
				delay_ms(1);
			}
		}
}
 
 //定時器中斷函數(shù)
void T0_INT () interrupt 1
{static uint local_counter = 0;//定義循環(huán)次數(shù)
		
		TH0 = (65536 - 20000)/256;//設(shè)置20ms延遲
		TL0 = (65536 - 20000)%256;
		
		if(local_counter++ >= 50)//20*50=1s
		{   local_counter = 0;//循環(huán)次數(shù)歸零
			 
			 counter--;//秒數(shù)減一
			 
			 if(state == 0 || state == 2)//關(guān)于1,3狀態(tài)的切換
			 {	    if(counter == 3)
					{state=(state + 1)%4;}//循環(huán)切換
			 }
			 else if(counter == 0)//關(guān)于 2,4狀態(tài)的切換
			 {	   state = (state +1)%4;//循環(huán)切換
			 
			   if(state ==0 || state == 2)//重新為counter置10秒
			   {		     counter = 10;
			   }
			 }
		}
}
四、🎨(初學(xué)者)操作指南 1.🎄我的軟件準備

在這里插入圖片描述

2.🎋連接實驗圖

利用protues8連接實驗電路圖,新建項目等一些基礎(chǔ)操作不做贅述。

👓設(shè)備圖

在這里插入圖片描述

🥟80C51連接部分

在這里插入圖片描述

🍜8255連接部分

在這里插入圖片描述

🍞交通燈部分

在這里插入圖片描述

3.🍟二進制文件

利用Keil5,創(chuàng)建AT89C51項目后,編寫導(dǎo)入C語言文件,調(diào)整輸出設(shè)置,編譯運行成功后,生成.hex(二進制文件),將這個文件導(dǎo)入protues8的80C51單片機即可。

我的Keil5項目大體就是這樣
在這里插入圖片描述

🧨總結(jié)(附百度網(wǎng)盤資源)

鏈接:https://pan.baidu.com/s/1Rt4ONmYPMZjuHw0gW9HVKQ?pwd=1111
提取碼:1111 點我跳轉(zhuǎn)

在這里插入圖片描述

如果對您有用,別忘了幫本座點個贊再走啊?。?!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站名稱:80C51控制8255實現(xiàn)交通燈模擬系統(tǒng)(詳)-創(chuàng)新互聯(lián)
文章地址:http://www.muchs.cn/article6/djhgig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護動態(tài)網(wǎng)站、軟件開發(fā)做網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營