標(biāo)題:
51單片機(jī)+8155芯片的交通燈程序
[打印本頁]
作者:
元亨利貞
時間:
2020-5-6 21:36
標(biāo)題:
51單片機(jī)+8155芯片的交通燈程序
最近做了一個關(guān)最近做了一個關(guān)于8155模擬交通燈的運(yùn)行系統(tǒng),寫的不好,還有很多不足,有的地方還不完善,請大家多多指教。
電路原理圖如下:
捕獲.PNG
(146.25 KB, 下載次數(shù): 49)
下載附件
交通燈仿真.jpg
2020-5-6 21:30 上傳
單片機(jī)源程序如下:
#include<reg52.h>
# include <absacc.h>
#define uchar unsigned char //定義為uchar類型
#define uint unsigned int //定義為uint類型
# define COM XBYTE[0XFE00] //控制字地址(總控制,決定了PA/B/C是寫還是讀等)
# define PA XBYTE[0XFE01] //控制PA地址(總控制寫的是讀時,里面存的是讀的值;
// 寫的是寫時,里面要寫入控制值)
# define PB XBYTE[0XFE02] //控制PB地址
# define PC XBYTE[0XFE03] //控制PC地址
sbit g = P2^1;
sbit s = P2^2;
sbit eg = P2^3;
sbit ws = P2^4;
//sbit Key_N = P1^4; //獨(dú)立按鍵
//sbit Key_S = P1^5;
//sbit Key_W = P1^6;
//sbit Key_E = P1^7;
sbit KEYA = P1^4;
sbit KEYB = P1^5;
uint ge,shi; //定義全局變量
uint m = 30;
uint n;
uint num;
/*交通燈的數(shù)值*/
uchar lcd1 = 10; //倒計時初始值為25用于改變
uchar lcd2 = 15; //的倒計時初始值為30用于改變
uchar lcd11; //倒計時
uchar lcd22; //倒計時
uchar change1; //LCD1紅綠燈轉(zhuǎn)換
uchar yellow1 = 3;
/*一些輔助標(biāo)志位的聲明*/
uchar code smguan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //數(shù)碼管顯示0~9
uchar t=3;
uchar sign = 0;
uchar time_Count; //進(jìn)行計時
void delay(uint t)
{
while(t--);
}
void Digital(uint ge,uint shi) //數(shù)碼管顯示
{
PA = smguan[ge];
s = 1;
delay(500);
s = 0;
PA = smguan[shi];
g = 1;
delay(500);
g = 0;
PB = smguan[ge];
eg = 1;
delay(500);
eg = 0;
PB = smguan[shi];
ws = 1;
delay(500);
ws = 0;
}
void Traffic_lights()
{
if(t == 3)
{
P1 = 0x01;
if(m == 0)
{
m = 3;
t = 2;
}
}
if(t == 2)
{
P1 = 0x02;
if(m == 0)
{
m = 30;
t = 1;
}
}
if(t == 1)
{
P1 = 0x04;
if(m == 0)
{
m = 3;
t = 0;
}
}
if(t == 0)
{
P1 = 0x02;
if(m == 0)
{
m = 30;
t = 3;
}
}
}
void INIT()
{
IT0=1;
IT1=1;
EX0=1;
EX1=1;
EA=1;
}
復(fù)制代碼
作者:
Avenger
時間:
2020-5-10 08:31
可否附上仿真研究一番
作者:
1718645907
時間:
2020-6-6 19:47
能否把仿真源程序下載
作者:
hantu
時間:
2020-9-11 09:37
主函數(shù)main()都不寫還拿來分享干嘛
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1