• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開發(fā)

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開發(fā)工具

    提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

    技術(shù)支持

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

    新聞中心

    提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動態(tài)

    實(shí)戰(zhàn)十:兩位0

    更新時(shí)間: 2019-03-21
    閱讀量:650

    本例說明動態(tài)顯示二位數(shù)碼管的方法,其實(shí)動態(tài)顯示數(shù)碼管是利用人眼的暫留效應(yīng),即
    ;輪流讓需顯示的多個(gè)數(shù)碼管分別各顯示一段時(shí)間,有的朋友可能會問:這樣不是可以看到
    ;數(shù)碼管在閃爍?不,只要你的掃描速度夠快,人眼是看不到閃爍的,也不是非常快基本上小于
    ;10MS就可以了,
    ;程序中使用一個(gè)寄存器(DIGIT)作計(jì)數(shù)器,然后將計(jì)數(shù)結(jié)果輸出顯示。
    ;因?yàn)閿?shù)碼管只能顯示0-9的十進(jìn)制輸出,所以計(jì)數(shù)器DIGIT需轉(zhuǎn)換成十進(jìn)制再輸出,程序中將
    ;涉及到將十六進(jìn)制轉(zhuǎn)成十進(jìn)制BCD碼的方法。二進(jìn)制調(diào)整為BCD碼的方法是將二進(jìn)制碼左移8次
    ;每次移位后都檢查低四位LSD+3是否大于7,如果是則再加3,否則不加。接著再將高四位MSD作相同處理
    ;本程序的功能是:程序復(fù)位后,數(shù)碼管從0開始顯示數(shù)字,直到99,然而又從0到99循環(huán)顯示
    ;燒寫時(shí)應(yīng)注意:配置位已經(jīng)在程序中寫明,加載HEX文件時(shí)會自動加載,燒寫時(shí)不用再手動設(shè)置配置位。
    ;實(shí)驗(yàn)時(shí)請注意套件跳線選擇
    ;***********************************************************
     LIST P=16F84A,R=DEC     ;定義器件為16F84,默認(rèn)數(shù)制為十進(jìn)制
    ;-----------------------------------------------------------
      __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC 
                                                  ;沒有代碼保護(hù)
                                                  ;看門狗關(guān)閉
                                                  ;上電廷時(shí)器開啟
                                                  ;振蕩器模式為XT
    ;---------------------
    PC     EQU 02H           ;變量單元定義
    STATUS EQU 03H
    PORTA EQU 05H
    PORTB EQU 06H
    TRISA EQU 5H
    TRISB EQU 6H
    ;-----------------------STATUS
    RP0    EQU 5
    ;---------------------
    COUNTER EQU 10H
    COUNT1  EQU 11H
    COUNT2  EQU 12H
    TABADD  EQU 13H
    DISPBUF EQU 14H           ;顯示值暫存
    DISPBUF_H EQU 15H         ;顯示器高位
    DISPBUF_L EQU 16H         ;顯示器低位
    BUFFER    EQU 17H
    BUFFER1   EQU 18H
    SUM       EQU 19H
    DIGIT     EQU 1AH         ;0-99計(jì)數(shù)器
    ;--------------------
                   ORG 0000H
    MAIN
                   CLRF        PORTA
                   CLRF        PORTB   ;初始化IO口
         
                   BSF         STATUS,RP0 ;設(shè)置寄存器體1
                   MOVLW       00000000B  ;將所有IO口設(shè)置為輸出
                   MOVWF       TRISA 
                   MOVWF       TRISB  
                   BCF         STATUS,RP0  ;恢復(fù)寄存器體0
       
                    MOVLW       0FFH       ;先讓數(shù)碼管全部不顯示
                    MOVWF       PORTB
    	  	        CLRF	   	DIGIT      ;顯示計(jì)數(shù)器清0
                    CLRF        DISPBUF    ;清顯示值
    LOOP1	  	  
                    MOVLW       22
                    MOVWF       COUNTER    ;計(jì)數(shù)器0.2秒鐘加1   22*9.2MS=0.2s
    LOOP1_1
                    CALL        DISP       ;調(diào)用顯示子程序
                    DECFSZ      COUNTER,1   ;顯示0.2秒鐘
                    GOTO        LOOP1_1
    	  	INCF	   	DIGIT,1       ;計(jì)數(shù)器加1
    	  	MOVLW    	8
    	  	MOVWF    	COUNTER      	;循環(huán)左移計(jì)數(shù)器置8
    	  	CLRF	   	BUFFER          ;清除緩沖器
    	  	MOVF	   	DIGIT,W   
    	  	MOVWF    	BUFFER1         
    LOOP2	  	
                    RLF	        BUFFER1,1         ;二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼(以便顯示)
    	  	RLF	  	BUFFER,1
    	  	DECFSZ   	COUNTER,1          ;左移8次
    	  	GOTO	   	ADJUST             ;
    	  	MOVFW	   	BUFFER
    	  	MOVWF    	DISPBUF         ;是否有進(jìn)位(即已達(dá)100),如已計(jì)數(shù)到100則
    	  	SKPC                    	;從0開始再計(jì)數(shù)顯示(顯示00~99)
    	  	GOTO	   	LOOP1
    	  	GOTO	   	MAIN
    ADJUST	  	
                    MOVLW    	3               ;二進(jìn)制轉(zhuǎn)BCD的調(diào)整
    	  	ADDWF    	BUFFER,W    	;每次移位后都檢查低四位LSD+3是否大于7
    	  	MOVWF    	SUM             
    	  	BTFSC    	SUM,3
    	  	MOVWF    	BUFFER
    	  	MOVLW    	30H
    	  	ADDWF    	BUFFER,W        ;如果是則再加3,否則不加。
    	  	MOVWF    	SUM
    	  	BTFSC    	SUM,7
    	  	MOVWF    	BUFFER          ;接著再將高四位MSD作相同處理
    	  	GOTO	   	LOOP2
    ;- -----------------------------------------
    DELAY	  		                             ;顯示廷時(shí)常數(shù),廷時(shí)時(shí)間為3*255*6+6us+4us=4.6ms
                    MOVLW    	6
    	  	MOVWF    	COUNT1
    L2	  	
            	MOVLW    	255
    	  	MOVWF    	COUNT2
    L3	  		
                    DECFSZ   	COUNT2,1        
    	        GOTO	   	L3
    	  	DECFSZ   	COUNT1,1
    	  	GOTO	   	L2
    	        RETLW    	0
    ;-------------------- ----------------------------------
    DISP
                 SWAPF      DISPBUF,W         ;顯示值高低位交換,先處理高位
                 ANDLW      0FH               ;屏蔽掉高位
                 MOVWF      DISPBUF_H         ;存入寄存器
                 MOVFW      DISPBUF           ;顯示值低位處理
                 ANDLW      0FH               ;屏蔽掉高位
                 MOVWF      DISPBUF_L         ;存入寄存器
                 MOVLW      0FFH
                 MOVWF      PORTB             ;先熄滅數(shù)碼管以免閃爍
                 BSF        PORTA,1
                 BCF        PORTA,2           ;先顯示低位
                 MOVLW      TABLE
                 MOVWF      TABADD           ;將轉(zhuǎn)換表的首地址存入TABADD  
                 MOVFW      DISPBUF_L        ;計(jì)數(shù)值(W)與轉(zhuǎn)換表的起始地址相加
                 ADDWF      TABADD,W
                 CALL       CONVERT          ;存入W后調(diào)用轉(zhuǎn)換表子程序
                 MOVWF      PORTB            ;送RB口顯示
                 CALL       DELAY            ;廷時(shí)4。7MS
    
                 MOVLW      0FFH             ;同樣方法顯示高位
                 MOVWF      PORTB
                 BSF        PORTA,2
                 BCF        PORTA,1
                 MOVLW      TABLE
                 MOVWF      TABADD
                 MOVFW      DISPBUF_H
                 ADDWF      TABADD,W
                 CALL       CONVERT
                 MOVWF      PORTB
                 CALL       DELAY
                 RETLW      0
    ;-------------------------------------------------------
    CONVERT   
                MOVWF    	PC             	   ;將W寄存器內(nèi)的7段顯示碼地址放入PC 
    TABLE                                       ;PC執(zhí)行新地址指令, 跳到相對的地址執(zhí)行?              	
    	  RETLW    	081H 	   		;0  ;RETLW指令,將七段顯示碼存入W后返回
    	  RETLW    	0E7H 	   		;1                                
    	  RETLW    	092H 	   		;2
    	  RETLW    	0A2H 	   		;3
    	  RETLW    	0E4H 	   		;4
    	  RETLW    	0A8H 	   		;5
    	  RETLW    	088H 	   		;6
    	  RETLW    	0E3H 		   	;7
    	  RETLW    	080H 	   		;8
    	  RETLW    	0A0H 	   		;9
    ;----- -----------------------------------------------
         END


    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>