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

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

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

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

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


一、🎊主要功能演示視頻

8255交通燈

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

在這里插入圖片描述

2.💍文字介紹

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


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

#define uchar unsigned char             //對(duì)變量定義名進(jìn)行簡(jiǎn)略定義
#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片選信號(hào)
sbit button1 = P1^0;//緊急開(kāi)關(guān)東西通行
sbit button2 = P1^1;//緊急開(kāi)關(guān)南北通行
    
uint counter = 10;//倒計(jì)時(shí)10秒
uint state = 0;//狀態(tài)選擇

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

//簡(jiǎn)單的延時(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開(kāi)始
		{//狀態(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;
		}
}

//緊急開(kāi)關(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)
{//片選信號(hào)打開(kāi)
    CS = 0;
		
		//定時(shí)器初始化,并啟動(dòng),延時(shí)為20ms
		TMOD = 0x01;
		TH0 = (65536 - 20000)/256;
		TL0 = (65536 - 20000)%256;
		IE = 0x82;
		TR0 = 1;
		//設(shè)置8255控制字,PAPBPC口均以方式0輸出
		COM=0x80;
		//進(jìn)入循環(huán)
		while(1)
		{  button();//判斷是否按下緊急開(kāi)關(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í)器中斷函數(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.🎄我的軟件準(zhǔn)備

在這里插入圖片描述

2.🎋連接實(shí)驗(yàn)圖

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

👓設(shè)備圖

在這里插入圖片描述

🥟80C51連接部分

在這里插入圖片描述

🍜8255連接部分

在這里插入圖片描述

🍞交通燈部分

在這里插入圖片描述

3.🍟二進(jìn)制文件

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

我的Keil5項(xiàng)目大體就是這樣
在這里插入圖片描述

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

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

在這里插入圖片描述

如果對(duì)您有用,別忘了幫本座點(diǎn)個(gè)贊再走?。。?!

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

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

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

廣告

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

網(wǎng)站托管運(yùn)營(yíng)