小知識點補充33:
1,MCS —51 布爾處理機的存儲空間是 00H-7FH
2,8051 的堆棧區一般開闢在 用戶RAM區
3,所謂尋址,其實質就是 如何確定操作數的單元地址
4,存儲器映象是 存儲器在整個存儲空間的地址範圍
5,定時器中斷請求發生在 定時時間到
6,中斷響應時間是指 從查詢中斷請求標誌位到轉向中斷區入口地址所需的機器週期數
7,通過 CPU 對 I/O 狀態的測試,只有 I/O 已準備好時才能進行 I/O 傳送,這種傳送方式稱爲 程序查詢方式
8,在中斷服務程序中現場保護和現場恢復期間,中斷系統應處在 關中斷 狀態
9,當外部中斷請求的信號方式爲脈衝方式時, 要求中斷請求信號的高電平狀態和低電平狀態都應至少維持 1 個機器週期
10,如何正確使用 P3口?(簡答題)
答:要點:
(1)說明 P3口有第一功能和第二功能的使用。
(2)P3口的第二功能各位線的含義。
(3)使用時應先按需要選用第二功能信號,剩下的口線才作第一功能 I/O 線用。
(4)讀引腳數據時,必需先給鎖存器輸出“ 1”。
11,簡述累加器的 ACC 的作用(簡答題)
答:(1)8 位專用寄存器。
(2)運算時存放一個操作數。
(3)運算後存放運算結果,所以稱它爲累加器。
12,簡述寄存器間接尋址方式及其尋址範圍(簡答題)
答:寄存器中存放的是操作數的地址, 操作數是通過寄存器間接得到, 這種尋址方式稱爲寄存器間接尋址方式。
尋址範圍:
① 內部 RAM 低 128 B單位,形式 @Ri(i=0,1) 。
② 外部 RAM64K 使用 DPTR 作間址寄存器,形式爲 @DPTR 。
13,簡述串行數據傳送的特點(簡答題)
答: (1)傳送按位順序進行,速度慢。
(2)傳輸線少,成本低。
(3)傳送距離遠,可達幾公尺到幾千公里。
(小知識點補充15重複)
題64
利用單片機的定時器產生頻率爲1Hz的方波信號,將此信號從P2.0口輸出(晶振12MHz)
電路圖如下:
解析:單片機定時器爲16位,最大計數值65535,在12MHz時鐘下最大定時時間爲(65535+1)*12/12=65.535毫秒<1秒,因此需要設置變量。
思路:方法一:
設置定時器定時時間爲50毫秒,定義一個變量,每中斷一次變量值加一,中斷10次進行電平反轉,然後再中斷10次,即可達到要求:
高電平500ms+低電平500ms=1s
注意:如果題目中沒有說佔空比,那麼就是默認佔空比50%,即標準的方波信號
方法一:使用定時器1,方式1,定時初值50毫秒
程序源碼:
LED EQU P2.0
VAR EQU R7
ORG 0000H
LJMP START
ORG 001BH
LJMP T1ADDR
ORG 0030H
START:
MOV SP,#66H
MOV TMOD,#10H
SETB ET1
SETB EA
MOV TL1,#0AFH
MOV TH1,#3CH
CLR LED
MOV VAR,#0AH
SETB TR1
SJMP $
T1ADDR:
MOV TL1,#0AFH
MOV TH1,#3CH
DJNZ VAR,Overturn
CPL LED
MOV VAR,#0AH
Overturn:
RETI
END
仿真圖:
方法二:使用定時器1,方式0,定時初值5毫秒
程序源碼:
LED EQU P2.0
VAR EQU R7
ORG 0000H
LJMP START
ORG 001BH
LJMP T1ADDR
ORG 0030H
START:
MOV SP,#66H
MOV TMOD,#00H
SETB ET1
SETB EA
MOV TL1,#78H
MOV TH1,#0CH
CLR LED
MOV VAR,#64H
SETB TR1
SJMP $
T1ADDR:
MOV TL1,#78H
MOV TH1,#0CH
DJNZ VAR,Overturn
CPL LED
MOV VAR,#64H
Overturn:
RETI
END
仿真視頻:
《單片機彙編》期末考試、考研常見考題、習題,題型彙總(二十一)、單片機定時器產生各種方波
題65
利用單片機的定時器產生頻率爲5KHz的方波信號,將此信號從P2.0口輸出(晶振12MHz)
程序源碼:
使用定時器1,方式2
PULSE EQU P2.0
VAR EQU R7
ORG 0000H
LJMP START
ORG 001BH
LJMP T1ADDR
ORG 0030H
START:
MOV SP,#66H
MOV TMOD,#20H
SETB ET1
SETB EA
MOV TL1,#37H
MOV TH1,#37H
CLR PULSE
MOV VAR,#64H
SETB TR1
SJMP $
T1ADDR:
CPL PULSE
RETI
END
仿真圖:
題66
利用單片機的定時器產生頻率爲1KHz的方波信號(佔空比=80%),將此信號從P2.0口輸出(晶振12MHz)
解析:
佔空比:是指在一個脈衝循環內,通電時間相對於總時間所佔的比例。一般情況下是指在一個週期內,高電平時間與總時間之比
1K頻率80%的佔空比,即週期爲1毫秒,高電平時間800us,低電平時間200us
程序源碼:
使用定時器0,方式2
PULSE EQU P2.0
VAR EQU 60H
ORG 0000H
LJMP START
ORG 000BH
LJMP T0ADDR
ORG 0030H
START:
MOV SP,#66H
MOV TMOD,#02H
SETB ET0
SETB EA
MOV TL0,#37H
MOV TH0,#37H
SETB PULSE
MOV VAR,#00H
SETB TR0
SJMP $
T0ADDR:
INC VAR
MOV A,VAR
CJNE A,#04H,L1
CLR PULSE
L1:
CJNE A,#5,L2
SETB PULSE
MOV VAR,#00H
L2:
RETI
END
仿真圖:
題67
利用單片機的計數器計數外部脈衝個數,計算出外部脈衝的週期(晶振12MHz),設脈衝是20Hz-1KHz由P3.2口輸入
解析:使用定時器0,方式1,作爲演示型實驗,爲了程序較爲簡便,輸入頻率爲100Hz標準方波,將定時器的計數值TL0複製給60H,TH0複製給61H單元,若計數值有溢出則將溢出次數賦給62H單元。
週期換算:
12M晶振,每計數一次爲1us,當定時器0工作在方式1時,最大計數爲65535,則每溢出一次,爲65.535毫秒。
則總的計數時間:T=(61H)8+(60H)+65536(62H)
程序源碼:
LED EQU P2.0
VAR EQU R7
COUNTER EQU R6
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0ADDR
ORG 000BH
LJMP T0ADDR
ORG 0030H
START:
MOV SP,#66H
MOV TMOD,#01H
SETB EX0
SETB IT0
SETB EA
LOOP:
MOV TL0,#00H
MOV TH0,#00H
CLR LED
MOV VAR,#00H
MOV COUNTER,#0
SETB ET0
JNB LED,$
MOV 60H,TL0
MOV 61H,TH0
MOV 62H,COUNTER
HALT:
SJMP LOOP
INT0ADDR:
INC VAR
CJNE VAR,#10,L6 ;等待外部脈衝穩定
SETB TR0
L6:
CJNE VAR,#11,L3
CLR TR0
CLR EX0
SETB LED
L3:
RETI
T0ADDR:
MOV TL0,#00H
MOV TH0,#00H
INC COUNTER
RETI
END
仿真圖:
由仿真可知:
TH0=27H,TL0=12H,(62H)=0,換算時間:
T1=(TH0<<8+TL0)*1us=10002us=10.002ms
f=1/T1=100Hz左右
實際中:應等脈衝穩定時多次測量取平均值
程序閱讀填空題2
ORG 0000H
LJMP START
ORG 0060H
START:
MOV R0,#30H
MOV R1,#30H
MOV A,R0
ADD A,#36H
MOV P1,A
INC R0
INC R1
ANL A,R1
PUSH ACC
SWAP A
MOV P1,A
POP B
MOV R0,A
MOV DPTR,#2020H
SETB C
ADDC A,#10
MOVX @DPTR,A
END
程序執行完後:
(R0)= ,(R1)= ,(P1)= ,(B)= ,(2020H)=
答案:
(R0)= 02H ,(R1)=31H ,(P1)=02H ,(B)= 20H ,(2020H)=0DH
仿真圖: