历史上的今天
今天是:2025年01月26日(星期日)
2018年01月26日 | HT48R50A的 LCD显示示例程序
2018-01-26 来源:eefocus
HT48R50A的 LCD显示示例程序

; ********************************************
; Function : LCD显示示例程序 *
; MICroProcessor : HT48R50A-1/28SKDIP-A *
; Author: www.picavr.com *
; Crystal : 4MHz *
; ********************************************
#INCLUDE HT48R50A-1.INC
LCD_DATA EQU PA
LCD_DATA_CTRL EQU PAC
LCD_CTRL EQU PC
LCD_CTRL_CTRL EQU PCC
E EQU 2
RW EQU 1
RS EQU 0
;------------------------------------------------------
DATA .SECTION AT 60H ’DATA’
DELAY_COUNTER_1 DB ? ;[60H]
DELAY_COUNTER_2 DB ? ;[61H]
DELAY_COUNTER_3 DB ? ;[62H]
DISPLAY_DATA DB ? ;[63H]
DISPLAY_COUNTER DB ? ;[64H]
;------------------------------------------------------
CODE .SECTION AT 00H ’CODE’
ORG 00H
JMP START
START:
CLR LCD_DATA
CLR LCD_DATA_CTRL
CLR LCD_CTRL
CLR LCD_CTRL_CTRL
CALL DELAY
CLR TBLP
MOV A,30H ;\
MOV LCD_DATA,A ; > STEP 0
CALL WRITE ;/ LCD RESET
CALL DELAY
MOV A,30H ;\
MOV LCD_DATA,A ; > STEP 0
CALL WRITE ;/ LCD RESET
CALL DELAY
MOV A,38H ;\
MOV LCD_DATA,A ; > STEP 1
CALL WRITE ;/ Function set
MOV A,06H ;\
MOV LCD_DATA,A ; > STEP 2
CALL WRITE ;/ Entry mode set
MOV A,01H ;\
MOV LCD_DATA,A ; > STEP 3
CALL WRITE ;/ Display clear
CALL DELAY
MOV A,0EH ;\
MOV LCD_DATA,A ; > STEP 4
CALL WRITE ;/ Display turn on/off
MOV A,83H ;\
MOV LCD_DATA,A ; > STEP 5
CALL WRITE ;/ DD RAM address set(First line)
SET LCD_CTRL.RS ; STEP 6
MOV A,0AH ; DD RAM data write
MOV DISPLAY_COUNTER,A
DISPLAY1:
TABRDL DISPLAY_DATA
MOV A,DISPLAY_DATA
MOV LCD_DATA,A
CALL WRITE
INC TBLP
SDZ DISPLAY_COUNTER
JMP DISPLAY1
CLR LCD_CTRL.RS ;\
MOV A,0C3H ; > STEP 7
MOV LCD_DATA,A ; | DD RAM address set(Second line)
CALL WRITE ;-
SET LCD_CTRL.RS ; SETP 8
MOV A,0AH ; DD RAM data write
MOV DISPLAY_COUNTER,A
DISPLAY2:
TABRDL DISPLAY_DATA
MOV A,DISPLAY_DATA
MOV LCD_DATA,A
CALL WRITE
INC TBLP
SDZ DISPLAY_COUNTER
JMP DISPLAY2
HALT
RET
;------------------------------------------------------
WRITE PROC
SET LCD_CTRL.E
CLR LCD_CTRL.E
MOV A,0FFH
MOV DELAY_COUNTER_1,A
WAIT:
SDZ DELAY_COUNTER_1
JMP WAIT
RET
WRITE ENDP
;------------------------------------------------------
DELAY PROC
MOV A,003H
MOV DELAY_COUNTER_1,A
MOV DELAY_COUNTER_2,A
MOV DELAY_COUNTER_3,A
WAITING:
SDZ DELAY_COUNTER_3
JMP WAITING
SDZ DELAY_COUNTER_2
JMP WAITING
SDZ DELAY_COUNTER_1
JMP WAITING
RET
DELAY ENDP
;------------------------------------------------------
ORG 0F00H
;[LCD.......]
;[Test OK !!]
DC 4CH,43H,44H,2EH,2EH,2EH,2EH,2EH,2EH,2EH
DC 54H,65H,73H,74H,20H,4FH,4BH,20H,21H,21H
;------------------------------------------------------
END
史海拾趣
|
整理下裁员/倒闭行业类别~有个快消招聘,找工作的来~ 奢侈品行业的情况有谁知道? 最近裁员倒闭的一片片,实在看的太多了,整理下下,有补充的可以跟贴,一并列举上。 也给要找的在找的将要找工作的人一点点参考。 申明: 本来的确打算一直做,因为都是大家提供的消息,但是似乎现在有些不同的“凡响”,我无意争什么,所以, ...… 查看全部问答> |
|
一个学长的感言:转载 从C语言到FPGA高手,我是怎么炼成的 这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为 国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚入行的朋友们一点点帮助。一转 ...… 查看全部问答> |
|
2440的板1gnandflash 32m sdram xip变大后,从13,531,423 字节到14,145,815 字节 原来的bootloader下载后断电不能自启动 Launch 0x30201000 后就不工作了。 是还需要改bootloader吗?… 查看全部问答> |
|
我在把linux的zImage文件和miniroot.cramfs烧进板子后,linux解压出错.错误信息如下: VIVI version 0.1.4 (root@localhost.localdomain) (gcc version 2.95.2 20000516 (re lease) [Rebel.com]) #0.1.4 五 5月 6 16:07:30 CST 2005 MMU table bas ...… 查看全部问答> |
|
目标板是基本最小系统+JTAG部分,所以很多部分都要自己动手来完成了! 数控电源人机界面 1、数码管+键盘; 2、LCD+键盘; 3、PC小工具; 预留PWM,ADC,COMP功能的外围脚 [ ...… 查看全部问答> |
|
今天把OK6410超频到了800M,但速度并没有显著提高,请教大神们。 琢磨了半天,把OK6410超频到了800M,主要是修改文件s3c6410.inc和soc_cfg.h OK6410运行正常,跑的还很欢实。 改动如下: Windows CE Kernel for ARM (Thumb Enabled) Built on Sep 25 2009& ...… 查看全部问答> |
|
[已售]20几天前刚买的stm32f103vc火牛开发板 转让 本帖最后由 ddllxxrr 于 2014-12-17 09:00 编辑 9月30日刚在淘宝网上买的,本来是买来做毕业设计的,可是毕业设计换了另一个题目,所以不需要再使用了。原价320 ,现在打9折,真的是全新的,刚买,没用过,光盘,配件,保修单什么的都是全的,可以 ...… 查看全部问答> |
|
有谁能把STM32库函数这三句TIM1_TimeBaseStructInit最基本的通俗解释一下 TIM1_TimeBaseInitTypeDef TIM1_TimeBaseStructure;TIM1_OCInitTypeDef TIM1_OCInitStructure;TIM1_BDTRInitTypeDef TIM1_BDTRInitStructure; 我知道是初始化操作 … 查看全部问答> |




