導航:首頁 > 源碼編譯 > 單片機p1源碼

單片機p1源碼

發布時間:2023-01-11 17:13:18

『壹』 求51單片機P1口輸入實驗C語言版程序。

//P2接74ls273 D0~7
//P3.0 接 74ls273 clk 引腳
//P3.0 接 WR
#include <reg52.h> //52系列單片機頭文件
sbit CLK=P3^0;
sbit WR=P3^1;
void main() //主函數
{
CLK=0;
WR=1;
while(1) //大循環
{
unsigned int time=10;
P2=P1; //P2直接 讀取 P1數值
CLK=1;
while(time--);
CLK=0
}
}

試試 估計差不多

『貳』 單片機中怎麼定義p1=0xed的數據,怎麼寫

在單片機的C語言代碼中,只要你引用了諸如<reg51.h>等頭文件,則代碼P1=0xed;就是有效的,編譯下載後,單片機的P1口的電平從P1.7至P1.0就會顯現出1110 1101的情況,因為頭文件中已經預定義了這些I/O埠,需要注意的是一定是大寫的P才能和預定義相符合,而小寫的p是無效的。

『叄』 單片機PO P1口控制16個LED 的跑馬燈程序

#include <reg52.h>
void time(unsigned int ucMs);//函數聲明
void main(void)
{
unsigned char ucTimes;
#define DELAY_TIME 450
while(1)
{
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x01<<ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x01<<ucTimes);time(DELAY_TIME);}
P1=0xff;
P0=0xff;
for(ucTimes=0;ucTimes<8;ucTimes++){
P1 = P1 - (0x80>>ucTimes);time(DELAY_TIME);}
for(ucTimes=0;ucTimes<8;ucTimes++){
P0 = P0 - (0x80>>ucTimes);time(DELAY_TIME);}
}}
void time(unsigned int ucMs)
{
#define DELAYTIMES 239
unsigned char ucCounter;
while(ucMs!=0) {
for(ucCounter=0; ucCounter<DELAYTIMES; ucCounter++) { }
ucMs--;
}
}

『肆』 51單片機問題,想要在P1.0口輸出高低比為1比2的矩形波,周期為3ms,求思路個源代碼!C語言

先聲明變數,然後賦值,需要先把標識符 f置0,bb置1

