《單片機彙編》期末考試、考研常見考題、習題,題型彙總(二十一)、單片機定時器產生各種方波

小知識點補充33:

1,MCS —51 布爾處理機的存儲空間是 00H-7FH
28051 的堆棧區一般開闢在 用戶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)
電路圖如下:
LIUXIANFEI
解析:單片機定時器爲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  

仿真圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章