欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 利用51單片機制作十字路交通燈 [打印本頁]

作者: 不喜。    時間: 2019-10-11 17:03
標題: 利用51單片機制作十字路交通燈
南北交通燈
#include<reg51.h>

#define  unint unsigned int

#define  unchar unsigned char
sbit NS_G=P1^0;
sbit NS_Y=P1^1;
sbit NS_R=P1^2;
sbit EW_G=P0^0;
sbit EW_Y=P0^1;
sbit EW_R=P0^2;

//管腳定義

sbit DIN=P3^0;

//MAX7219 串行數據 1 腳

sbit LOAD=P3^1;

//MAX7219 片選 12

sbit CLK=P3^2;

//MAX7219 串行時鐘 13 腳

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P15=P1^5;

sbit P16=P1^6;

sbit P17=P1^7;

//寄存器宏定義

#define DECODE_MODE  0x09

//譯碼控制寄存器

#define INTENSITY      0x0A   
//亮度控制寄存器
#define SCAN_LIMIT    0x0B

//掃描界限寄存器

#define SHUT_DOWN  0x0C

//關斷模式寄存器

#define DISPLAY_TEST 0x0F

//測試控制寄存器

//定義全局變量

unchar t,dte,dts;

//t為1ms脈沖產生標志,dte、dts分別為東西方向、南北方向數字變化標志

unchar Easw,Soun;            

//東西、南北方數碼管數字變量

//函數聲明

void Write7219(unchar address,unchar dat);

//MAX7219控制處理函數聲明

void Display();                       

//數碼管數字顯示處理函數聲明

void Initial(void);

//MAX7219初始化函數聲明

void Init(void);                     

//定時器初始化函數聲明

/*主函數:交通等控制器,東西通行時間為80s,南北通行時間為60s,緩沖時間為3s。*/

void main(void)

{

Initial();   

//MAX7219 初始化

Init();                             

//變量初始化

while(1)

{

Display();                      //調用顯示函數

}

}

/*MAX7219初始化函數:MAX7219 初始化,設置MAX7219 內部的控制寄存器*/

void Initial(void)

{

Write7219(SHUT_DOWN,0x01);

//開啟正常工作模式(0xX1)

Write7219(DISPLAY_TEST,0x00);

//選擇工作模式(0xX0)

Write7219(DECODE_MODE,0xff);

//選用全譯碼模式

Write7219(SCAN_LIMIT,0x03);

//選用前4只LED

Write7219(INTENSITY,0x04);

//設置初始亮度

}

/*初始化函數:設置定時/計數器0工作方式1,設置50ms定時時間,并進行初始化。開總中斷、定時/計數器0,初始化所需全局變量 */

void init()                       

{

TMOD = 0X01;

//設置定時器0工作方式1

TH0 = 0X4C;

//定時器0高八位初始化

TL0 = 0X00;

//定時器0低八位初始化

ET0 = 1;

//定時器0中斷允許

TR0 = 1;

//開定時器0

EA = 1;

//開總中斷

t = 0;

dte = 0;

dts = 0;

Easw = 79;

//東西方向數碼管初值79

Soun = 82;

//南北方向數碼管初值82



//P0 = 0x21;
//初始化東西方向亮綠燈
EW_G=0;EW_Y=1,EW_R=1;
//P1 = 0X24;
//初始化南北方向亮紅燈
NS_G=1;NS_Y=1;NS_R=0;
}

/*數碼管數字顯示處理函數:通過定時器精確定時,動態地顯示交通燈時間的變化 */

void Display()

{

unchar i;

unchar Ewsn[4]={0};

//定義一個只含四個元素的一位數組

void Digit_deal();

//數字變化處理函數聲明

if(t >= 20)

//t=20時,定時1秒,Easw、Soun做自減

{

t= 0;

Easw--;

Soun--;

}

Digit_deal();

//數字變化處理函數

Ewsn[0] = Easw/10;

//東西顯示數字十位

Ewsn[1] = Easw%10;

//東西顯示數字個位

Ewsn[2] = Soun/10;

//南北顯示數字十位

Ewsn[3] = Soun%10;

//南北顯示數字個位

for(i=1;i<5;i++)

{

Write7219(i,Ewsn[i-1]);

//4位共陰數碼管顯示

}

}

剩余部分附件查看

圖片1.png (502 KB, 下載次數: 26)

圖片1.png

0.png (14.08 KB, 下載次數: 31)

0.png

紅綠燈3.zip

91.59 KB, 下載次數: 13, 下載積分: 黑幣 -5


作者: hyc492    時間: 2019-11-7 15:38
誰能幫我解決怎么做按鍵控制雙機通信




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1