嵌入式 > 技术百科 > 详情

松翰单片机1602

发布时间:2020-10-16 发布时间:
|
 CHIP SN8F27E65

//{{SONIX_CODE_OPTION
 .Code_Option WDT_CLK  Flosc/4
 .Code_Option Reset_Pin P04
 .Code_Option LVD  LVD_Max  ; 3.3V Reset
 .Code_Option Watch_Dog Disable  ;关闭看门狗
 .Code_Option Low_Fcpu Flosc/1
 .Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator
 .Code_Option High_Fcpu Fhosc/1
 .Code_Option Security Enable
 .Code_Option Noise_Filter Enable
//}}SONIX_CODE_OPTION
 DATA EQU P4 ;数据口
 DATAM EQU P4M
 
 RS EQU P0.0 ;数据/命令
 RSM EQU P0M.0
 
 RW EQU P0.1 ;读/写
 RWM EQU P0M.1
 E EQU P0.2 ;控制使能
 EM EQU P0M.2

 ORG 0000H
 JMP A1
 ORG 0015H
A1: MOV A,#30H;显示内容
 MOV 41H,A
 MOV A,#31H
 MOV 42H,A
 MOV A,#32H
 MOV 43H,A
 MOV A,#33H
 MOV 44H,A
 
 MOV A,#01H;清屏
 MOV 30H,A
 CALL ZL01
 MOV A,#250
 MOV 31H,A
A2: 
 MOV A,#38H;设置显示模式5*7点
 MOV 30H,A
 CALL ZL01
 DECMS 31H
 JMP A2
 
 MOV A,#0CH;开显示关光标
 MOV 30H,A
 CALL ZL01
 
 CALL XS01;显示子程序
 
 JMP $
;*************************************************
;显示子程序
;*************************************************  
XS01: MOV A,#38H;设置显示模式
 MOV 30H,A 
 CALL ZL01
 MOV A,#0CH;开显示
 MOV 30H,A
 CALL ZL01
 MOV A,#0C8H;显示起始位置
 MOV 30H,A
 CALL ZL01
 
 B0MOV H,#0 ; 清“H”以寻址RAM bank 0。
 B0MOV L,#41H ; 设定寄存器地址。
XS02: MOV A,@HL;显示内容处理
 MOV 30H,A
 CALL SJ01
 INCMS L;显示下一数据
 MOV A,L
 CMPRS A,#45H;是否已显示完成
 JMP XS02
 RET
;*****************************************
;写命令子程序
;*****************************************    
ZL01: MOV A,#0FFH;设置数据口为输出状态
 MOV DATAM,A
 MOV DATA,A;输出高电平
 
 B0BSET RSM;设置为数据模式
 B0BCLR RS
 
 B0BSET RWM;设置为读模式
 B0BSET RW
 
 B0BSET EM;允许操作
 B0BSET E
ZL02:
 B0BCLR P4M.7;忙检
 B0BTS0 P4.7;P4.7=1忙,P4.7=0空闲
 JMP ZL02
 B0BSET EM;关闭使能
 B0BCLR E
 
 B0BSET RSM;设置为命令模式
 B0BCLR RS
 
 B0BSET RWM;设置为写模式
 B0BCLR RW
 
 MOV A,#0FFH;将要写的内容输出到数据口
 MOV DATAM,A
 MOV A,30H
 MOV DATA,A
 
 B0BSET EM;允许使能操作
 B0BSET E
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 B0BSET EM;关闭使能
 B0BCLR E
 
 RET
;*****************************************
;写数据子程序
;*****************************************
SJ01: MOV A,#0FFH
 MOV DATAM,A
 MOV DATA,A
 
 B0BSET RSM
 B0BCLR RS
 
 B0BSET RWM
 B0BSET RW
 
 B0BSET EM
 B0BSET E
SJ02:
 B0BCLR P4M.7
 B0BTS0 P4.7
 JMP SJ02
 
 B0BSET EM
 B0BCLR E
 
 B0BSET RSM;设置为数据模式
 B0BSET RS
 
 B0BSET RWM
 B0BCLR RW
 MOV A,#0FFH
 MOV DATAM,A
 MOV A,30H
 MOV DATA,A
 
 B0BSET EM
 B0BSET E
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 B0BSET EM
 B0BCLR E
 
 RET
 ENDP




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用于MAX7456随屏显示器SPI