導航:首頁 > 操作系統 > 單片機多功能

單片機多功能

發布時間:2022-03-07 11:19:06

1. STC51單片機多功能數字時鍾設計

有LCD1602版本的,可以自行修改,
懂事電子設計 Vgz

2. 單片機怎樣通過按鍵在程序實現多功能

如果你就是只有一個按鍵,可以這樣做:設置一個寄存器Key_Times_Buf,然後記錄第幾次按鍵,通過這個值,處理相應的程序.
if(Key_Pin==0)
{
Key_Times_Buf++;
if(Key_Times_Buf>=3)
{
Key_Times_Buf=0;
}
}

switch(Key_Times_Buf)
{
case 0:
//程序0
break;

case 1:
//程序1
break;

case 2:
//程序2
break;
}

3. 基於單片機的多功能計算器

不會吧,這么有趣,我前幾天做的課程設計就是這個啊!
剛剛花了一個星期做完了這個計算器,硬體,程序,論文都已經完成了。
我裡面沒用到74LS244或74LS240、與非門等器件,就是用到了51單片機和數碼管來實現的
因為51裡面的IO口多,沒必要用這些東西,如果要用也可以,哈哈。
如果你急要,我發你吧!

4. 誰能給推薦個 多功能(51單片機+xilinx fpga) 開發板

我有一個周立功的ACTEL的開發板。如果你要的話,送你一個51板,還可以教你。

5. C51單片機 一鍵多功能

計數嘍,當沒按鍵時,計數為0,當按下按鍵時,計數自加即為1,然後進行判斷當滿足等於1時即P1.1閃爍並確保其他燈滅,當再次按下時,計數再自加即為2,然後進行判斷當滿足等於2時即P1.2閃爍並確保其他燈滅,以此類推。當到了P1.3時,即再次循環即可。

6. 單片機多功能I/O如何確定使用哪個功能

看資料,看你如何用輸入輸出口。

7. 51單片機 C語言按鍵多功能程序怎麼寫

長按或短按你可以用定時器來設定時間。時間一到就直接跳出來執行就可以了。想連續按1或2或3次的話你就直接用個變數來當計數器,按一下計數一次就可以了。

8. 基於單片機的多功能時間控制器的匯編語言

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
uchar num,num1;tt;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
num=0;
tt=0;
TMOD=0x11;//設置定時器0為工作方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
// EA=1;//開總中斷
ET0=1;//開定時器0中斷
ET1=1;
TR0=1;//啟動定時器0
TR1=1;
wela=1;//11101010
P0=0xea;
wela=0;
la=1;
P0=0x3f;
la=0;
while(1)
{
if(num1==25)
{
num1=0;
P1=~P1;
}
if(tt==100)
{
tt=0;
num++;
if(num==16)
num=0;
la=1;
P0=table[num];
la=0;
}
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
tt++;
}
void time1() interrupt 3
{
TH1=(65536-20000)/256;
TL1=(65536-20000)%256;
num1++;
}
這個是中斷的一個簡單的例子!工作方式和計算初值你應該會吧!在keil中可以把C語言轉換成匯編語言!

9. 單片機多功能電子時鍾

/*
1、按鍵可以調整當時時間
2、按鍵可以調節定時時間
3、定時時間到繼電器吸合

*8位數碼管顯示 時間格式格式 12-08-00 標示12點08分00秒

S1 用於小時 加1操作
S2 用於分鍾 加1操作
S2 用於分鍾減1操作
*/

#include <reg52.h>

sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3=P3^4;

sbit LED=P1^2;
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共陰數碼管 0-9
unsigned char StrTab[8]; //定義緩沖區
unsigned char minute=30,hour=12,second; //定義並且初始化值 12:30:00

void delay(unsigned int cnt)//延時函數
{
while(--cnt);
}

