重温Protues软件 8051 LCD驱动,附安装经验分享
来源:互联网 发布:医疗器械软件 编辑:程序博客网 时间:2024/06/03 20:44
感谢百度的热心人士分享https://jingyan.baidu.com/article/6c67b1d69c79ae2787bb1ed0.html 此链接附带Protues 软件下载地址(学基础可以打上汉化补丁)
下面是软件自带sample的源程序。很多开发工具都会自带SAMPLE,初学者千万别错过哦!
; LCD Display Driver Demo.
; Timing code assumes 1.2MHz Clock
;LCD Registers addresses
LCD_CMD_WR equ 0
LCD_DATA_WR equ 1
LCD_BUSY_RD equ 2
LCD_DATA_RD equ 3
;LCD Commands
LCD_CLS equ 1
LCD_HOME equ 2
LCD_SETMODE equ 4
LCD_SETVISIBLE equ 8
LCD_SHIFT equ 16
LCD_SETFUNCTION equ 32
LCD_SETCGADDR equ 64
LCD_SETDDADDR equ 128
;Reset vector
org 0000h
jmp start
;Start of the program
org 0100h
string1a:db ' !! A M A Z I N G !! '
db 0
string1b:db '!! A M A Z I N G !! '
db 0
string2:db ' A virtual LM032L... '
db 0
string3:db ' driven by a virtual '
db 0
string4:db ' 8051 processor!'
db 0
start: mov A,#038h
call wrcmd
loop: mov A,#LCD_SETVISIBLE+6 ;Make the display & blink visible:
call wrcmd
mov R7,#2
loop2:
mov DPTR,#string1a
call wrstr
mov DPTR,#200
call wtms
mov A,#LCD_CLS ;Clear screen
call wrcmd
mov DPTR,#string1b
call wrstr
mov DPTR,#200
call wtms
mov A,#LCD_CLS ;Clear screen
call wrcmd
djnz R7,loop2
mov DPTR,#string1a
call wrstr
mov DPTR,#400
call wtms
mov A,#LCD_SETDDADDR+64
call wrcmd
mov DPTR,#string2
call wrslow
mov DPTR,#200
call wtms
mov A,#LCD_CLS ;Clear screen
call wrcmd
mov DPTR,#string3
call wrslow
mov A,#LCD_SETDDADDR+64
call wrcmd
mov DPTR,#string4
call wrslow
mov A,#LCD_SETVISIBLE+7 ;Show the blink cursor as well.
call wrcmd
mov DPTR,#2000
call wtms
mov A,#LCD_CLS ;Clear screen
call wrcmd
jmp loop
;Sub routine to write null terminated string at DPTR in program ram.
wrstr: mov R0,#LCD_DATA_WR
wrstr1: clr A
movc A,@A+DPTR
jz wrstr2
movx @R0,A
call wtbusy
inc DPTR
push DPL
push DPH
pop DPH
pop DPL
jmp wrstr1
wrstr2: ret
;Sub routine to write null terminated string at DPTR in program ram. Slowly
wrslow: mov R0,#LCD_DATA_WR
wrslw1: clr A
movc A,@A+DPTR
jz wrslw2
movx @R0,A
call wtbusy
inc DPTR
push DPL
push DPH
mov DPTR,#100
call wtms
pop DPH
pop DPL
jmp wrslw1
wrslw2: ret
;Sub routine to write command:
wrcmd: mov R0,#LCD_CMD_WR
movx @R0,A
jmp wtbusy
;Sub routine to write character:
wrchar: mov R0,#LCD_DATA_WR
movx @R0,A
;Subroutine to wait for busy clear
wtbusy: mov R1,#LCD_BUSY_RD
movx A,@r1
jb ACC.7,wtbusy
ret
;Wait for number of seconds in A
wtsec: push ACC
call wtms
pop ACC
dec A
jnz wtsec
ret
;Wait for number of milliseconds in DPTR
wtms: xrl DPL,#0FFh ;Can't do DEC DPTR, so do the loop by forming 2's complement
xrl DPH,#0FFh ;and incrementing instead.
inc DPTR
wtms1: mov TL0,#09Ch ;100 ticks before overflow = 1ms at 1.2MHz Clock
mov TH0,#0FFh
mov TMOD,#1 ;Timer 0 mode 1
setb TCON.4 ;Timer 0 runs
wtms2: jnb TCON.5,wtms2
clr TCON.4 ;Timer 0 stops
clr TCON.5
inc DPTR
mov A,DPL
orl A,DPH
jnz wtms1
ret
END
- 重温Protues软件 8051 LCD驱动,附安装经验分享
- protues 软件介绍
- 软件测试经验分享
- 软件设计师经验分享
- STM8L052C6 低功耗+LCD显示 经验分享
- app软件测试经验分享
- 软件设计师考试经验分享
- protues
- CentOS软件安装经验
- 修改LCD和触摸屏驱动的一些经验
- 修改LCD和触摸屏驱动的一些经验
- 软件分享 usb device驱动
- 软件分享 usb device驱动
- Protues 7.6仿真430 + LCD 简易贪食蛇
- Protues LM4229(LCD 240X128) 文本模式显示
- 硬盘安装Ubuntu经验分享
- Win7安装Oracle10g经验分享
- Win7安装Oracle10g经验分享
- ajax解析json数据时,date显示为秒的形式(1511352532000)
- 385. Mini Parser
- 机器学习-python利用SVD编写推荐引擎
- 生成器,迭代器
- 杭code 计算分子量
- 重温Protues软件 8051 LCD驱动,附安装经验分享
- GetComponentsInChildren(); 使用方法(转)
- 第18章参数
- LC Technology Filerecovery 2016 Enterprise(数据恢复软件)官方中文注册版V5.5.9.7下载|数据恢复软件免费版
- 第11章
- 【最新、最全】GitLab创建项目及使用说明
- 统计学习方法学习笔记(第一章)
- screen lock 无密码登录
- Java之多线程