|
單片機的學習:
對8位單片機的理解
1位有8字節,一個字節有8個i/o口,如STC89C51單片機:
P0.0~P0.7(一位)
P1.0~P1.7(一位)
P2.0~P2.7(一位)
P3.0~P3.7(一位)
XTAL1 XTAL2(外接晶振電路,但現在的好多單片機內置有晶振電路)
RST(一位)
PSEN(一位)
ALE(一位)
EA(一位)
人類的視覺時間是1/24秒,小于此范圍內的視覺時間是感覺不到的。
匯編延時的子程序一:
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則表示為十進制
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
RET
DELAY100MS: ;@12.000MHz
MOV 30H,#197
MOV 31H,#16 ;未加H則表示為十進制
NEXT:
DJNZ 31H,NEXT ;自減15次
DJNZ 30H,NEXT ;自減(n-1)*(0-1)= (n-1)*255
RET
注意:
加“#”號表示一個數,不加則表示一個“物理地址”
【重點】如何計算延時時間:
1.利用STC-V6.24中的延時計算器來生成匯編或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.計算得到:
;2014年7月17日17:00:34 8個流水燈的演示
ORG 00H
MAIN:
MOV P2,#0AAH ;等價于#10101010B(從P2.1~p2.7管腳) 注意:如果匯編語言的數字表示是以字母開頭的話,則字母開頭要加零(0)如,0FF,0AA等
LCALL DELAY200MS
MOV P2,#55H ;等價于#01010101B(從P2.1~p2.7管腳)
LCALL DELAY200MS
SJMP MAIN
DELAY200MS: ;@12.000MHz
MOV 30H,#2 ;30H表示的是地址,單片機的一段數據緩存內存單元,從30H~7FH共80個這樣的數據緩存單元
MOV 31H,#134
MOV 32H,#13 ;未加H則表示為十進制
NEXT:
DJNZ 32H,NEXT ;自減12次
DJNZ 31H,NEXT ;自減133*(0-1)等價于133*255 = 33915
DJNZ 30H,NEXT ;自減1*(0-1)*(0-1)= 1*255*255 = 65025
RET ;所以總共自減12+33915+65025 = 98952次 每次執行耗時為2us 所以總共耗時為98952*2 = 197904 us 約等于20萬us = 0.2s = 200ms
END
匯編延時的子程序二:
DELAY50MS:
MOV 30H,#90
MOV 31H,#158
NEXT:
DJNZ 31H,#NEXT
DJNZ 30H,#NEXT
RET
在匯編里";"或"//"可以屏蔽該行的語句
SJMP的轉移指令范圍為256字節
AJMP的跳轉范圍為2K
注意:當所要跳轉的范圍比較長時用AJMP指令
時鐘周期 和 指令周期
在12MHz(兆)的時鐘一個周期的時間為1/12us(微秒)
在匯編中
0-1 = ? 結果是255 寫一個小程序來驗證一下
時間的換算單位:
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
對晶振的理解:
單片機的晶振堪稱為單片機的“心臟”,提供節拍的作用,即單片機工作一次,
它可能會振動好幾次。其頻率一般在11.0592MHz左右,即1秒中內單片機會振
動11.0592M次
三極管的作用:
1. 開關控制
2. 信號放大
3. 電平轉換
74HC138簡稱為“三八譯碼器”
3-8即是單片機的IO口不夠用了,將單片機的3個IO口轉換為8個IO口,即3個輸入控制了
8個輸出,3個IO口形成8種不同的狀態,從而控制相關燈或數碼管的亮滅。
|
|