|

楼主 |
发表于 2011-3-20 22:18:25
|
显示全部楼层
原帖由 新手上道 于 2011-3-19 21:53 发表 
问前辈一个题外的问题,你的那块辉光显示屏,驱动电压是多少,我有一块功放上用的,但是不知道怎么用,还望前辈指点。
**********************************************************
脸红一下先
我可是单片机初学者,刚入了门的(算是入门了的吧)
这个显示屏就一个电源5V的,不知道你的是不是一样的,显示屏的板子上应该还有一个5V转高压的开关电源,这个就不用我们操心了^_^
有关使用方法可以参考LCD1602系列产品的PDF文件,还有www.pic16.com上有例程
我写的一段显示的程序供参考,汇编语言写的,应该比较好理解,功能上没问题,还谈不上完善,仅供参考吧
;------------------------------------------------------------------------------
INCLUDE <P16F73.INC>
LIST P=16F73
;------------------------------------------------------------------------------
; USER DEFINED REGISTER
CBLOCK 20H
TEMP250
TEMP4
TEMP_TEST
PORTB_TEMP
ADD
DAT
DAT_TEMP
LVOLUME
RVOLUME
LX10
LX1
RX10
RX1
CAL
OUTPUT_TEMP
ENDC
;****** PORTA REGISTER BIT DEFINITIONS ******************
MUT EQU 0
SCLK EQU 1
SDI EQU 2
CS EQU 3
ZCEN EQU 4
OUTC EQU 5
;****** PORTB REGISTER BIT DEFINITIONS ******************
;****** PORTC REGISTER BIT DEFINITIONS ******************
INC EQU 4
RS EQU 5
RW EQU 6
EN EQU 7
;****** LETTERS DEFINAATION ******************
AAA EQU 1
BBB EQU 2
CCC EQU 3
DDD EQU 4
EEE EQU 5
FFF EQU 6
GGG EQU 7
HHH EQU 8
III EQU 9
JJJ EQU 10
KKK EQU 11
LLL EQU 12
MMM EQU 13
NNN EQU 14
OOO EQU 15
PPP EQU 16
QQQ EQU 17
RRR EQU 18
SSS EQU 19
TTT EQU 20
UUU EQU 21
VVV EQU 22
WWW EQU 23
XXX EQU 24
YYY EQU 25
ZZZ EQU 26
;------------------------------------------------------------------------------
ORG 000H
GOTO MAIN
ORG 0008H
;------------------------------------------------------------------------------
MAIN
BSF STATUS,RP0
MOVLW 06H
MOVWF ADCON1
MOVLW 00H
MOVWF TRISB
MOVWF TRISA
MOVLW 0FH
MOVWF TRISC
BCF STATUS,RP0
CLRF PORTB
CLRF PORTC
CLRF PORTA
BSF PORTA,CS
BCF PORTA,SCLK
BSF PORTA,MUT
BSF PORTA,ZCEN
CALL DELAY20MS ;调用延时,刚上电LCD复位不一定有PIC快
;------------------------------------------------------------------------------
MOVLW 38H ;38H /8位总线 单行显示 5*7点阵
MOVWF PORTB ;8位2行5x7点阵
CALL ENABLE
;------------------------------------------------------------------------------
MOVLW 0CH
MOVWF PORTB ;显示器开、光标OFF、闪烁OFF
CALL ENABLE
;------------------------------------------------------------------------------
MOVLW 01H
MOVWF PORTB ;清屏
CALL ENABLE
;------------------------------------------------------------------------------
MOVLW 06H ;04H
MOVWF PORTB ;文字不动,无光标
CALL ENABLE
CALL DISPLAY_RESUME
;------------------------------------------------------------------------------
MOVLW 077H ;开机初始化音量
MOVWF LVOLUME
MOVWF RVOLUME
CALL DISPLAY_RESUME
CALL WORKSHOP
CALL NICELIFE
;------------------------------------------------------------------------------
*******************************************************************************
;----------------以上省略了一些与显示无关的子程序-----------------
;------------------------------------------------------------------------------
VOLUME_OUTPUT
BCF STATUS,RP0
MOVLW 0FH
MOVWF OUTPUT_TEMP
BCF PORTA,CS
BTFSC RVOLUME,7
GOTO SEND1
GOTO SEND0
OUTPUT_LOOP
MOVF OUTPUT_TEMP,F
BZ OUTPUT_OK
DECF OUTPUT_TEMP,F
BTFSC RVOLUME,7
GOTO SEND1
GOTO SEND0
OUTPUT_OK
CLRF OUTPUT_TEMP
BCF PORTA,SCLK
BCF PORTA,SDI
BSF PORTA,CS
RETURN
SEND1
BCF PORTA,SCLK
BSF PORTA,SDI
CALL DELAY100US
BSF PORTA,SCLK
CALL DELAY100US
SETC
RLF LVOLUME,F
RLF RVOLUME,F
GOTO OUTPUT_LOOP
SEND0
BCF PORTA,SCLK
BCF PORTA,SDI
CALL DELAY100US
BSF PORTA,SCLK
CALL DELAY100US
CLRC
RLF LVOLUME,F
RLF RVOLUME,F
GOTO OUTPUT_LOOP
;------------------------------------------------------------------------------
;4M 晶振 延时1ms
;------------------------------------------------------------------------------
DELAY1MS
CLRWDT ;子程序名,也是子程序入口地址
MOVLW 01H ;将外层循环参数值FFH经过W
MOVWF TEMP4 ;送入用作外循环变量的20H单元
LP0
MOVLW 0FFH ;将内层循环参数值FFH经过W
MOVWF TEMP250 ;送入用作内循环变量的21H单元
LP1
NOP
DECFSZ TEMP250,F ;变量21H内容递减,若为0跳跃
GOTO LP1 ;跳转到LP1处
DECFSZ TEMP4,F ;变量20H内容递减,若为0跳跃
GOTO LP0 ;跳跃到LP0处
RETURN ;返回主程序
;------------------------------------------------------------------------------
;4M 晶振 延时100Us
;------------------------------------------------------------------------------
DELAY100US
CLRWDT ;子程序名,也是子程序入口地址
MOVLW 01H ;将外层循环参数值FFH经过W
MOVWF TEMP4 ;送入用作外循环变量的20H单元
LP00
MOVLW 29H ;将内层循环参数值FFH经过W
MOVWF TEMP250 ;送入用作内循环变量的21H单元
LP01
NOP
DECFSZ TEMP250,F ;变量21H内容递减,若为0跳跃
GOTO LP01 ;跳转到LP1处
DECFSZ TEMP4,F ;变量20H内容递减,若为0跳跃
GOTO LP00 ;跳跃到LP0处
RETURN ;返回主程序
;------------------------------------------------------------------------------
;4M 晶振 延时8ms
;------------------------------------------------------------------------------
DELAY6MS
CLRWDT ;子程序名,也是子程序入口地址
MOVLW 0FFH ;将外层循环参数值FFH经过W
MOVWF TEMP4 ;送入用作外循环变量的20H单元
LP20
MOVLW 010H ;将内层循环参数值FFH经过W
MOVWF TEMP250 ;送入用作内循环变量的21H单元
LP30
CLRWDT
DECFSZ TEMP250,F ;变量21H内容递减,若为0跳跃
GOTO LP30 ;跳转到LP1处
DECFSZ TEMP4,F ;变量20H内容递减,若为0跳跃
GOTO LP20 ;跳跃到LP0处
RETURN ;返回主程序
;------------------------------------------------------------------------------
;4M 晶振 延时20ms
;------------------------------------------------------------------------------
DELAY20MS
CLRWDT ;子程序名,也是子程序入口地址
MOVLW 0FFH ;将外层循环参数值FFH经过W
MOVWF TEMP4 ;送入用作外循环变量的20H单元
LP2
MOVLW 0FFH ;将内层循环参数值FFH经过W
MOVWF TEMP250 ;送入用作内循环变量的21H单元
LP3
CLRWDT
DECFSZ TEMP250,F ;变量21H内容递减,若为0跳跃
GOTO LP3 ;跳转到LP1处
DECFSZ TEMP4,F ;变量20H内容递减,若为0跳跃
GOTO LP2 ;跳跃到LP0处
RETURN ;返回主程序
;------------------------------------------------------------------------------
LCDADD_SET ;LCD地址
;------------------------------------------------------------------------------
ROW1B0
MOVLW 80H
MOVWF ADD
CALL SETADD
RETURN
ROW1B1
MOVLW 81H
MOVWF ADD
CALL SETADD
RETURN
ROW1B2
MOVLW 82H
MOVWF ADD
CALL SETADD
RETURN
ROW1B3
MOVLW 83H
MOVWF ADD
CALL SETADD
RETURN
ROW1B4
MOVLW 84H
MOVWF ADD
CALL SETADD
RETURN
ROW1B5
MOVLW 85H
MOVWF ADD
CALL SETADD
RETURN
ROW1B6
MOVLW 86H
MOVWF ADD
CALL SETADD
RETURN
ROW1B7
MOVLW 87H
MOVWF ADD
CALL SETADD
RETURN
ROW1B8
MOVLW 88H
MOVWF ADD
CALL SETADD
RETURN
ROW1B9
MOVLW 89H
MOVWF ADD
CALL SETADD
RETURN
ROW1BA
MOVLW 8AH
MOVWF ADD
CALL SETADD
RETURN
ROW1BB
MOVLW 8BH
MOVWF ADD
CALL SETADD
RETURN
ROW1BC
MOVLW 8CH
MOVWF ADD
CALL SETADD
RETURN
ROW1BD
MOVLW 8DH
MOVWF ADD
CALL SETADD
RETURN
ROW1BE
MOVLW 8EH
MOVWF ADD
CALL SETADD
RETURN
ROW1BF
MOVLW 8FH
MOVWF ADD
CALL SETADD
RETURN
ROW2B0
MOVLW 0C0H
MOVWF ADD
CALL SETADD
RETURN
ROW2B1
MOVLW 0C1H
MOVWF ADD
CALL SETADD
RETURN
ROW2B2
MOVLW 0C2H
MOVWF ADD
CALL SETADD
RETURN
ROW2B3
MOVLW 0C3H
MOVWF ADD
CALL SETADD
RETURN
ROW2B4
MOVLW 0C4H
MOVWF ADD
CALL SETADD
RETURN
ROW2B5
MOVLW 0C5H
MOVWF ADD
CALL SETADD
RETURN
ROW2B6
MOVLW 0C6H
MOVWF ADD
CALL SETADD
RETURN
ROW2B7
MOVLW 0C7H
MOVWF ADD
CALL SETADD
RETURN
ROW2B8
MOVLW 0C8H
MOVWF ADD
CALL SETADD
RETURN
ROW2B9
MOVLW 0C9H
MOVWF ADD
CALL SETADD
RETURN
ROW2BA
MOVLW 0CAH
MOVWF ADD
CALL SETADD
RETURN
ROW2BB
MOVLW 0CBH
MOVWF ADD
CALL SETADD
RETURN
ROW2BC
MOVLW 0CCH
MOVWF ADD
CALL SETADD
RETURN
ROW2BD
MOVLW 0CDH
MOVWF ADD
CALL SETADD
RETURN
ROW2BE
MOVLW 0CEH
MOVWF ADD
CALL SETADD
RETURN
ROW2BF
MOVLW 0CFH
MOVWF ADD
CALL SETADD
RETURN
;------------------------------------------------------------------------------
;字母
;------------------------------------------------------------------------------
AA
MOVLW 41H
MOVWF DAT
CALL WRITE
RETURN
BB
MOVLW 42H
MOVWF DAT
CALL WRITE
RETURN
CC
MOVLW 43H
MOVWF DAT
CALL WRITE
RETURN
DD
MOVLW 44H
MOVWF DAT
CALL WRITE
RETURN
EE
MOVLW 45H
MOVWF DAT
CALL WRITE
RETURN
FF
MOVLW 46H
MOVWF DAT
CALL WRITE
RETURN
GG
MOVLW 47H
MOVWF DAT
CALL WRITE
RETURN
HH
MOVLW 48H
MOVWF DAT
CALL WRITE
RETURN
II
MOVLW 49H
MOVWF DAT
CALL WRITE
RETURN
JJ
MOVLW 4AH
MOVWF DAT
CALL WRITE
RETURN
KK
MOVLW 4BH
MOVWF DAT
CALL WRITE
RETURN
LL
MOVLW 4CH
MOVWF DAT
CALL WRITE
RETURN
MM
MOVLW 4DH
MOVWF DAT
CALL WRITE
RETURN
NN
MOVLW 4EH
MOVWF DAT
CALL WRITE
RETURN
OO
MOVLW 4FH
MOVWF DAT
CALL WRITE
RETURN
PP
MOVLW 50H
MOVWF DAT
CALL WRITE
RETURN
QQ
MOVLW 51H
MOVWF DAT
CALL WRITE
RETURN
RR
MOVLW 52H
MOVWF DAT
CALL WRITE
RETURN
SS
MOVLW 53H
MOVWF DAT
CALL WRITE
RETURN
TT
MOVLW 54H
MOVWF DAT
CALL WRITE
RETURN
UU
MOVLW 55H
MOVWF DAT
CALL WRITE
RETURN
VV
MOVLW 56H
MOVWF DAT
CALL WRITE
RETURN
WW
MOVLW 57H
MOVWF DAT
CALL WRITE
RETURN
XX
MOVLW 58H
MOVWF DAT
CALL WRITE
RETURN
YY
MOVLW 59H
MOVWF DAT
CALL WRITE
RETURN
ZZ
MOVLW 5AH
MOVWF DAT
CALL WRITE
RETURN
MAOHAO
MOVLW 3AH
MOVWF DAT
CALL WRITE
RETURN
BLANK
MOVLW 20H
MOVWF DAT
CALL WRITE
RETURN |
|