1樓:低調de連山
mov a,020h
mov 2fh,a
mov a,021h
mov 2eh,a
mov a,022h
mov 02dh,a
q0:mov r2,#00h ; 初始化r2用來存放0的個數。
mov r1,#020h
q1:mov a,@r1 ;r1地址對應的資料傳輸到ajnz q2 ;a是否為0
inc r2 ;為0,r2增1
q2:mov a,r1
cjne a,#050h,q3
mov 051h,r2 ;把r2個數放入51hret ; 結束返回。
q2:inc r1
jmp q1
clr c ; 清除進位位。
cjne a,#0ah,p1
setb flag ;這裡的flag自己在定義的時候定義成位變數。
p1:jc p2 ;對比c,進位位為1轉移到p2,c=1,說明a比10小。
jb flag,ad1 ;a<=10 轉到ad1地址。
jmp ad2 ; a<10 到ad2
p2:jb flag,ad3 ; a>=10 ad3jmp ad4 ; a>10 ad4
註釋:全是自己編寫的,如果有問題可以qq討論24439216
2樓:網友
不知道c語言編寫的可以不(編譯環境keil ?
51微控制器教程,要通俗易懂版的
3樓:走進支教生活
我是一名微控制器工程師,下面的講解你參考一下。
51微控制器共有40只引腳.下面這個就是最小系統原理圖,就是靠這四個部分,這個微控制器就可以執行起來了.(看下面的數字標記,1234)
我們來一,一講解一下:
1 第一部分:電源組(標記為1的部分)
40腳接電源5v(右上角),20腳接電源負極(左下角),在微控制器裡面,負極也可以叫gnd或者」地」,我們在微控制器的應用中,習慣說負極為」地」,上面gnd就是英文ground的縮寫,翻譯過來就是」地」的意思...
2 第二部分:晶振組(標記為2的部分)
晶振y1與微控制器的18,19腳並聯,因為這兩隻腳,就是晶振的工作引腳.
22p電容c2一端接18腳,一端接地.
22p電容c3一端接19腳,一端接地.
這兩個電容,我們在10~30p之間選擇都是可以的,主要作用是,過濾掉晶振部分的高頻訊號,讓晶振工作的時候更加穩定...
3 第三部分:復位組(標記為3的部分)
10u電容c1正極接電源5v,c1負極接微控制器的復位腳,第9腳.
1k電阻r17一端接微控制器的復位腳,第9腳,一端接地.
就是通過這個10u和1k,就可以讓微控制器一開始供電時候,微控制器自動復位,從零開始執行程式,這個就是復位的概念...
4 第四部分:其它功能組(標記為4的部分)
這個腳是儲存器使用選擇腳,當這個腳接」地」時,那麼就是告訴微控制器,選擇使用外部儲存器,當這個腳接」5v」時,說明微控制器使用內部儲存器.
如果選擇外部的儲存器,太浪費微控制器僅有的資源,所以這一腳永遠接電源5v(如上圖所示),使用微控制器的內部儲存器.
滿意的朋友請點贊,謝謝!
51微控制器如何使用?
4樓:信必鑫服務平臺
使用51微控制器需要達到以下基本條件:
1、至少要搭建一個最小系統;
2、你需要編制一個51的控制程式;
這樣你就可以使用這款51微控制器了。
1微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8031微控制器,後來隨著flash rom技術的發展,8031微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。
很多公司都有51系列的相容機型推出,今後很長的一段時間內將佔有大量市場。51微控制器是基礎入門的一個微控制器,還是應用最廣泛的一種。需要注意的是52系列的微控制器一般不具備自程式設計能力。
51微控制器如何入門? 5
5樓:匿名使用者
入門快不快要看你有沒有一定的基礎,比如電子電路知識,0基礎的話確實是有點難。
零基礎的話建議:
1,學習電子元器件基礎。
2,學習類比電子電路基礎。
3,學習數位電路基礎。
4,熟悉51微控制器硬體結構。
5,學習程式語言。
上面的學完了就入門了 ,我不建議買51微控制器開發實驗板來學習,開始學就是要增加自己的動手能力,動手才瞭解電路,排除故障,得到經驗,製作一個51微控制器最小系統是很簡單的,再加個8位流水燈,就可以學了,然後再加按鍵,和流水燈一起學,這樣硬體製作也學會,程式設計也學會,循序漸進才有進步,不要想著一步登天。
有空和我交流交流,我也在學51微控制器。
6樓:匿名使用者
微控制器入門最快的方法就是自己實踐,一邊看書一邊實踐是最快的。
你可以一步一步來。
7樓:
我推薦郭天祥的《新概念51微控制器c語言教程》,比較容易能讓人儘快的進入狀態。最好在配塊學習板,這個**上有很多,價錢也不貴,可以挑一個,最好能相容郭天祥的學習板(這樣書裡的例子就可以直接拿來用了)。然後一邊看書,一邊程式設計,燒到微控制器裡試驗,書和板子兩者配合起來入門就容易多了。
51微控制器的問題
8樓:戰地牛犢
是片選訊號,低電平有效,當為低電平時,8155才能工作。
時,51微控制器對ram進行操作,時,51微控制器對i/o介面操作。,(不使用地址線為0, 都為0)
命令/狀態字埠為4000h
a口:4001h
b口:4002h
c口:4003h
地址線為 p2.
5 p2.2 p0.
7 p0.命令/狀態字埠為4000h
對於8155來說,技術手冊可查到。
低三位地址對應的埠(當io/m=1時)
000b 代表 命令/狀態字埠。
001b 代表a口。
010b 代表b口。
011b 代表c口。
所以本題答案如上。
9樓:海角之約
,選中該片。當p2.
7=0, =0時,選中8155片內ram,這時8155只能作片外ram使用,當 ,p2.
6 =1時,選中8155的i/o口,其埠地址的低8位由ad7~ad0確定,這時,a、b、c口的口地址低8位分別為01h、02h、03h。
10樓:濰坊王健
你是學什麼的。。。我今年剛考了 但也不會。。
關於51微控制器的幾個問題
11樓:做而論道
位二進位制補碼錶示十六位進位制的範圍是多少?是-80h~7fh麼。
是。--2、「8051微控制器的外部拓展eeprom程式儲存器進行適當的連線可以作為資料儲存器使用,而8051微控制器的外部拓展資料儲存器也可以作為程式儲存器進行程式除錯」
前一句懂,後一句為什麼是對的呢?如果外部資料儲存器沒有連線方式的話,movc這種查表指令該怎麼辦呢?資料儲存和程式儲存器的指令不是不同嗎?
還有我們編寫keilc程式時,指令是存在微控制器**的?是外部程式儲存器還是內部程式存儲存器裡?(可能存在外部資料儲存器麼)
這些話,是否正確,要看硬體電路。
如果把 psen 和 rd 相與,外部拓展資料儲存器,也可以作為程式儲存器。
前一句:外部拓展eeprom程式儲存器進行適當的連線可以作為資料儲存器使用,這裡已經說了,需要適當的連線。
就是說,電路進行了改動,什麼事情,都是可能發生的。
不要再提出疑問。
3、「能夠用於暫存器定址的暫存器有:rn、ri、dptr、a、b、cy",dptr為毛也行啊,有mov a,dptr這種指令嗎?徐漢斌微控制器教材上就dptr有關的指令只有4個,movx a,@dptr;movx @dptr,a;mov dptr,#addr16;movc a,@dptr+a
你複習考試,要選定一本教材,不同的作者,說法不一。
4、「msc 51微控制器定時\計數器對外部脈衝進行計數時,要求輸入的計數脈衝的高電平或低電平的持續時間不少於一個機器週期」,這句話**有錯,實在沒看出來。有錯嗎?
5、兩數相減用補碼運算時,是不是cy等於0表示第一個數小於第二個數,cy等於1表示第一個數大於第二個數。
微控制器的計算,是按照無符號數進行的,cy,可以反應出無符號數的大小。
想像成補碼,並不這麼簡單,補碼是有正負的。
6、微控制器怎樣區別bcd碼與16進位制數?比如說計算bcd碼的補碼時,其模9ah與16進位制相同,微控制器怎麼區分這是bcd碼的100?
微控制器不區別這個,需要程式設計人,編寫程式來解決 bcd 碼的問題。
51微控制器,簡單問題
12樓:10伯樂
一般情況下我們都是以1作為高電平,0作為低電平,因為這樣符合我們日常生活中的認識。但是晶片的高低電平有時候不是這樣的,微控制器是以1作為高電平(這時也是高電壓),0作為低電平(低電壓)。
但是並不是所有的邏輯電平都是這樣(1為高,0為低)的。比如rs-232c標準規定的邏輯電平與ttl數位電路(例如 微控制器)的邏輯電平就不相容(不一定相反,只是電壓高低規定不一樣)。所以設計電路時最好仔細看看晶片的引數。
可以把高電平理解為高電壓,低電平理解為低電壓,但是各種晶片的高低電壓不一樣。如有的晶片高於就為高電平,有的要高於才為高電壓。
不知對你是否有幫助?
13樓:匿名使用者
一般是用1表示高電平的,0表示低電平的。 1表示接收到訊號。
高電平的電壓其實也不高,一般是規定一個範圍,比如2-5v,2v以上就是高電平了,就可以產生訊號。 這就是為什麼微控制器要規定連線電纜的長度,以後訊號強度會損失的嗎,可能發出一個4v的訊號,傳輸2m以後發現衰弱為一點幾v,那就接收不到了。
那麼2v以下就是低電平啦,因為埠本身也有電壓的,很弱,檢測的話一般是零點幾這樣子。
好久沒用微控制器了,不算太確定,希望幫到你。
14樓:好維維維
1和0是人為規定的,通常在51微控制器中1表示高電平,0表示低電平。高低電平是根據ttl門電壓比較。數位電子設計有相關的電壓比較資訊。
通俗的理解就是高電平為電源電壓,低電平認為是地電壓即是0。
15樓:網友
因為數位電路只能分清高電平與低電平兩種狀態,舉例說明,如果是一個5v的系統(電路)一般以為以下為低電平,以上為高電平(不能超過供電電壓5v,具體查晶片手冊);
如果是一個3v或12v的系統(電路),高低電平的資料又有不同;所以說高低電平只是一個相對值,晶片的供電定下後基本上高低電平的資料也就定下了。
51微控制器程式設計 20
16樓:匿名使用者
51程式設計得看外部電路的連線情況。沒有電路圖,木有辦法寫。。。
數碼管和微控制器之間的電路有很多種,你這種就用譯碼器,74138就行。假設微控制器p1口用作數碼管輸出。
滑槽電路也不清楚,假設一個電機,用的是p2^0,p2^1(順時針一個口,逆時針一個口)
檢測非金屬物料的電路用的是p2^3
4. 按鍵電路用的是p3口。
**就不貼了,說下思路。
開機初始化,給微控制器所有引腳置零,然後設定數碼管顯示(2位十進位制數顯示至少需要7個引腳,你這裡只需要用4個引腳)。
按鍵處理,程式設計中需要注意的地方就是機械開關的抖動消除,當然,如果有硬體消抖電路就不用管了。假設k1用的是p3^1口,那麼只需要判斷p3^1==1為真,就可以拉高p2^0或p2^1口電壓,直接p2^0=1就ok。
檢測非金屬物電路:檢測到一個非金屬物料,此電路就給微控制器p2^3傳送一個脈衝訊號。
微控制器這邊,主迴圈裡檢測p2^3口的電平,用一個變數oldstate來儲存上一個狀態。用count來儲存非金屬物料個數。
if(oldstate!=p2^3){
count++;
oldstate=p^3;
計數值滿10後滑槽下降初始位:
if(count==10){
p2^0==0;
p2^1==1;
count=0;
當然,如果電路還沒做的話,我推薦一個電路,這個電路程式設計更簡單,效率更高。
還是假設非金屬檢測電路一旦檢測到非金屬就發出一個脈衝訊號。
將非金屬檢測電路同一個計數器(計數器可以買現成晶片,也可以自己用觸發器做)的輸入端連線。計數器同數碼管通過譯碼器連線。
微控制器p1口同計數器輸出端連線。微控制器同計數器清零端連線。
微控制器同滑槽連線。
微控制器同鍵盤連線。
這個電路就只需要讀計數器的值,不用控制數碼管。
微控制器啟動時向計數器清零端發出清零訊號,那麼數碼管就顯示00
微控制器程式主迴圈判斷計數器的值,若為10,那麼向計數器清零端發出清零訊號;控制滑槽下降。
微控制器程式主迴圈判斷鍵盤的值,若k1按下,控制滑槽上升。
51微控制器的51是什麼意思,51微控制器什麼意思啊
其實開始微控制器就是 8031 沒有程式的 後來有個8051 比較好用 比較牛逼 其他人紛紛 模仿 這種8位 的微控制器 自然就把51當成了 標準 劃時代的產品 後來就統稱此類 微控制器為 mcs 51系列就像 馮諾依曼 哈佛 等結構 51微控制器什麼意思啊 微控制器又稱mcu,微處理器,可以以使用...
51微控制器外部中斷到底什麼意思,51微控制器中的外部中斷服務程式入口0和1有什麼不同
51微控制器有兩個外部中斷申請輸入端 int0 和 int1 這兩個引腳對應兩個中斷入口,只有這兩個引腳上的電平變化,才會觸發相應的中斷 51微控制器中的外部中斷服務程式入口0和1有什麼不同 你是哪個型別的51微控制器 一般是指 兩個中斷的區分 51微控制器有幾個中斷源,分別是什麼?一共5種中斷 優...
51微控制器串列埠通訊寫字元,51微控制器串列埠通訊寫一個字元
你主程式這麼寫,傳送一個字元後,微控制器並不停止。應該加一行無限迴圈語句,while 1 才能停,如下 include include unsigned char ch bit read flag 0 void init serialcom void 串列埠通訊初始設定 向串列埠傳送一個字元 voi...