void timer() interrupt 1 //中斷處理
{
TH0=(65536-922)/256;//1毫秒
TL0=(65536-922)%256;

aa++;

if(f==0)//先判斷標識符狀態
{
if(aa==bb) //判斷定時是否到達1s 即 1000 ms
{
aa=0; //清空計數
bb=2; //重新賦值基準數據
LED=1; //脈沖輸出
f=1; 設置標識符
}
}
if(f==1)//先判斷標識符狀態
{
if(aa==bb) //判斷定時是否到達1s 即 1000 ms
{
aa=0; //清空計數
bb=1; //重新賦值基準數據
LED=0; //脈沖輸出
f=0; 設置標識符
}
}

我只寫了關於定時器中斷的處理程序,其他的你應該可以弄出來

『伍』 51單片機讀p1口 c語言

你說的恰恰是C的讀取方式即:
unsigned char a;
a=P1;
匯編則是:
MOV A,P1

『陸』 51單片機,書上說P1口作為輸入,需要寫1。實驗發現不寫一也可以,求解釋。 代碼如下。

你能產生這樣的疑問是很好的,說明你動腦筋了.
為什麼不用寫1也行呢?為什麼書本上說要寫1呢?
有以下兩種情況:
1 你是用軟體模擬的,不管是Protues還是Keil軟體模擬的,都和硬體是不一樣的,所以,你完全不用寫
1,經常見學生畫的Proteus電路,只能模擬,不能做成實物,因為電路其實是不對的,但是能模擬,也就是
說模擬與實際是不一樣的.

2 你沒有模擬,確實的用單片機實驗了一把,那一般也不用寫1,因為現在的單片機,在內部的電路結構
上已經和你書本上學到的不一樣了,書本上的8051單片機是指很古老的,那個時候,P1口還是准雙向
口,為了保險起見,需要先寫成高電平,給P1一個穩定的狀態.
這也是我們大學的悲哀,我記得07年我大三的時候,講的單片機居然還有8031....
言歸正傳,現在的單片機,雖然也是准雙向口,但是在上電復位後,會自動給P1---P3口一個准確的電
位,即高電平,就是說,相當於自動寫1了,另外,現在的單片機,很多的51單片機,IO口是可選擇的了,可以
設定為上拉,推挽.浮空輸入,准雙向,而且一復位的時候是浮空准入狀態,這種情況的單片機,更不用寫1了.

總結:就是,你被過期的教材忽悠了一下,這是我們教育的悲哀.

『柒』 用單片機實現當按下開關S1時,P1口的8位LED正向流水點亮,當按下S2時,P0口的8位LED反向流水點亮,求C語言代碼

演算法沒有錯,但是你忽略了些小問題——按鍵消抖,還有就是先一步一步來,不忙把程序一次性加上去,建議你先做閃爍燈,在閃爍燈的基礎上做流水燈,然後在做按鍵控制閃爍燈,當上面的都沒有問題了,你在按照你的演算法來改成你現在要的效果!

『捌』 單片機源代碼C語言怎麼轉化回匯編語言啊,就是帶MOV,JMP的種

幫你轉了

ORG 0000H
DB 02H
NOP
L0002H:
CPL A
RR A
INC R5
NOP
NOP
NOP
NOP
MOV R7, A
MOV R7, A
LJMP L0180H
L000EH:
MOV 89H, #01H
MOV 8CH, #0F0H
MOV 8AH, #60H
SETB 88H.4
SETB 0A8H.1
SETB 0A8H.7
CLR A
MOV 08H, A
MOV 09H, A
MOV 80H, #14H
MOV 0CH, A
MOV R6, 0AH
MOV R7, 0BH
MOV R4, A
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
L0043H:
CLR C
MOV A, 0BH
SUBB A, #14H
MOV A, 0AH
SUBB A, #00H
JNC L0052H
MOV R7, #01H
SJMP L0054H
L0052H:
MOV R7, #00H
L0054H:
JB 0B0H.1, L005BH
MOV R6, #01H
SJMP L005DH
L005BH:
MOV R6, #00H
L005DH:
MOV A, R7
ANL A, R6
JZ L008CH
MOV R3, #0F5H
L0063H:
DJNZ R3, L0063H
JB 0B0H.1, L008CH
MOV A, 09H
XRL A, #09H
ORL A, 08H
JNZ L007FH
INC 0BH
MOV A, 0BH
JNZ L0078H
INC 0AH
L0078H:
CLR A
MOV 08H, A
MOV 09H, A
SJMP L0087H
L007FH:
INC 09H
MOV A, 09H
JNZ L0087H
INC 08H
L0087H:
INC 80H
L0089H:
JNB 0B0H.1, L0089H
L008CH:
JB 0B0H.0, L00D4H
MOV R3, #0F5H
L0091H:
DJNZ R3, L0091H
JB 0B0H.0, L00D4H
MOV A, 09H
ORL A, 08H
JNZ L00ACH
MOV A, 0BH
DEC 0BH
JNZ L00A4H
DEC 0AH
L00A4H:
MOV 08H, #00H
MOV 09H, #09H
SJMP L00B4H
L00ACH:
MOV A, 09H
DEC 09H
JNZ L00B4H
DEC 08H
L00B4H:
CLR C
MOV A, 0BH
SUBB A, #02H
MOV A, 0AH
SUBB A, #00H
JNC L00CFH
MOV 0AH, #00H
MOV 0BH, #02H
CLR A
MOV 08H, A
MOV 09H, A
DB 75H, 80H
L00CCH:
DEC A
SJMP L00D1H
L00CFH:
DEC 80H
L00D1H:
JNB 0B0H.0, L00D1H
L00D4H:
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0DH, R7
MOV R6, 0AH
MOV R7, 0BH
MOV R4, #00H
MOV R5, #0AH
LCALL L01DEH
MOV 0EH, R5
MOV 0FH, 09H
LJMP L0043H
L00F4H:
MOV R0, #7FH
CLR A
L00F7H:
MOV @R0, A
DJNZ R0, L00F7H
MOV 81H, #0FH
LJMP L013BH
L0100H:
LJMP L000EH
L0103H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0107H:
CLR A
MOVC A, @A+DPTR
INC DPTR
JC L010FH
MOV @R0, A
SJMP L0110H
L010FH:
MOVX @R0, A
L0110H:
INC R0
DJNZ R7, L0107H
SJMP L013EH
L0115H:
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
ANL A, #07H
ADD A, #0CH
XCH A, R0
CLR C
RLC A
SWAP A
ANL A, #0FH
ORL A, #20H
XCH A, R0
MOVC A, @A+PC
JC L012DH
CPL A
ANL A, @R0
SJMP L012EH
L012DH:
ORL A, @R0
L012EH:
MOV @R0, A
DJNZ R7, L0115H
SJMP L013EH
AJMP L0002H
INC A
INC R0
JBC 20H, L017AH
DB 80H
L013BH:
MOV DPTR, #0003H
L013EH:
CLR A
MOV R6, #01H
MOVC A, @A+DPTR
JZ L0100H
INC DPTR
MOV R7, A
ANL A, #3FH
JNB 0E0H.5, L0154H
ANL A, #1FH
MOV R6, A
CLR A
MOVC A, @A+DPTR
INC DPTR
JZ L0154H
INC R6
L0154H:
XCH A, R7
ANL A, #0C0H
ADD A, 0E0H
JZ L0103H
JC L0115H
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R2, A
CLR A
MOVC A, @A+DPTR
INC DPTR
MOV R0, A
L0165H:
CLR A
MOVC A, @A+DPTR
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
MOVX @DPTR, A
INC DPTR
XCH A, R0
XCH A, 82H
XCH A, R0
XCH A, R2
XCH A, 83H
XCH A, R2
L017AH:
DJNZ R7, L0165H
DJNZ R6, L0165H
SJMP L013EH
L0180H:
PUSH 0E0H
PUSH 83H
PUSH 82H
PUSH 0D0H
MOV 0D0H, #00H
MOV 8CH, #0F0H
MOV 8AH, #60H
MOV A, 0CH
JNZ L01AFH
MOV A, 0DH
JZ L01CBH
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
SJMP L01CBH
L01AFH:
MOV A, 0CH
MOV DPTR, #0244H
MOVC A, @A+DPTR
MOV 0A0H, A
MOV A, #0DH
ADD A, 0CH
MOV R0, A
MOV A, @R0
MOV DPTR, #0233H
MOVC A, @A+DPTR
MOV 90H, A
MOV A, 0CH
CJNE A, #01H, L01CBH
ORL 90H, #80H
L01CBH:
INC 0CH
MOV A, 0CH
CJNE A, #03H, L01D5H
MOV 0CH, #00H
L01D5H:
POP 0D0H
POP 82H
POP 83H
POP 0E0H
RETI
L01DEH:
CJNE R4, #00H, L01ECH
CJNE R6, #00H, L020DH
MOV A, R7
MOV 0F0H, R5
DIV AB
MOV R7, A
MOV R5, 0F0H
RET
L01ECH:
CLR A
XCH A, R4
MOV R0, A
MOV 0F0H, #08H
L01F2H:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R4
RLC A
MOV R4, A
MOV A, R6
SUBB A, R5
MOV A, R4
SUBB A, R0
JC L0206H
MOV R4, A
MOV A, R6
SUBB A, R5
MOV R6, A
INC R7
L0206H:
DJNZ 0F0H, L01F2H
CLR A
XCH A, R6
MOV R5, A
RET
L020DH:
MOV A, R5
MOV R0, A
MOV 0F0H, A
MOV A, R6
DIV AB
JB 0D0H.2, L0232H
MOV R6, A
MOV R5, 0F0H
MOV 0F0H, #08H
L021CH:
MOV A, R7
ADD A, R7
MOV R7, A
MOV A, R5
RLC A
MOV R5, A
JC L022BH
SUBB A, R0
JNC L022DH
DJNZ 0F0H, L021CH
RET
L022BH:
CLR C
SUBB A, R0
L022DH:
MOV R5, A
INC R7
DJNZ 0F0H, L021CH
L0232H:
RET
ADDC A, R7
INC @R0
ANL A, R3
ORL A, R7
XRL A, @R0
XRL A, R5
MOV R5, #07H
MOV R7, #6FH
MOV @R1, #7CH
ADDC A, R1
ANL A, R6
MOV R1, #71H
NOP
MOV R6, A
MOV R5, A
MOV R3, A
MOV R7, A

END

『玖』 點亮d37發光二極體的單片機代碼是什麼

實驗(二):本程序的功能是點亮一個發光二極體#includeVoid main(){P1=0xfe;While(1);}實驗(三):本程序的功能是點亮三個發光

閱讀全文

與單片機p1源碼相關的資料

熱點內容
貴州java編譯器 瀏覽:644
歐美電影免費看平台 瀏覽:286
台灣紅羊影視作品有哪些 瀏覽:906
農行app上怎麼查詢卡號 瀏覽:891
浩天酒道館網是什麼app 瀏覽:212
永久不收費的電影網站 瀏覽:120
兒女傳奇全集目錄 瀏覽:522
文學評論pdf 瀏覽:410
linux源代碼導讀 瀏覽:702
百戰程序員6000集下載 瀏覽:146
蘋果和安卓手機之間怎麼克隆 瀏覽:465
模糊聚類演算法研究 瀏覽:108
寶德伺服器硬碟亮紅燈如何解決 瀏覽:696
androidlibgdx下載 瀏覽:409
聯盟pdf下載 瀏覽:793
南通住房公積金app支取銀行怎麼填 瀏覽:680
韓國劇情電影男主自殺2次是什麼電影 瀏覽:646
李彩譚電影全部 瀏覽:703
范偉喬杉電影叫什麼名字 瀏覽:467
中國十大免費電影網站 瀏覽:509