❶ c51單片機定時器30秒倒計時程序,一個按鍵控制開始,另一個按鍵控制暫停和繼續
#include<reg51.h>
unsignedcharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9
unsignedcharsec=30,scanled;
unsignedchardisdat[2];
sbitkeys=P1^0;
sbitkeyc=P1^1;
sbitfmq=P3^0;
voiddelay(unsignedintx)
{
unsignedinti,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
voiddischg()
{
disdat[0]=sec/10;
disdat[1]=sec%10;
}
voidt0isr()interrupt1 //秒計時
{
TH0=0x3c;
TL0=0xb0;
time++;
if(time==20)
{
time=0;
if(sec>0&&flag==0)sec--;
}
dischg();
}
voidt1isr()interrupt3 //顯示
{
TH1=0xec;
TL1=0x78;
switch(scanled)
{
case0:
P2=0xfe;
P0=ledtab[disdat[1]];
break;
case1:
P2=0xfd;
P0=ledtab[disdat[0]];
break;
default:break;
}
scanled++;
scanled%=2;
}
main()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
TR1=1;
TR0=0;
ET0=1;
ET1=1;
EA=1;
fmq=0;
scanled=0;
while(1)
{
if(keys==0)
{
while(keys==0);
TR0=1;
}
if(keyc==0)
{
while(keyc==0);
TR0=~TR0;
}
}
}
❷ 30歲學單片機是否晚了
不晚,先入門再說吧。很多東西都需要不斷的學習。根本學不完,用著學著。
❸ 用單片機顯示30的程序
#include"reg52.h"
voidmain(void)
{
P1=0X30;
}
我沒keil所以沒燒程序,連好了就這個意思。
❹ 51單片機30和31介面各有什麼區別
51單片機P3.0和P3.1介面的區別主要表現在串列口,P3.0是串列輸入,P3.1是串列輸出。
❺ 51單片機基本的電路里29,30,31三個引腳需不需要接啊
不一定需要接。
以AT89C51單片機為例,
第29腳是PSEN(外部存儲器讀選通信號),如果沒有外接存儲器的話,就不需要接。
第30腳是ALE/PROG(地址鎖存允許信號):如果沒有使用地址鎖存器的話,也不需要接。
第31腳是EA/VPP(程序存儲器的內外部選通),接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。
❻ 單片機代碼DBYTE[30]是什麼意思
只是一個宏定義
DBYTE[30] 就是你定義的一個數組中的元素,簡單的說就是用宏定義#define命名DBYTE[30]為g
❼ 單片機的RAM地址中30H中H是什麼意思
H 代表著 HEX, hexdecimal,也就是16進制的意思
也就是說30是16進制的30,也就是3*16+0 ,及十進制的 48了。
但在單片機或者微機原理中,地址一般都是以十六進制或者二進製表示,幾乎不用十進制
❽ 單片機或者嵌入式工作過了30歲就沒有人要了嗎
這怎麼可能,30~40正是做嵌入式或單片機工作的黃金年齡,有經驗、有精力是企業求之不得的人才。純軟體工作者到是有這個擔憂,純軟體工作要的是激情和旺盛的精力,30以後慢慢的就會減弱。企業就不值得培養了。
❾ 51單片機30腳為何輸出4v
第30腳是ALE
是外部擴展的功能控制IO
它輸出的是方波
所以電壓4V是正常的。
❿ 單片機的第30引腳在用C語言編程時怎麼寫,30引腳是ALE/PROG,要用到ALE,在C語言程序里怎麼定義呢
在C語言中設定數組,把數組設定在單片機的外部RAM或ROM空間。
之後,再對這些數組的內容,進行讀寫的時候,ALE即自動進行它應該做的工作。