⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l7.dt

📁 ET44M210微处理器基本的LED灯各种显示
💻 DT
字号:
/*********************************************** 
利用计时器TCC实现扫描显示七划管。预置数256
使用按钮输入矩阵, PB0,PB1作为输出端接行线,
PB2,PB3作为输入端接列线
按下按钮S11~S22,输入4位二进制码,控制LED2显示1~F.用S0(接Portc的bit3)
按下能够使LED2复位。
程序使用PortA为七划管输出端口,PD7,PD6控制LED1,LED2供电
使对应LED点亮,用查表方法把BCD数字码转换为七划管的显示码。
************************************************/ 

INCLUDE     "ET44M210_REG.H" 

  
										 
ORG     0X0000         
		JMP    INIT
		
org		0x0018						;按键中断入口地址
		call	del   	  
		clr		0xa0
		BC		INTF,EINT0F
		nop
		RETI		

org		0x0020						;FRC溢出中断入口地址
		call	display
		mov		a,#0
		mov		HFRC,a
		mov		LFRCB,a		
		CALL	DEL		
		BC		INTF,FRCOF
		RETI
		
		

ORG     0X0100                	            
INIT:
		MOV    A,#0X00                 
		MOV    IOCA,A          		     ;设定PORTA为输出端口
		MOV    IOCD,A          	     ;设定PORTD为输出端口
		CLR     PORTA 
		COM		PORTA                  ;PORTA置1
		clr		portd 
		mov		a,#0b00001100
		mov		iocb,a
		MOV		PUCB,A					;设定提升电阻
		mov		a,#0xff
		mov		IOCC,A					;设定PortC为输入端口
		mov		PUCC,A				;设定PortC的提升电阻
		CLR		INTE				;清除所有中断功能
		CLR		INTF				;清除所有中断标志
		BS		INTE,EINT0E			;致能(开通)EINT0中断
		BC		EINTED,EINT0ED		;设定EINT0负跳变触发
							
		mov		HFRC,a
		mov		LFRCB,a				;设置FRC初值							
		MOV		A,#0X0
		MOV		FRCC,A				;选用内部时钟
		BS		PRIE,FRCE			;开通外围电路TCC
		BS		INTE,FRCOE			;致能TCC中断
		
		ENI							;开通总中断
		
		mov		A,#0
		mov		0xa0,a					;个位
		mov		0xa1,a					;十位
		call	display				 
;============================================================ 
START:                 
		mov 	a,#0b11111110
		mov		portb,a
		NOP
		NOP
		jbs		portb,2,$+4
		mov		a,#0x08
		or		0xa0,a
		jbs		portb,3,$+4
		mov		a,#0x04
		or		0xa0,a
		mov 	a,#0b11111101
		mov		portb,a
		NOP
		NOP
		jbs		portb,2,$+4
		mov		a,#0x02
		or		0xa0,a
		jbs		portb,3,$+4
		mov		a,#1
		or		0xa0,a
		jmp		start
		
		
		
display:
		clr		portd
		com		portd
		inca	0xa0				;R+1--A	
		CALL    table
		mov		porta,a				;返回个位的显示码
		mov		a,#0B10111111
		mov		portd,a
		call	del
		clr		portd
		com		portd

		inca	0xa1
		CALL    table
		mov		porta,a				;返回十位的显示码
		mov		a,#0B01111111
		mov		portd,a
		call	del
		clr		portd
		com		portd
		ret
	      
                                  
		
TABLE:  TBL 
                    RETL      0B11000000     ;0 
                    RETL      0B11111001     ;1 
                    RETL      0B10100100     ;2 
                    RETL      0B10110000     ;3 
                    RETL      0B10011001     ;4 
                    RETL      0B10010010     ;5 
                    RETL      0B10000010     ;6
                    RETL      0B11111000     ;7 
                    RETL      0B10000000     ;8 
                    RETL      0B10010000     ;9 
                    RETL      0B10001000     ;A 
                    RETL      0B10000011     ;b 
                    RETL      0B11000110     ;C
                    RETL      0B10100001     ;d 
                    RETL      0B10000110     ;E 
                    RETL      0B10001110     ;F 

		
;DEL子程序
DEL:                 
		MOV     A,#3      		;依次给3个计数器置初值                                 
		MOV     0X40,A                      
		
;============================================================ 
DEL_LOOP1:                 
		MOV     A,#1                                           
		MOV     0X41,A                          
		
;============================================================ 

DEL_LOOP2:                 
		MOV     A,#0                                           
		MOV     0X42,A                          
		
;============================================================ 

DEL_LOOP3:                 
		DJZ     0X42,$+3                   ;寄存器0X42减1,若为0,PC+3运行

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -