導航:首頁 > 操作系統 > 單片機程序題可以切換嗎

單片機程序題可以切換嗎

發布時間:2024-07-04 19:12:09

⑴ 51單片機1按鍵切換3種不同狀態的c程序

主程序大致是這樣的
flag=0;//記錄按鍵次數
While(1)
{
if(key==0){delayms(20);if(key==0)flag++;}//按鍵檢測
if(flag==3)flag=0;
if(flag==0){正向流水}
else if(flag==1){反向流水}
else {間隔流水}
}存在問題,由於流水燈執行時間較長,因此對按鍵響應緩慢,可以在流水燈之間加入按鍵檢測語句,當檢測到按鍵按下時,用break語句退出當前循環

⑵ 鍗曠墖鏈哄垽鏂 1.宸ヤ綔瀵勫瓨鍣ㄧ粍鏄閫氳繃浣嶇疆PSW涓鐨凴S0鍜孯S1鏉ュ垏鎹 2.涓庤繍綆楀彲浠ュ皢涓涓瀛楄妭涓鐨

1銆佸
2銆佸
3銆侀敊
4銆侀敊
鍗曠墖鏈虹▼搴忓垎鏋愰
1銆佸凡鐭A=40H錛孯O=50H,(40H錛=30H 錛50H錛=10H 璇鋒寚鍑烘瘡鏉℃寚浠ゆ墽琛屽悗鐩稿簲錛屽崟鍏冨唴瀹圭殑鍙樺寲
1.MOVA錛#40H A=40H
2.MOVA 40H A=30H
3.MOVA, RO A=50H
4.MOV A,@RO A=30H
5.SWAP A A=03H

2錛屼慨鏀逛簡涓涓嬬▼搴
MOV R3 #4
K3:MOV R2,#250
K2:MOV R1,#250
K1:NOP
NOP
DJNZ R1,K1
DJNZ R2,K2
DJNZ R3, k3
寤舵椂鏃墮棿=4*250*250*4+3*250*4+3*4=1003012寰縐掞紝綰︾瓑浜1縐掋

緙栫▼棰橈細
1錛
MOV A,#0A4H
ADD A,#0E7H
MOV 40H,A
MOV A,12H
ADDC A,#0FH
MOV 41H,A
2:
CJNE A,#100,CMA
RET
CMA:
JC CMA1
MOV P1,#0
RET
CMA1:
MOV P1,#0FFH
RET
3:
MOV A,4FH
ADD A,#80H
MOV 30H,A
MOV A,23H
ADDC A,#0EH
MOV 31H,A
RET
4:
LSD:
MOV A,#0FEH
LSD1:
MOV P1,A
LCALL DELAY
SJMP LSD1
DELAY:
MOV R2,#100
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET

⑶ 單片機C語言編程問題。怎麼實現按鍵切換兩個子程序啊。。(時鍾和溫度)

應該用一個標志位,如果你這種是普通的按鍵,即按下時是低電平,松開時是高電平的,大概這樣寫,在main聲明一個變數,作為標志位.
char Flag;
然後按鍵按下時,直到彈起按鍵才改變Flag的狀態。
if(!Key)
{
while(!Key);
Flag=~Flag;
}
if(Flag)
{
time = hour*100 + min;
ShowTest(time);
delay();
}

else
{
gettempts();
display(t);
}
把這個放在while(1)中,就可以了。
希望我的回答對你有幫助,有什麼問題歡迎一起探討。

⑷ 關於單片機的問題,如果程序中要要到三組工作寄存器Rn,如何切換SP的初值是否要修改若要,如何修改

以下是個示範,依次切換到工作區0到3
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH ;將SP設置到60H以後的RAM區
MOV A,#0
LCALL SETRN
LCALL DELAY
MOV A,#1
LCALL SETRN
LCALL DELAY
MOV A,#2
LCALL SETRN
LCALL DELAY
MOV A,#3
LCALL SETRN
LCALL DELAY
SJMP $
SETRN:
JNZ SETRN1 ;A=0工作區0
CLR RS0
CLR RS1
RET

SETRN1:
JNZ SETRN2 ;A=1工作區1
SETB RS0
CLR RS1
RET
SETRN2:
JNZ SETRN3 ;A=2工作區2
CLR RS0
SETB RS1
RET
SETRN3:
JNZ SETRN1 ;A=3工作區3
SETB RS0
SETB RS1
RET
DELAY:
MOV R0,#10
DELAY1:
MOV R1,#100
DJNZ R1,$
DJNZ R0,DELAY1
RET

⑸ 鍗曠墖鏈哄備綍鐢ㄤ腑鏂鍒囨崲紼嬪簭錛屽氨鏄鎴戠幇鍦ㄧ敤鍗曠墖鏈哄疄鐜板姛鑳紸鍜孊錛岀敤涓鏂浣滀負AB紼嬪簭鐨勫垏鎹錛岀敤C璇璦瑕佹

棣栧厛瀹氫箟鍏ㄥ矓鍙橀噺int_num=0;
灝嗕互涓嬩唬鐮佹斁鍏ヤ腑鏂鏈嶅姟鍑芥暟錛
void INT_X(void) interrupt X
{
switch(int_num) //鍒ゆ柇浠誨姟浠g爜
{
case 0;//浠誨姟A
//榪欓噷濉浠誨姟A紼嬪簭孌
break;

case 1;//浠誨姟B
//榪欓噷濉浠誨姟A紼嬪簭孌
break;

default:

break;

}
int_num++;
if(int_num>1)int_num=0;

}

⑹ 單片機C語言程序設計題

這是兩個題啊。哈哈好做,第一個有C語言的冒泡法排序,第二個用中斷,讀,輸出就可以

閱讀全文

與單片機程序題可以切換嗎相關的資料

熱點內容
寫編程到底什麼意思 瀏覽:267
一加9r壓縮包怎麼解壓 瀏覽:273
我的世界中國版怎麼給伺服器裝材質包 瀏覽:682
瑜伽呼吸解壓 瀏覽:5
ui設計要會編程嗎 瀏覽:525
msp430單片機中斷 瀏覽:823
ftp沒有創建伺服器地址 瀏覽:170
linux執行elf文件 瀏覽:476
台灣地區網路伺服器雲空間 瀏覽:371
android編譯go語言 瀏覽:178
hadoop查看job命令 瀏覽:810
pdf未加密但是不能編輯了 瀏覽:764
單片機0與1是什麼意思 瀏覽:701
綠色pdf列印機 瀏覽:12
保存加密不可上網是啥意思 瀏覽:942
reactnativePHP 瀏覽:574
程序員什麼品質最好 瀏覽:327
如何快速的存多個文件夾 瀏覽:727
遮陽網8米寬50米長6針加密 瀏覽:492
威綸通編譯地址超出限制 瀏覽:524