導航:首頁 > 編程語言 > 51編程中文

51編程中文

發布時間:2022-08-19 00:42:45

㈠ 51單片機編程

用模擬圖來實現,很容易,P2口接8個LED燈,把41H送P2口,由8個LED燈顯示出來即可。

模擬圖如下

匯編程序

MOV P2,#41H

SJMP $

㈡ 51單片機編程軟體英文版怎樣改成中文版

開源軟體mcu8051ide 功能不是一般的強,用c語言編程,界面不輸給商業軟體,而且提供多種模擬器件如:led 數碼管,矩陣數碼管(8×8)按鍵,矩陣按鍵,甚至溫度感測器。開源的沒有任何限制,完全免費,自動生成多種燒錄文件(我們一般就用.HEX的)感覺keil c弱爆了。

㈢ 51單片機編程軟體中文版誰有

開源軟體mcu8051ide 功能不是一般的強,用c語言編程,界面不輸給商業軟體,而且提供多種模擬器件如:led 數碼管,矩陣數碼管(8×8)按鍵,矩陣按鍵,甚至溫度感測器。開源的沒有任何限制,完全免費,自動生成多種燒錄文件(我們一般就用.HEX的)感覺keil c弱爆了。
安裝方法,下載sdcc(mcu8051ide是基於sdcc的)和mcu 8051 ide都安裝好就可以啦,頭文件在sdcc的安裝文件夾內(include)有些關鍵字要加兩個連在一起的下劃線比如 __interrup, __code.
頭文件與keil的不通用,比如定義P0口
在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 這個P0^1的不行,但sdcc裡面有很多頭文件8051.h 80c51.h 80c52.h等等 基本滿足要求,給stc單片機編程不用改,加一點特殊的就可以。這樣優秀的開源軟體不用真的是白不用啊。一般開源軟體沒有中文版,而這款軟體居然可以選擇中文,在配置裡面有簡體中文。爽到極點啊,真懷疑是不是國內高手開發的。

㈣ 用51單片機編程

單片機中只有一條語句是對進制調整的
DA A 對累加器A的結果進行十進制調整
如果隨意對一個累加器A中的二進制數據進行「二進制轉十進制」調整是沒有任何實際意義的!

DA調整的對象是ADD或ADDC以後的結果,而且是BCD碼相加以後才能夠加以調整,否則沒有實際意義!

比如,現在我想執行12D+39D也就是兩個十進制數相加這樣一個加法(有時候程序處理的需要,數據在單片機中是以BCD碼的形式存儲的,也就是12H和39H(十六進制),但我們可以人為將它們看為12D和39D(十進制),而且還希望相加以後的結果為51H,也就是說符合十進制運算規則12+39=51,而不是4BH的結果),但這樣的十進制加法運算在單片機中是不能夠直接實現的。因為單片機只能夠執行二進制加法指令,也就是所有的運算都按照二進制中的規則進行!

於是就出現了DA調整指令!

現在12H+39H,將12H放於A中,執行 ADD A,#39H指令,則結果為4BH,這不是我們希望的51H的數據形式!!這時執行DA A 指令後,就會將A中的數據調整為51H(具體調整過程和原理你可以詳細看書,如果單片機書中講的不詳細,那麼微機原理中一定說的非常詳細),而我們按照BCD碼規則就將其看為51D,符合我們的要求!

也就是說加數和被加數都是BCD碼的形式,最大也只可能是99H,也就是我們十進制數中的99,只有這樣才會有實際的意義!
所以DA A指令只用於十進制BCD碼加法指令以後,否則是沒有實際意義的!
在單片機中數據就是以二進制存放的也可以說是以16進制存放(4位二進制就是16進制),所以一般來說在單片機只有二進制轉十進制才有意義,通過單片機將十進制轉二進制是沒意義的。 這個一般都是我們自己把一個十進制數轉成二進制再送給單片機處理。
非得編寫程序的話 程序如下
----------------------------------------------------------------------
;二進制整數(2位)轉換為十進制整數(組合BCD碼)
;入口: R3,R4
;出口: R0
IBTD22 : MOV A,R0
PUSH A
MOV R7,#03H
CLR A
IBD221 : MOV @R0,A
INC R0
DJNZ R7,IBD221
POP A
MOV R0,A
MOV R7,#10H
IBD222 : PUSH A
CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV B,#03H
IBD223 : MOV A,@R0
ADDC A,@R0
DA A
MOV @R0,A
INC R0
DJNZ B,IBD223
POP A
MOV R0,A
DJNZ
--------------------------------------------------
;二進制整數(M位)轉換為十進制整數(組合BCD碼)
;入口: R1,M,N
;出口: R0
IBTDMN : MOV A,R0
MOV R2,A
MOV A,R1
MOV R3,A
MOV B,N
CLR A
IBDMN1 : MOV @R0,A
INC R0
DJNZ B,IBDMN1
MOV A,M
SWAP A
RR A
CLR C
MOV R7,A
IBDMN2 : MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV B,M
IBDMN3 : MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ B,IBDMN3
MOV B,N
IBDMN4 : MOV A,@R0
ADDC A,@R0
DA A
JNB ACC.4,IBDMN5
SETB C
CLR ACC.4
IBDMN5 : MOV @R0,A
INC R0
DJNZ B,IBDMN4
DJNZ R7,IBDMN2
MOV A,R2
MOV R0,A
RET
----------------------------------------------------------------
BCD整數轉換為二進制整數(1位)
;入口: R0(高位地址),R7
;出口: R4
IDTB1: CLR A
MOV R4,A
IDB11: MOV A,R4
MOV B,#0AH
MUL AB
ADD A,@R0
INC R0
MOV R4,A
DJNZ R7,IDB11
RET
------------------------------------------
;BCD整數轉換為二進制整數(N位)
;入口: R1(高位地址),M,N
;出口: R0
IDTBMN : MOV A,R0
MOV R2,A
MOV B,N
CLR A
IDBMN1 : MOV @R0,A
INC R0
DJNZ B,IDBMN1
MOV A,R2
MOV R0,A
MOV A,M
MOV NCNT,A
IDBMN2 : MOV R7,N
CLR A
CLR F0
IDBMN3 : XCH A,@R0
MOV B,#0AH
MUL AB
MOV C,F0
ADDC A,@R0
MOV F0,C
MOV @R0,A
INC R0
MOV A,B
DJNZ R7,IDBMN3
MOV A,R2
MOV R0,A
MOV A,@R1
INC R1
ADD A,@R0
MOV @R0,A
DJNZ NCNT,IDBMN2
RET
----------------------------------------------------------
NDIV31 : MOV A,R2
MOV B,R7
DIV AB
PUSH A
MOV R2,B
MOV B,#10H
NDV311 : CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV F0,C
CLR C
SUBB A,R7
JB F0,NDV312
JC NDV313
NDV312 : MOV R2,A
INC R4
NDV313 : DJNZ B,NDV311
POP A
CLR OV
JZ NDV314
SETB OV
NDV314 : XCH A,R2
MOV R7,A
RET

