找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3281|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)學(xué)習(xí)小小結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75926 發(fā)表于 2015-4-10 19:10 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)的學(xué)習(xí):

        對8位單片機(jī)的理解
           1位有8字節(jié),一個(gè)字節(jié)有8個(gè)i/o口,如STC89C51單片機(jī):
           P0.0~P0.7(一位)
           P1.0~P1.7(一位)
           P2.0~P2.7(一位)
           P3.0~P3.7(一位)
           XTAL1  XTAL2(外接晶振電路,但現(xiàn)在的好多單片機(jī)內(nèi)置有晶振電路)
           RST(一位)
           PSEN(一位)
           ALE(一位)
           EA(一位)
          
人類的視覺時(shí)間是1/24秒,小于此范圍內(nèi)的視覺時(shí)間是感覺不到的。

匯編延時(shí)的子程序一:
        DELAY200MS:          ;@12.000MHz
                MOV  30H,#2
                MOV  31H,#134
                MOV  32H,#13
        NEXT:
                DJNZ  32H,NEXT
                DJNZ  31H,NEXT
                DJNZ  30H,NEXT
                RET
               
        DELAY150MS:  ;@12.000MHz
        MOV  30H,#2
        MOV  31H,#40
        MOV  32H,#16    ;未加H則表示為十進(jìn)制
        NEXT:
        DJNZ  32H,NEXT
        DJNZ  31H,NEXT
        DJNZ  30H,NEXT
        RET

        DELAY100MS:          ;@12.000MHz       
        MOV  30H,#197        
        MOV  31H,#16    ;未加H則表示為十進(jìn)制                
        NEXT:               
        DJNZ  31H,NEXT        ;自減15次       
        DJNZ  30H,NEXT        ;自減(n-1)*(0-1)= (n-1)*255       
        RET       

注意:
    加“#”號表示一個(gè)數(shù),不加則表示一個(gè)“物理地址”
                                       

【重點(diǎn)】如何計(jì)算延時(shí)時(shí)間:
        1.利用STC-V6.24中的延時(shí)計(jì)算器來生成匯編或C代碼
                DELAY200MS:                        ;@11.0592MHz
                        PUSH 30H
                        PUSH 31H
                        PUSH 32H
                        MOV 30H,#2
                        MOV 31H,#103
                        MOV 32H,#140
                NEXT:
                        DJNZ 32H,NEXT
                        DJNZ 31H,NEXT
                        DJNZ 30H,NEXT
                        POP 32H
                        POP 31H
                        POP 30H
                        RET

        2.計(jì)算得到:
                   ;2014年7月17日17:00:34  8個(gè)流水燈的演示
                                ORG 00H
                                MAIN:
                                MOV P2,#0AAH        ;等價(jià)于#10101010B(從P2.1~p2.7管腳) 注意:如果匯編語言的數(shù)字表示是以字母開頭的話,則字母開頭要加零(0)如,0FF,0AA等
                                LCALL DELAY200MS
                                MOV P2,#55H                ;等價(jià)于#01010101B(從P2.1~p2.7管腳)
                                LCALL DELAY200MS
                                SJMP MAIN
                                DELAY200MS:          ;@12.000MHz
                                        MOV  30H,#2         ;30H表示的是地址,單片機(jī)的一段數(shù)據(jù)緩存內(nèi)存單元,從30H~7FH共80個(gè)這樣的數(shù)據(jù)緩存單元
                                        MOV  31H,#134
                                        MOV  32H,#13   ;未加H則表示為十進(jìn)制
                                NEXT:
                                        DJNZ  32H,NEXT        ;自減12次
                                        DJNZ  31H,NEXT        ;自減133*(0-1)等價(jià)于133*255 = 33915
                                        DJNZ  30H,NEXT        ;自減1*(0-1)*(0-1)= 1*255*255 = 65025
                                        RET                                ;所以總共自減12+33915+65025 =  98952次  每次執(zhí)行耗時(shí)為2us 所以總共耗時(shí)為98952*2 = 197904 us  約等于20萬us = 0.2s = 200ms
                                END

                                匯編延時(shí)的子程序二:
                                DELAY50MS:
                                        MOV 30H,#90
                                        MOV 31H,#158
                                NEXT:
                                        DJNZ 31H,#NEXT
                                        DJNZ 30H,#NEXT
                                        RET
在匯編里";"或"//"可以屏蔽該行的語句
       
SJMP的轉(zhuǎn)移指令范圍為256字節(jié)       
AJMP的跳轉(zhuǎn)范圍為2K
注意:當(dāng)所要跳轉(zhuǎn)的范圍比較長時(shí)用AJMP指令       
       
時(shí)鐘周期 和 指令周期
        在12MHz(兆)的時(shí)鐘一個(gè)周期的時(shí)間為1/12us(微秒)
       
在匯編中
    0-1 = ?  結(jié)果是255        寫一個(gè)小程序來驗(yàn)證一下
       
時(shí)間的換算單位:
        1秒=1000毫秒(ms)  
        1毫秒=1/1,000秒(s)
        1秒=1,000,000 微秒(μs)
        1微秒=1/1,000,000秒(s)
        1秒=1,000,000,000 納秒(ns)
        1納秒=1/1,000,000,000秒(s)
        1秒=1,000,000,000,000 皮秒(ps)
        1皮秒=1/1,000,000,000,000秒(s)
        1s=1000ms  
        1ms=1000us  
        1us=1000ns  
        1ns=1000ps        
對晶振的理解:       
        單片機(jī)的晶振堪稱為單片機(jī)的“心臟”,提供節(jié)拍的作用,即單片機(jī)工作一次,
        它可能會振動(dòng)好幾次。其頻率一般在11.0592MHz左右,即1秒中內(nèi)單片機(jī)會振
        動(dòng)11.0592M次       
       
三極管的作用:
        1. 開關(guān)控制
        2. 信號放大
        3. 電平轉(zhuǎn)換
       
74HC138簡稱為“三八譯碼器”
        3-8即是單片機(jī)的IO口不夠用了,將單片機(jī)的3個(gè)IO口轉(zhuǎn)換為8個(gè)IO口,即3個(gè)輸入控制了
        8個(gè)輸出,3個(gè)IO口形成8種不同的狀態(tài),從而控制相關(guān)燈或數(shù)碼管的亮滅。
       


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表