void Displaypro(void)
{

StrTab[0]=tab[hour/10]; //顯示正常時間
StrTab[1]=tab[hour%10];
StrTab[2]=0x40;
StrTab[3]=tab[minute/10];
StrTab[4]=tab[minute%10];
StrTab[5]=0x40;
StrTab[6]=tab[second/10];
StrTab[7]=tab[second%10];

}

main()//主函數
{

TMOD |=0x01;//定時器0 10ms in 12M crystal 用於計時
TH0=0xd8;
TL0=0xf0;
ET0=1;
TR0=1;

TMOD |=0x10; //定時器1用於動態掃描
TH1=0xF8;
TL1=0xf0;
ET1=1;
TR1=1;
EA =1;

Displaypro();

while(1)//主循環
{

/////////////////////////////////////////////////////////////////
if(!KEY1) //按鍵1去抖以及動作
{
delay(10000);
if(!KEY1)
{
hour++;if(hour==24)hour=0; //正常時間 小時 加1
Displaypro();
}
}
////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
if(!KEY2) //按鍵去抖以及動作
{
delay(10000);
if(!KEY2)
{
minute++;if(minute==59)minute=0;//分加1
Displaypro();
}
}
/////////////////////////////////////////////////////////////////
if(!KEY3) //按鍵去抖以及動作
{
delay(10000);
if(!KEY3)
{
minute--;if(minute==0)minute=59; //分減1
Displaypro();
}
}
}
}
////////////////////////////////////////////////////////////////
/********************************/
/* 定時中斷1 */
/********************************/
void time1_isr(void) interrupt 3 using 0//定時器1用來動態掃描
{
static unsigned char num;
TH1=0xF8;//重入初值
TL1=0xf0;

switch (num){
case 0:P2=0;P0=StrTab[num];break; //分別調用緩沖區的值進行掃描
case 1:P2=1;P0=StrTab[num];break;
case 2:P2=2;P0=StrTab[num];break;
case 3:P2=3;P0=StrTab[num];break;
case 4:P2=4;P0=StrTab[num];break;
case 5:P2=5;P0=StrTab[num];break;
case 6:P2=6;P0=StrTab[num];break;
case 7:P2=7;P0=StrTab[num];break;
default:break;
}
num++; //掃描8次,使用8個數碼管
if(num==8)
num=0;
}
//////////////////////////////////////////////////////////////////
/********************************/
/* 定時中斷0 */
/********************************/
void tim(void) interrupt 1 using 1
{
static unsigned char count;//定義內部靜態變數

TH0=0xd8;//重新賦值
TL0=0xf0;
count++;
switch (count)
{
case 0:
case 20:
case 40:
case 60:
case 80:Displaypro(); //隔一定時間調用顯示處理
break;
case 50:LED=!LED; //半秒 LED閃爍
break;
default:break;
}

if (count==100)
{
count=0;
second++;//秒加1
if(second==60)
{
second=0;
minute++; //分加1
if(minute==60)
{
minute=0;
hour++; //時加1
if(hour==24)
hour=0;
}

}

}

}

閱讀全文

與單片機多功能相關的資料

熱點內容
命令來自剃頭的用英語怎麼說 瀏覽:765
什麼app不花一分錢買東西 瀏覽:373
布林四線指標源碼 瀏覽:968
單片機的控制板 瀏覽:218
襄陽軟體編程 瀏覽:841
sshpass命令 瀏覽:106
logo伺服器怎麼下載 瀏覽:508
如何ftp連接伺服器 瀏覽:674
creo自動編程 瀏覽:161
雲伺服器在電腦怎麼開 瀏覽:432
ipad相冊如何在文件夾中建文件夾 瀏覽:621
和家親這個app有什麼用 瀏覽:575
什麼app裡面有種樹打折 瀏覽:374
編程外掛入門教學 瀏覽:974
pdf黑白轉彩色 瀏覽:725
英國投資加密貨幣嗎 瀏覽:887
看完程序員那麼可愛後的感受 瀏覽:131
廣播在什麼APP能聽 瀏覽:678
阿克曼小車連接什麼app 瀏覽:773
all100編程器 瀏覽:182