历史上的今天
返回首页

历史上的今天

今天是:2024年10月29日(星期二)

正在发生

2019年10月29日 | (C与汇编语言)ARM9之LPC2132控制LCD1602显示字符串

2019-10-29 来源:51hei

GPADIR             EQU            0xE0028008


GPASET             EQU            0xE0028004

GPACLR             EQU            0xE002800C

                        EXPORT xmain

                        AREA    Init,CODE,READONLY

                        ENTRY

xmain

                        ldr r0,=GPADIR

                        ldr r1,=0x3ff

                        str r1,[r0]    ;A=out

;===========init1602================= 

                        mov r4,#0x38

                        BL  w1602C

                        mov r4,#0x06

                        BL  w1602C

                        mov r4,#0x0c

                        BL  w1602C

                        mov r4,#0x01

                        BL  w1602C

;============main=================

loop                    mov r4,#0x80

                          bl w1602C


                          ldr r9,=dat

                          mov r6,#0

loop1                 ldr r4,[r9,r6]

                          bl w1602D

                          ADD r6,r6,#1

                          BL delay

                          cmp r6,#15


                          bne loop1


                          mov r4,#0xc0

                          bl w1602C


                          ldr r9,=ttt

                          mov r6,#0

loop2                  ldr r4,[r9,r6]

                          bl w1602D

                          ADD r6,r6,#1

                          BL delay

                          cmp r6,#15


                          bne loop2

                          B loop

;=================================== 

w1602C           ldr r1,=0x3ff

                        ldr r0,=GPACLR

                        str r1,[r0]

                        mov r1,#0

                        ORR r1,r1,r4

                        ldr r0,=GPASET

                        str r1,[r0]

                        nop

                        nop

                        orr r1,r1,#0x200

                        str r1,[r0]

                        nop

                        nop

                        ldr r0,=GPACLR

                        mov r1,#0x200

                        str r1,[r0]

                        mov pc,lr

;====================================== 

w1602D            ldr r1,=0x3ff

                        ldr r0,=GPACLR

                        str r1,[r0]

                        mov r1,#0x100

                        ORR r1,r1,r4

                        ldr r0,=GPASET

                        str r1,[r0]

                        nop

                        nop

                        orr r1,r1,#0x200

                        str r1,[r0]

                        nop

                        nop

                        ldr r0,=GPACLR

                        mov r1,#0x200

                        str r1,[r0]

                        mov pc,lr

;=================================== 

delay                   mov r5,#0xff00

delay1                  sub r5,r5,#1

                          cmp r5,#0

                          bne delay1

                          mov pc,lr

;====================================

dat                    DCB " China  Dianzi"

ttt                      DCB "  Keji Xueyuan"

                        end

 

#define rGPACON     (*(volatile unsigned *)0xE0028008)        //Port A in/out0x56000000

#define rGPADAT1    (*(volatile unsigned *)0xE0028004)        //Port A =10x56000004

#define rGPADAT0    (*(volatile unsigned *)0xE002800C)        //Port A =0   0x56000008

const unsigned char dd[]="Shanxi Dianzi";

const unsigned char tt[]="gongchengxueyuan";

void xmain()

{

        unsigned int i,k;


        rGPACON  = 0x7ff;  //A11-A0=out

        

                rGPADAT1 |= 0x38;

                k=4;

                while(k--);

                rGPADAT1 |= 0x100;

                k=7;

                while(k--);

                rGPADAT0 |= 0x100;

                k=10;

                while(k--);

                rGPADAT0 |= 0x7ff;

                //============

                rGPADAT1 |= 0x06;

                k=4;

                while(k--);

                rGPADAT1 |= 0x100;

                k=7;

                while(k--);

                rGPADAT0 |= 0x100;

                k=10;

                while(k--);

                rGPADAT0 |= 0x7ff;

                //============

推荐阅读

史海拾趣

问答坊 | AI 解惑

好用的基准电压源

好用的基准电压源…

查看全部问答>

加性噪声

调制信道对信号的影响除乘性干扰外,还有加性干扰(即加性噪声)。加性噪声虽然独立于有用信号,但它却始终存在,干扰有用信号,因而不可避免地对通信造成危害。本节讨论信道中的加性噪声,内容包括信道内各种噪声的分类及性质,以及定性地说明它们 ...…

查看全部问答>

一个讲电源测试的PPT(very good)

一个讲电源测试的PPT(very good)…

查看全部问答>

求VxWorks教程

想进入VxWorks领域,各位谁有点入门的资料,能否赐予?感激不尽! 邮箱:siuhuali@163.com 没有多少分了,抱歉!…

查看全部问答>

memory-mapped registers 的具体含义?

RT TI DSP中memory-mapped registers是指实际在DSP中存在的寄存器还是仅在存储器中存在的呢? 小弟很菜,望各位大哥多多指教!…

查看全部问答>

请问EVC下开发的应用程序如何下载到目标平台上?

我用PB编译好了winCE内核后,已经把镜像下载到了目标平台上,跑起来了。现在下一步是开发应用程序,就是把evc下的应用程序也下载到目标平台上。我不想使用把应用程序编译到内核然后一起下载到目标板上的的方法,觉得那样不够灵活。请问内核下载到目 ...…

查看全部问答>

可原地旋转的汽车

如果没有过硬的驾驶技巧,是很难让汽车实现360度的原地旋转的。然而有了我们今天为大家介绍的这款概念车,这种“特技”就变成了家常便饭。         这款概念车的四个轮子与车体的连接处都被设计成了弧形的,因此四个轮子 ...…

查看全部问答>

请教关于stm32与电脑的485通讯

当波特率为19200,38400或者57600时,电脑接收到的数据正常,当用9600时,电脑接收到的数据有时候被分成两部分。       这会是什么原因,请指点。 图片.pdf (36.88 KB) 下载次数:63 2009-12-7 17: ...…

查看全部问答>

TI阅读:电压基准如何影响 ADC 性能,第 3 部分

本帖最后由 dontium 于 2015-1-23 11:40 编辑 电压基准如何影响 ADC 性能,第 3 部分 …

查看全部问答>

申请LM3S8962开发板

实施开始项目,下位机采用单片机采集温度,电压等,通过无线传输到主板LM3S8962.再通过网口传到上位机LABVIEW上,实现采集。…

查看全部问答>