㈤ 51單片機編程,用C語言。

給你一個矩陣鍵盤的參考程序
行列掃描:通過高四位全部輸出低電平,低四位輸出高電平。當接收到的數據,低四位不全為高電平時,說明有按鍵按下,然後通過接收的數據值,判斷是哪一列有按鍵按下,然後再反過來,高四位輸出高電平,低四位輸出低電平,然後根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪一個按鍵按下了。
/****************************************************************************
*函數名 :KeyDown
*函數功能 : 檢測有按鍵按下並讀取鍵值
*輸入 : 無
*輸出 : 無
****************************************************************************/
voidKeyDown(void)
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//讀取按鍵是否按下
{
Delay10ms();//延時10ms進行消抖
if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下
{
GPIO_KEY=0X0F; //測試列
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//測試行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0))//按鍵鬆手檢測
{
Delay10ms();
a++;
}
}
}
}

㈥ 求Kei|51單片機編程軟體中文版

這位朋友你好,我也是自學單片機出來的,我英語也不好,不過用這個Kei|51單片機編程軟體也不難,第一步,建立項目,第二步,建立文件,第三步,編譯調試,裡面的設置看一下中文說明就可以了,網上很多的,希望能幫到你

㈦ 求51單片機編程方式

按鈕要接在單片機的中斷引腳上,如P3.2和P3.3.
然後開中斷:如
EX0=1 //開外部中斷1
EA =1 //開總中斷
IT0=1//下降沿觸發
p0到p2的控制可以在中斷程序中,也可以在主程序中。

㈧ 51單片機編程問題(匯編語言)

;
ORG0000H
JMPMAIN
ORG000BH
JMPTC0S
ORG001BH
JMPTC1S
MAIN:
MOVTMOD,#61H
MOVTH1,#0F6H
MOVTL1,#0F6H
SETBTR1

SETBET1
SETBET0
SETBEA

CLRP1.7
SJMP$
;
TC1S:;收到了10個脈沖,發生T1計數中斷
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0;令T0定時50ms
SETBP1.7
RETI

TC0S:;到了50ms
CLRP1.7
CLRTR0
RETI
END

㈨ 51單片機編程

程序修改如下:
#include<reg51.h>
unsignedcharLedChar[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90
};
voidmain()
{
unsignedchari=0;
while(1)
{
P2=0xfe;
P0=LedChar[2];
for(i=0;i<300;i++);
P2=0xfd;//親,這里有錯誤
P0=LedChar[1];
for(i=0;i<300;i++);
}

}

閱讀全文

與51編程中文相關的資料

熱點內容
有一個片 一個孕婦肚子有怪獸 瀏覽:844
姜銀慧主演的電影有哪些 瀏覽:998
最新日韓電影好看的韓國電影日本電影免費觀看 瀏覽:317
潘金蓮在鞦韆上吃葡萄是哪部電影 瀏覽:321
穿越二戰賣軍火給德國的小說 瀏覽:991
韓國倫理電影吸毒 瀏覽:520
法國真實口交的電影叫什麼 瀏覽:629
成龍鯊魚館的電影 瀏覽:606
看字幕英文視頻的是app 瀏覽:834
帶點顏色的玄幻仙俠 瀏覽:426
擎洲廣達為什麼有加密狗 瀏覽:806
0855電影 瀏覽:749
壓縮袋封口不好封 瀏覽:825
長春一汽程序員真實待遇 瀏覽:997
唯美動作愛情片 瀏覽:316
表情廣場app怎麼自己製作 瀏覽:249
看片著名網站 瀏覽:485
五十年代台灣電影 瀏覽:356
對單片機的基本認識 瀏覽:172
app公測版是什麼意思 瀏覽:786