天天看點

單片機實驗----控制數位管的動态顯示控制數位管的動态顯示

控制數位管的動态顯示

文章目錄

  • 控制數位管的動态顯示
    • 一、動态顯示與靜态顯示的比較
      • 1.什麼是動态顯示
      • 2.什麼是靜态顯示
      • 3.優缺點對比
    • 二、如何控制多隻數位管
      • 1.電路圖
      • 2.代碼
      • 3.程式分析
    • 三、控制多隻數位管的方法

本次實驗任務如下:

單片機實驗----控制數位管的動态顯示控制數位管的動态顯示

一、動态顯示與靜态顯示的比較

1.什麼是動态顯示

  • 驅動電路可以使數位管正常顯示資料,數位管的驅動方式有兩種:動态顯示驅動和靜态顯示驅動。
  • 動态驅動是将所有數位管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起。
  • 另外為每個數位管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制。
  • 當單片機輸出字形碼時,所有數位管都接收到相同的字形碼,但究竟是哪個數位管會顯示出字形,取決于單片機對位選通COM端電路的控制。

2.什麼是靜态顯示

  • 靜态顯示驅動靜态驅動也稱直流驅動。
  • 靜态驅動是指每個數位管的每一個段碼都由一個單片機的I/O端口進行驅動。

3.優缺點對比

驅動類型 優點 缺點
動态顯示驅動 可以控制多個數位管 占用資源少 節省電能 程式相對複雜
靜态顯示驅動 編寫程式簡單 顯示亮度高 控制的數位管數量有限 占用資源過大

二、如何控制多隻數位管

1.電路圖

單片機實驗----控制數位管的動态顯示控制數位管的動态顯示
  • 利用觸發器作為中間環節來控制數位管。
  • U2為段位觸發器,控制數位管的顯示。
  • U3為位選觸發器,控制數位管的選擇。
  • P0口作為資料的輸出口。

2.代碼

ORG 0000H
		LJMP MAIN
		ORG 30H
;..................................................
;				數位管DS0顯示‘0’
;..................................................
MAIN:	MOV  P0,#0C0H   ;段選資料0
		CLR	 P1.0		;選中U2為段選晶片,将U2的Ē寫為低電平
		CLR	 P1.2		;時序引腳CKL為低電平,為接受資料做準備
		SETB P1.2		;時序為上升沿,即将資料傳送給U2
		SETB P1.0		;關閉U2,使得U2不在接受資料
	
		MOV	 P0,#0FEH	;位選資料由P0口給出,選擇DS0數位顯示
		CLR	 P1.1		;選中U3位選晶片,将U3的Ē寫為低電平
		CLR	 P1.2		;時序引腳CKL為低電平,為接收資料做準備
		SETB P1.2		;時序為上升沿,即将資料傳送給U3
		SETB P1.1		;關閉U3,使得U3不在接收資料
	///
		LCALL DELAY		;延時一段時間
		MOV  P0,#0FFH	;關閉數位管,為下一個數位管顯示做準備
		CLR	 P1.0		;選中U3位選晶片,将U3的Ē寫為低電平
		CLR	 P1.2		;時序引腳CKL為低電平,為接收資料做準備
		SETB P1.2		;時序為上升沿,即将資料傳送給U3
		SETB P1.1		;關閉U3,使得U3不在接收資料
	///
;..................................................
;				數位管DS1顯示‘1’
;..................................................
     	MOV  P0,#0F9H
		CLR	 P1.0
		CLR	 P1.2
		SETB P1.2
		SETB P1.0
	
		MOV	 P0,#0FDH
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///
		LCALL DELAY
		MOV  P0,#0FFH
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///
;..................................................
;				數位管DS1顯示‘2’
;..................................................
     	MOV  P0,#0A4H
		CLR	 P1.0
		CLR	 P1.2
		SETB P1.2
		SETB P1.0
	
		MOV	 P0,#0FBH
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///
		LCALL DELAY
		MOV  P0,#0FFH
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///
;..................................................
;				數位管DS1顯示‘3’
;..................................................
     	MOV  P0,#0B0H
		CLR	 P1.0
		CLR	 P1.2
		SETB P1.2
		SETB P1.0
	
		MOV	 P0,#0F7H
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///
		LCALL DELAY
		MOV  P0,#0FFH
		CLR	 P1.1
		CLR	 P1.2
		SETB P1.2
		SETB P1.1
	///	
;..................................................
;				延時程式
;..................................................	
DELAY:	MOV  R7,#200	;延時子程式
		DJNZ R7,$
		RET				;傳回主程式
		END
           

3.程式分析

  • 程式分為兩個部分:主程式、子程式。
  • 主程式中又分四部分,分别是控制四個數位管的顯示。
  • 子程式的作用是延時。

三、控制多隻數位管的方法

  • 由上面的實驗,我們得知,多隻數位管的顯示是通過段選和位選一起控制的。
  • 段選程式控制數位管的顯示。
  • 位選程式控制數位管的選擇。
  • 段選和位選程式如下:
;*****段選程式*********
	CLR P1.0
	CLR P1.2
	MOV P0,#0B0H
	SETB P1.2
	SETB P1.0
;*****位選程式*********
	CLR P1.1
	CLR P1.2
	MOV P0,#0F7H
	SETB P1.2
	SETB P1.1
           
  • 在來一個前面程式的精簡版----使用查表發實作
;**************數位管動态顯示‘0,1,2,3’*********************
ORG 0000H
LJMP MAIN
ORG 30H
;............................................................
;                 初始化定義
;............................................................
MAIN:   MOV R0,#0;段選資料指針
		MOV R1,#0FEH	;段選資料初始化
		MOV DPTR,#TAB	;“0~9”資料表
;............................................................
;                   主程式
;............................................................
		
		;****改變段碼和位碼****
		
LOOP:	MOV A,R0	;資料指針RO給累加器A
		MOVC A,@ A+DPTR	;将資料表中指針所對應的資料傳送給A
		MOV P0,A	;資料傳給數位管各段
		CLR P1.0
		CLR	P1.2
		SETB P1.2
		SETB P1.0
	
		MOV P0,R1	;将位選資料傳送給P0口,點亮所需數位管
		CLR P1.1
		CLR P1.2
		SETB P1.2
		SETB P1.1
	
		LCALL DELAY	;延時一段時間
		MOV P0,#0FFH	;關閉數位管,為下一個數位管顯示做消
		CLR P1.1
		CLR P1.2
		SETB P1.2
		SETB P1.1
		
		;****改變段碼和位碼****
		
		INC R0	;資料指針加1,指向下一個資料位址
		MOV A,R1	;位選數位管左移,準備得下一個數位管點亮
		RL A
		MOV R1,A
		CJNE R1,#0EFH,LOOP	;判斷DS3數位管是否點亮結束
		LJMP MAIN	;循環本程式
;............................................................
;               延時程式
;............................................................
DELAY:	MOV R7,#200	;延時子程式
		DJNZ R7,$
		RET	;傳回主程式指令
;............................................................
;               數位管資料表
;............................................................
TAB:    DB 000H,0F9H,0A4H,0B0H,099H ;0-9資料表
		DB 092H,082H,0F8H,080H,090H
		END
           

時間:2018年10月19日13:28:43

-END-