Download presentation
Presentation is loading. Please wait.
1
1 Timer
2
2 16 位元上數計數器 Up Counter 以 TMRC 暫存器設定 TMRC (TM1 TM0 – TON TE PSC2 PSC1 PSC0) 三種工作模式 (TM1 TM0 控制 ) 溢位時 TF(INT0.5) 位元設為 1
3
3 TMRC 暫存器 TM1 TM0 - TON TE PSC2 PSC1 PSC0 Bit 7 6 5 4 3 2 1 0 Bit 7 6 0 0 未使用 0 1 計數模式 1 0 計時模式 1 1 脈衝寬度量測模式
4
4 Bit 5 未使用 Bit 4 TON 計數 / 計時控制位元 1 開始計數 0 停止計數 Bit 3 TE 計數 / 計時準位控制位元 1 計數時脈由 LOW -> HIGH 時加一 0 計數時脈由 HIGH -> LOW 時加一
5
5 Bit 2 0 (PSC2-PSC0) TMR 計數倍率位元 000F int =f sys 001F int =f sys /2 010F int =f sys /4 011F int =f sys /8 100F int =f sys /16 101F int =f sys /32 110F int =f sys /64 111F int =f sys /128
6
6 ;PROGRAM : 4-9.ASM (4-9.PRJ) ;FUNCTION: DISPLAY 0~9 FOR 7 SEG USING TMR CONTROL #INCLUDEHT46R23.INC.CHIPHT46R23 ;-------------------------------------------------------------------- MY_DATA.SECTION'DATA' ;== DATA SECTION == DEL1DB? COUNTDB? ;-------------------------------------------------------------------- SEG_PORTEQUPA;DEFINE 7-SEG PORT SEG_PORTCEQUPAC;DEFINE 7-SEG PORT ; CONTROL REG.
7
7 MY_CODE.SECTIONAT 0'CODE' ;== PROGRAM SECTION == ORG 00H ;HT-46RXX RESET VECTOR CLR SEG_PORTC;CONFIG SEG_PORT AS OUTPUT ;MODE MOVA,10000010B;CONFIG TMR 0 IN MODE 2(TIMER ;MODE) MOVTMRC,A ;fINT=fSYS/4 (4MHz/4) MOVA,LOW (65536-50000) MOVTMRL,A;SET TMR INITIAL VALUE ;LO-BYTE MOVA,HIGH (65536-50000) MOVTMRH,A;SET TMR INITIAL VALUE ; HI-BYTE
8
8 MAIN: MOVA,TAB_7_SEG MOVTBLP,A ;INITIAL POINTER START ADDRESS MOVA,10 MOVCOUNT,A;SET DATA COUNT OF TAB_7_SEG LOOP: TABRDLSEG_PORT ;READ TABLE AND SEND TO SEG_PORT CALL DELAY;DELAY TBLH*10mS INCTBLP;UPDATE TABLE POINTER SDZCOUNT;COUNT DOWN BY 1 JMPLOOP;JUMP IF NOT TABLE END JMPMAIN;RESTART
9
9 ;******************************************************************** ; Delay about DEL1*(TMR)*1uS IF PSC=010 ;******************************************************************** DELAY PROC MOVA,20 MOVDEL1,A;SET OUTER COUNTER SETTON;START 50mS TIMER COUNTING DEL_1:SNZTF;TIMER OVERFLOW? JMPDEL_1;NO, WAIT! CLRTF;YES, 50mS IS OVER. SDZDEL1;IS 1 SEC OVER? JMPDEL_1;NO. CLRTON;YES, STOP TMR. RET
10
10 DELAYENDP ORGLASTPAGE TAB_7_SEG: DC 00111111B ;7 SEG CODE FOR COMMOM CATHOD LED DC00000110B;CONNECT BIT 0~7 FOR SEGMENT A~H DC01011011B;LOW-BYTE FOR 7 SEG DISPLAY CODE DC 01001111B DC 01100110B DC01101101B DC 01111101B DC 00000111B DC 01111111B DC 01100111B END
11
11 延遲時間 =f int -1 x DEL1 (20) x 計數至溢位次數 F sys =4 MHz f int =F sys /4 延遲時間 =1us x 20 x 50000 =1 sec
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.