標(biāo)題: 單片機(jī)交通信號(hào)燈黃燈閃爍實(shí)現(xiàn),請(qǐng)大神幫忙看看 [打印本頁(yè)]

作者: 王披風(fēng)    時(shí)間: 2021-9-22 09:19
標(biāo)題: 單片機(jī)交通信號(hào)燈黃燈閃爍實(shí)現(xiàn),請(qǐng)大神幫忙看看
編寫(xiě)交通燈程序,下面程序能夠?qū)崿F(xiàn)紅綠燈顯示及對(duì)應(yīng)流水燈的顯示,但是怎么實(shí)現(xiàn)在黃燈時(shí)間流水燈閃爍不知道怎么調(diào)試了嘗試過(guò)黃燈流水燈亮?xí)r直接加入延時(shí)函數(shù)發(fā)現(xiàn)數(shù)碼管閃爍了,求大神指點(diǎn)實(shí)現(xiàn)黃燈閃爍。附錄為單片機(jī)的原理圖,圖片為使用單片機(jī)。
#include <REGX52.H>
#define uint unsigned int
#define uchar unsigned char
sbit nsred=P1^0;
sbit nsgreen=P1^1;
sbit nsyellow=P1^2;
sbit ewred=P1^4;
sbit ewgreen=P1^5;
sbit ewyellow=P1^6;
sbit wela=P2^6;
sbit dula=P2^7;
#define nsred() do{nsred=0;nsgreen=1;nsyellow=1;} while(0);
#define nsgreen() do{nsred=1;nsgreen=0;nsyellow=1;} while(0);
#define nsyellow() do{nsred=1;nsgreen=1;nsyellow=0;} while(0);
#define ewred() do{ewred=0;ewgreen=1;ewyellow=1;} while(0);
#define ewgreen() do{ewred=1;ewgreen=0;ewyellow=1;} while(0);
#define ewyellow() do{ewred=1;ewgreen=1;ewyellow=0;} while(0);
#define yeltime 4
#define ewtime 28+yeltime
#define nstime 16+yeltime
uchar t=ewtime;
uchar flag=1;
uchar tt=0;
uchar keyflag=0;
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit key2=P3^4;
sbit key3=P3^5;
void delayms(uint xms)
{

IMG_20210909_145254.jpg (195.13 KB, 下載次數(shù): 66)

IMG_20210909_145254.jpg

TX-1C增強(qiáng)版原理圖.pdf

943.37 KB, 下載次數(shù): 3


作者: xianfajushi    時(shí)間: 2021-9-22 15:15
https://blog.csdn.net/xianfajushi/article/details/89946765

作者: yzwzfyz    時(shí)間: 2021-9-22 16:10
本帖最后由 yzwzfyz 于 2021-9-23 08:17 編輯

教你如何閃燈:
假設(shè)你的輸出是P1.1。
通常你的做法是:P1.1 = X (X=0暗,X=2亮)。
我教你的做法是:P1.1 = X * (Y + Z * /Y) , 注:/Y = Y求反。
這里:
X:與你的定義相同,決定燈的明暗。
Y:決定是否閃爍,=1不閃,=0閃。
Z:閃爍因子,它每0.3秒反轉(zhuǎn)一次,由0.3秒的定時(shí)器改變它的狀態(tài)。
所以你要做的是:估計(jì)你已會(huì)做了,不講了,否則太小看你了。
如果真的還不懂,可以聯(lián)系我,面授機(jī)宜。
提醒:當(dāng)需要改變顯示時(shí),不要做:P1.1 = X ,而是做:P1.1 = X * (Y + Z * /Y)
當(dāng)需要閃爍時(shí),清Y=0,不閃置1。邏輯相反時(shí),將公式中的Y非一下。
簡(jiǎn)單吧。






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