ht单片机控制加减,si HT

该程序展示了使用ASM语言和HT66F3185微控制器如何控制七段显示器进行0-9的数字显示。程序中包含了中断服务子程序,用于更新显示内容,并且有延迟函数以实现稳定的显示效果。此外,还定义了按键中断处理,允许加减操作。
摘要由CSDN通过智能技术生成

;PROGRAM:4-9.ASM (4-9.PJT)2009.1029 ??0-99的??方式 加减按键

;FUNCTION:DISPLAY 0-9 FOR 7 SEG USING CTM CONTROLBy Steven

#INCLUDEHT66F3185.INC

;========================================================================================

MY_DATA.SECTION'DATA';==DATA SECTION==

DEL1 DB ? ;DELAY LOOP COUNT 1

DEL2 DB ? ;DELAY LOOP COUNT 2

DEL3 DB ? ;DELAY LOOP COUNT 3

COUNTDB?

COUNT1DB?

TBLP2 DB ?

TBLP1 DB ?

;========================================================================================

;*************weizhiling**************

SEG_PORTEQU PC

SEG_PORTCEQU PCC

PB_SW0EQUPB.0;DEFINE PUSH BOTTON PORT

PB_SW0CEQUPBC.0;DEFINE PUSH BOTTON PORT CON REG.

PB_SW0PUEQUPBPU.0

PB_SW1EQUPB.1;DEFINE PUSH BOTTON PORT

PB_SW1CEQUPBC.1;DEFINE PUSH BOTTON PORT CON REG.

PB_SW1PUEQUPBPU.1

;*********************************************************************************

MY_CODE.SECTIONAT 0 'CODE';==PROGRAM SECTION==

ORG00H;HT-66FX0 RESET VECTOR

JMP INIT

ORG004H;HT66FX0 EXT. INTERRUPT VECTOR

JMPINT0

ORG024H

JMP INT1

INIT:

CLR PCC;SEG_PORTC;CONFIG SEG_PORT AS OUTPUT MODEPCC output PAC

CLR PAC4

CLR PAC5

SET PB0

SET PB1

; SETPBPU.0;ENABLE PA3 PULL-UP;;;;;;;;

;SETPBC.0;CONFIG PA.3(INT0B) AS INPUT

;SETPBPU.1;ENABLE PA3 PULL-UP;;;;;;;;

;SETPBC.1;CONFIG PA.3(INT0B) AS IN

MOVA,10101000B

MOVWDTC,A

CLRFSS

MOVA,00001010B;SELECT INT0 FALLING EDGE TRIGGER

MOVINTEG,A

SETINT0E;ENABLE EXTERNAL INTERRUPT 0

CLRINT0F;ENABLE EXTERNAL INTERRUPT 0

SETINT1E;ENABLE EXTERNAL INTERRUPT 0

CLRINT1F

;ENABLE EXTERNAL INTERRUPT 0

SETEMI;ENABLE GLOBAL INTERRUPT

MAIN:

MOVA, TAB_7_SEG

MOVTBLP1,A;INITIAL POINTER START ADDRESS

;SET DTA COUNT OF TAB_7_SEG

MOVA, TAB_7_SEG

MOVTBLP2,A;INITIAL POINTER START ADDRESS

MOVA,10

MOVCOUNT,A

MOVA,10

MOVCOUNT1,A;SET DTA COUNT OF TAB_7_SEG

LOOP:

SET PA.4

MOV A,TBLP1

MOV TBLP,A

TABRDLSEG_PORT;READ TABLE AND SEND TO SEG_PORT 段?值?PC

MOV A,3

CALLDELAY;DELAY DEL1*4ms

CLR PA.4

SET PA.5

MOV A,TBLP2

MOV TBLP,A

TABRDLSEG_PORT;READ TABLE AND SEND TO SEG_PORT 段?值?PC

MOV A,3

CALLDELAY;DELAY DEL1*4ms

CLR PA.5

;COUNT DOWN BY

JMPLOOP;JUMP IF NOT TABLE END

;========================================================================================

;Delay about DEL1*4mS @fH=4MHz

;========================================================================================

DELAYPROC

MOVDEL1,A;SET DEL1 COUNTER

DEL_1: MOVA,10

MOVDEL2,A;SET DEL2 COUNTER

DEL_2:MOVA,110

MOVDEL3,A;SET DEL3 COUNTER

DEL_3:SDZDEL3 ;DEL3 DOWN COUNT

JMPDEL_3

SDZDEL2 ;DEL2 DOWN COUNT

JMPDEL_2

SDZDEL1;DEL1 DOWN COUNT

JMPDEL_1

RET

DELAYENDP

;**************zhongduanhanshu***************

INT0:

;CLRSTMAF

CLRINT0F

INCTBLP1;UPDATE TABLE POINTER

SDZCOUNT;COUNT DOWN BY 1

RETI

MOVA,10

MOVCOUNT,A

MOV A,0

MOV TBLP1,A

INCTBLP2;UPDATE TABLE POINTER

SDZCOUNT1;COUNT DOWN BY 1

RETI

MOVA,10

MOVCOUNT1,A

MOV A,0

MOV TBLP2,A

RETI

INT1:

;CLRSTMAF

CLRINT1F

INCTBLP1;UPDATE TABLE POINTER

SDZCOUNT;COUNT DOWN BY 1

RETI

MOVA,10

MOVCOUNT,A

MOV A,0

MOV TBLP1,A

INCTBLP2;UPDATE TABLE POINTER

SDZCOUNT1;COUNT DOWN BY 1

RETI

MOVA,10

MOVCOUNT1,A

MOV A,0

MOV TBLP2,A

RETI

ORGLASTPAGE;LASTPAGE

TAB_7_SEG:

DC 0a0h

DC 0f9h

DC0c4h

DC0d0h

DC099h;7 SEG CODE FOR COMMOM CATHOD LED

DC092h

DC082h

DC0f8h

DC080h

DC098h;CONNECT BIT 0-7 FOR SEGMENT A-H

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值