欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
用51單片機(jī)做的交通燈程序+Proteus仿真圖
[打印本頁]
作者:
CHL666
時(shí)間:
2019-3-4 17:30
標(biāo)題:
用51單片機(jī)做的交通燈程序+Proteus仿真圖
學(xué)校的課程設(shè)計(jì)做的一個(gè)小程序,用51單片機(jī)做的交通燈。
0.png
(12.36 KB, 下載次數(shù): 32)
下載附件
2019-3-6 02:16 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define DIG0 0x01
#define DIG1 0x02
#define DIG2 0x03
#define DIG3 0x04 // 定義數(shù)碼管 1,2,3,4
sbit DIN = P3^0; //MAX7219 DIN引腳
sbit LOAD = P3^1; //MAX7219 LOAD 引腳
sbit CLK = P3^2; //MAX7219 CLK 引腳
sbit G1 = P0^0; //A線信號(hào)燈
sbit Y1 = P0^1;
sbit R1 = P0^2;
sbit G2 = P1^0; //B線信號(hào)燈
sbit Y2 = P1^1;
sbit R2 = P1^2;
uchar NS_S,NS_G,EW_S,EW_G; //AB線數(shù)碼管個(gè)位,十位
uchar NS,EW;
uchar temp=0,i;
uchar code table[10]= {0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b}; //共陰級(jí)數(shù)碼管數(shù)組
void delay(uint i);
void T0_init();
void MAX7219(uchar addr,uchar num);
void MAX7219_init();
void display();
void delay(uint i) //延時(shí)
{
uint j;
for(j=0;j<i;j++);
}
void T0_init() //定時(shí)器
{
TMOD=0X01;
TH0=0XD8; //裝初值10MS
TL0=0XF0;
ET0=1;
TR0=1;
}
void MAX_write(uchar ch) //以8位一個(gè)字節(jié)進(jìn)行寫值
{
uchar j,ads;
for(j=0;j<8;j++) //8位
{
ads=ch&0x80; //取最高位
CLK = 0; //時(shí)鐘位置低
if(ads) DIN = 1;
else DIN = 0;
ch=ch<<1;
CLK=1; //上升沿,DIN的數(shù)據(jù)寫入到7219
}
}
void MAX7219(uchar addr, uchar num) //寫地址,寫數(shù)據(jù)
{
LOAD = 0;
_nop_();
MAX_write(addr);
_nop_();
MAX_write(num);
_nop_();
LOAD = 1; //鎖存
}
void MAX7219_init() //MAX7219初始化
{
MAX7219(0x0c,0x01); //正常工作狀態(tài)
MAX7219(0x0b,0x03); //設(shè)置掃描范圍SMG0-3
MAX7219(0x0a,0x05); //設(shè)置亮度11/32
MAX7219(0x09,0x00); //采用譯碼方式 ,不譯碼
}
void display() //顯示函數(shù)
{
NS_S=NS/10; //A線十位
NS_G=NS%10; //A線個(gè)位
EW_S=EW/10; //B線十位
EW_G=EW%10; //B線個(gè)位
MAX7219(DIG0,table[NS_S]); //A線十位,個(gè)位
MAX7219(DIG1,table[NS_G]);
MAX7219(DIG2,table[EW_S]); //B線十位,個(gè)位
MAX7219(DIG3,table[EW_G]);
}
void main()
{
T0_init();
MAX7219_init();
EA=1;
NS=15;
EW=18;
R2=0,G1=0; //初始通行15秒,A線綠燈亮,B線紅燈亮
while (1)
{
uint k;
display();
switch(i) //選擇信號(hào)燈的亮滅方式
{
case 1: G1=1;Y1=0; //關(guān)閉A線綠燈,黃燈閃爍
for(k=0;k<3;k++)
{
R2=0;
Y1=~Y1;
delay(10000);
}
R2=1;break;
case 2: G2=0,R1=0;break; //B線綠燈亮,A線紅燈亮
case 3: G2=1,Y2=0; //關(guān)閉B線綠燈,黃燈閃爍
for(k=0;k<3;k++)
{
R1=0;
Y2=~Y2;
delay(10000);
}
R1=1;break;
case 4: R2=0,G1=0;break; //B線紅燈亮,A線綠燈亮
}
}
}
void T0_(void)interrupt 1 //中斷
{
temp++;
TH0=0XD8;
TL0=0XF0;
if(temp==100) //1s進(jìn)入
{
temp=0;
NS--;
EW--;
if((NS==0)&&(EW==3)) //A線倒計(jì)時(shí)時(shí)間結(jié)束且B線剩余3s
{
NS=3;
EW=3;
i=1;
}
if((NS==0)&&(EW==0)&&(i==1)) //AB線倒計(jì)時(shí)時(shí)間結(jié)束且剛結(jié)束第一種情況
{
NS=18;
EW=15;
i=2;
}
if((NS==3)&&(EW==0)) //B線倒計(jì)時(shí)時(shí)間結(jié)束且A線剩余3s
{
NS=3;
EW=3;
i=3;
}
if((NS==0)&&(EW==0)&&(i==3)) //AB線倒計(jì)時(shí)時(shí)間結(jié)束且剛結(jié)束第三種情況
{
NS=15;
EW=18;
i=4;
}
}
display();
}
復(fù)制代碼
所有資料51hei提供下載:
交通燈.rar
(103.78 KB, 下載次數(shù): 58)
2019-3-4 17:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
佳豪爸爸
時(shí)間:
2019-5-8 17:31
你好,請(qǐng)問這個(gè)芯片除了c51還有個(gè)什么芯片?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1