历史上的今天
返回首页

历史上的今天

今天是: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 


推荐阅读

史海拾趣

Highland Electronics Co Ltd公司的发展小趣事

High Tech Chips Inc成立之初,便专注于研发高性能的AI芯片。在公司创始人李博士的带领下,团队突破了传统芯片设计的瓶颈,开发出了一款具有超低功耗和高效能比的AI加速器芯片。这款芯片迅速获得了市场的认可,被广泛应用于智能手机、智能家居和自动驾驶等领域。随着技术的不断迭代和产品的持续优化,High Tech Chips Inc逐渐在AI芯片市场占据了一席之地,并成为了行业内的技术领先者。

Advanced Pressure Technology公司的发展小趣事

APT公司成立于1987年,创始人凭借对气体输送技术的深刻理解和前瞻眼光,在加利福尼亚州圣拉斐尔创立了这家公司。初始阶段,公司专注于制造坚固、可靠的气体输送产品,尤其是压力调节器和阀门。尽管市场充满竞争,但APT公司凭借出色的产品性能和可靠的品质,在1988年成功推出了一小部分产品,并迅速获得了市场的认可。销售额的迅速增长和产品供应的紧张,都预示着APT公司正步入快速发展的轨道。

汇顶科技(GOODiX)公司的发展小趣事

APT公司成立于1987年,创始人凭借对气体输送技术的深刻理解和前瞻眼光,在加利福尼亚州圣拉斐尔创立了这家公司。初始阶段,公司专注于制造坚固、可靠的气体输送产品,尤其是压力调节器和阀门。尽管市场充满竞争,但APT公司凭借出色的产品性能和可靠的品质,在1988年成功推出了一小部分产品,并迅速获得了市场的认可。销售额的迅速增长和产品供应的紧张,都预示着APT公司正步入快速发展的轨道。

CTS公司的发展小趣事

进入20世纪90年代,CTS公司迎来了重要的技术突破。随着Motorola通讯零件事业部的加入,CTS在无线通讯领域取得了显著进展,成为该领域的领先者。此外,CTS还积极投入研发,不断推出创新产品,进一步巩固了其在电子行业的地位。

Gould Ami公司的发展小趣事
注意用电安全,确保电源线路连接牢固、电压稳定,避免发生触电或火灾等事故。
CMOS Sensor Inc公司的发展小趣事

为了保持技术领先地位,CMOS Sensor Inc公司高度重视研发投入。公司拥有一支专业的研发团队,致力于新技术、新产品的开发。同时,公司还与多所高校和研究机构建立了紧密的合作关系,共同推动光电图像采集技术的发展。这些举措使得CMOS Sensor Inc在行业中保持了持续的创新能力。

问答坊 | AI 解惑

整理下裁员/倒闭行业类别~有个快消招聘,找工作的来~ 奢侈品行业的情况有谁知道?

最近裁员倒闭的一片片,实在看的太多了,整理下下,有补充的可以跟贴,一并列举上。 也给要找的在找的将要找工作的人一点点参考。 申明: 本来的确打算一直做,因为都是大家提供的消息,但是似乎现在有些不同的“凡响”,我无意争什么,所以, ...…

查看全部问答>

一个学长的感言:转载 从C语言到FPGA高手,我是怎么炼成的

这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为 国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚入行的朋友们一点点帮助。一转 ...…

查看全部问答>

xip变大后下载问题

2440的板1gnandflash 32m sdram xip变大后,从13,531,423 字节到14,145,815 字节 原来的bootloader下载后断电不能自启动 Launch 0x30201000 后就不工作了。 是还需要改bootloader吗?…

查看全部问答>

在移植linux是遇到的问题.大家帮忙看看.

我在把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 ...…

查看全部问答>

汽车电子整车方案

在前面的一个月里,我们一起温习了2008年~2009年上海汽车电子论坛有关技术方面的演讲资料,希望各位网友有所收获。最后一期汽车电子论坛精彩回顾 将与你分享有关零件供应商的演讲资料,了解他们的核心市场及技术优势,这对于研发和采购工程师们来 ...…

查看全部问答>

关于多驱动源的问题

一个FPGA初学者容易出差错的地方:多驱动源的问题 例如: 一个主模块M,这个主模块包含3个子模块,M1,M2,M3。Module M(clk, rst, din, cs, we,dout)   input             clk, rst;  ...…

查看全部问答>

TI LM3S811 DIY之【数控电源】讨论

目标板是基本最小系统+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; 我知道是初始化操作  …

查看全部问答>