c51單片機(jī)設(shè)計(jì)

2024-08-23 12:39

00-99秒倒計(jì)時(shí)按鍵控制開始、數(shù)碼管顯示99、1S時(shí)間到,數(shù)碼管顯示98、再1S時(shí)間到,顯示97,如此循環(huán)至00,1S時(shí)間到,顯示99,如此循環(huán)下去。... 00-99秒倒計(jì)時(shí) 按鍵控制開始、數(shù)碼管顯示99、1S時(shí)間到,數(shù)碼管顯示98、 再1S時(shí)間到,顯示97,如此循環(huán)至00,1S時(shí)間到,顯示99,如此循環(huán)下去。 展開
1個(gè)回答
#include
#define uchar unsigned char /*宏定義,方便寫程序*/
#define uint unsigned int
uchar s=0;
bit sec=0,keyon;
uchar disbit=0x01;//這里要看你的控制端是用高電平還是低電平(或用0xfe)
uchar time=99;
/*0-9數(shù)碼管代碼*///自己根據(jù)實(shí)際情況選擇
/*uchar dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共陰
uchar dispcode[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//共陽
uchar disbuf[2]={0x00,0x00};
void main(void)
{
IT0=1; //INT0下降沿中斷 key
EX0=1; //允許INT0中斷
TMOD=0x02; /*設(shè)置定時(shí)器模式*/
TH0=0x06;/*裝入初值*/
TL0=0x06;
TR0=1;/*開定時(shí)器*/
ET0=1; /*開定時(shí)器中斷*/
EA=1; /*開總中斷*/
P2=0x00;
P0=0x01;

while(1)
{
timedisplay();
}
}

void timedisplay(void)
{
if(sec&keyon)

{
sec=0;
disbuf[0]=dispcode[time%10];
disbuf[1]=dispcode[time/10];
time--; /*秒減1*/
}
if(time==0)
{
P3^7=0;//計(jì)時(shí)結(jié)束時(shí)P3.7口產(chǎn)生一個(gè)低電平
time=99;
}
}

void int0(void) interrupt 0 //按鍵用中斷0來控制
{
keyon=1;
}

void t0(void) interrupt 1 using 0 /*中斷子程序*/
{
uint sec1;
uchar i=0,k=0;
k++;
sec1++;
if(k==2)//自己設(shè)置好位選頻率
{
k=0;
P2=disbit;//P2做位選端口
P0=disbuf[i];//P0做數(shù)據(jù)口
disbit=disbit<<=1;
i++;
if(i==2)
i=0;
if(disbit==0x04)
disbit=0x01;
}
if(sec1==4000) /*秒中斷信號(hào)*/
{
sec1=0;
sec=1;
}
}

P0接數(shù)碼管的8個(gè)數(shù)據(jù)端口,P2的P2^0,P2^1接數(shù)碼管的公共端。開關(guān)接P3.2~~
相關(guān)問答
單片機(jī)C51程序設(shè)計(jì),要求實(shí)現(xiàn)以下功能
1個(gè)回答2022-12-16 23:05
這個(gè)很難幫到你,因?yàn)椴恢滥愕挠布侨绾卧O(shè)計(jì)的,那個(gè)io口接按鍵,那個(gè)接電機(jī)和喇叭。 實(shí)際上不是很難,找?guī)讉€(gè)按鍵處理的程序參考一下。
人是誰設(shè)計(jì)出來的?設(shè)計(jì)人的哪個(gè)又是誰設(shè)計(jì)的?
2個(gè)回答2023-05-19 13:00
人是進(jìn)化來的。沒有誰設(shè)計(jì)。
游戲怎么設(shè)計(jì)界面?我想設(shè)計(jì)一個(gè)看看。
1個(gè)回答2022-12-22 20:36
一樣好奇?。?!
動(dòng)畫設(shè)計(jì)與動(dòng)漫設(shè)計(jì)有什么區(qū)別?
1個(gè)回答2023-01-13 17:10
這兩個(gè)區(qū)別不大
各位大神書友,我想寫一部西方魔幻小說,該怎么設(shè)計(jì)故事呢?好的故事情節(jié),設(shè)計(jì)什么角色?
1個(gè)回答2024-01-21 22:38
先積累素材和經(jīng)驗(yàn)吧,比如經(jīng)典的西方魔幻起碼都要有一定的了解,著名的《魔戒》《納尼亞傳奇》《地海傳奇》等都應(yīng)該耳熟能詳,知道其故事結(jié)構(gòu)和人物設(shè)定,先模仿著寫寫短篇,最好能有不同的視角,加入其它現(xiàn)代人喜...
全文
如何設(shè)計(jì)漫畫人物 漫畫人物設(shè)計(jì)要點(diǎn)
1個(gè)回答2024-02-27 03:48
和電影是同樣的,人物角色是必不可少的,就如同拍攝影視作品前導(dǎo)演挑選演員一樣,需要經(jīng)過認(rèn)真的構(gòu)思、推敲和篩選,根據(jù)腳本的內(nèi)容及其人物的性格進(jìn)行最終的選擇。而對于動(dòng)漫作品,這種選擇幾乎完全取決于動(dòng)漫家手中...
全文
因生活而設(shè)計(jì),因設(shè)計(jì)而美好誰說的
1個(gè)回答2024-01-26 17:16
ll you." So he lets Snow White go.
門頭設(shè)計(jì)門頭設(shè)計(jì)
1個(gè)回答2024-02-16 16:54
門頭設(shè)計(jì)是指商店或機(jī)構(gòu)入口處的門頭裝飾設(shè)計(jì)。一個(gè)好的門頭設(shè)計(jì)可以吸引顧客的眼球,增加商鋪的辨識(shí)度和品牌形象。下面是一些建議用于門頭設(shè)計(jì): 1. 品牌標(biāo)識(shí):門頭設(shè)計(jì)應(yīng)包含清晰、易識(shí)別的品牌標(biāo)識(shí),如商店名...
全文
什么是設(shè)計(jì)?設(shè)計(jì)為了什么?
1個(gè)回答2024-03-16 22:44
設(shè)計(jì)是一種改變環(huán)境從而達(dá)到適合業(yè)主的手法,每個(gè)業(yè)主的個(gè)性、品味和資回金的投入都答會(huì)直接影響到效果,很多時(shí)候我們認(rèn)為合適的就一定是最適合業(yè)主的嗎?我們不妨站在業(yè)主的角度多思,看有沒更好的,不管業(yè)主接...
全文
熱門問答