;-----------------------------------------------------------------------; ; MY6.ASM 在PORTA的0,1,2,3输入BCD码,翻译成十六进制后从PORTB输出 ; ; 到数码管(PORTA的0,1,2,3接到8870的输出端,把其接收的DTMF转到MCU显示); ; 硬件连接: ; ; 把PORTB一一对应接到7SEG上 ; ; 把PORTA的1,2,3,4号口的跳线接到8870的11,12,13,14脚上 ; ;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------; ; 作者:孙继利 BG2CM 2002年1月5日 ; ;-----------------------------------------------------------------------; LIST P=16F84 ; 告诉编译程序使用何种PIC单片机 INCLUDE "p16f84.inc" ; 定义了特殊寄存器等内容的头文件 ERRORLEVEL -224 __CONFIG _PWRTE_ON & _XT_OSC & _WDT_OFF ; 配置字 org 0 movlw B'11111111' ;PORTA为输入 tris PORTA movlw B'00000000' ;PORTB为输出 tris PORTB movlw .0 again movfw PORTA ;读入PORTA的电平状态 andlw 0fH ;屏蔽高四位 call table ;查表 movwf PORTB ;把查表结果输出到PORTB(显示) goto again table addwf PCL,f ;二进制到七段数码显示的查表程序 ;由于8870输出的不是标准的二进制,0,a,b,c,d,e,f更改后才能与对应的*,#,ABCD相对应。 retlw B'01011110' ;0,改成原来的d, retlw B'00000110' ;1 retlw B'01011011' ;2 retlw B'01001111' ;3 retlw B'01100110' ;4 retlw B'01101101' ;5 retlw B'01111101' ;6 retlw B'00000111' ;7 retlw B'01111111' ;8 retlw B'01101111' ;9 retlw B'00111111' ;A,改成原来的0, retlw B'01111001' ;b,改成原来的E, retlw B'01110001' ;c,改成原来的F, retlw B'01110111' ;d,改成原来的a, retlw B'01111100' ;E,改成原来的b,出来E做* retlw B'00111001' ;F,改成原来的c,出来F做# end