⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 st7920.txt

📁 基于ARM的电梯控制程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
0001ac  e1a05001          MOV      r5,r1
0001b0  e1a06002          MOV      r6,r2
0001b4  e1a00004          MOV      r0,r4
0001b8  ebfffffe          BL       SendCmd
0001bc  e1a00005          MOV      r0,r5
0001c0  ebfffffe          BL       SendDat
0001c4  e1a00006          MOV      r0,r6
0001c8  ebfffffe          BL       SendDat
0001cc  e8bd4070          POP      {r4-r6,lr}
0001d0  e12fff1e          BX       lr
;;;92      	SendCmd(x_add);
;;;93      	SendDat(high);
;;;94      	SendDat(low);
;;;95     }
                          ENDP

                  PreDispIndoorCall PROC
;;;106    	uint8 i;
;;;107    	for(i=0; i<16; i++) 
0001d4  e3a02000          MOV      r2,#0
0001d8  ea000009          B        |L1.516|
                  |L1.476|
0001dc  e7d03002          LDRB     r3,[r0,r2]
0001e0  e3130040          TST      r3,#0x40
0001e4  0a000002          BEQ      |L1.500|
0001e8  e3a03008          MOV      r3,#8
0001ec  e7c13002          STRB     r3,[r1,r2]
0001f0  ea000001          B        |L1.508|
                  |L1.500|
0001f4  e3a0302d          MOV      r3,#0x2d
0001f8  e7c13002          STRB     r3,[r1,r2]
                  |L1.508|
0001fc  e2823001          ADD      r3,r2,#1
000200  e20320ff          AND      r2,r3,#0xff
                  |L1.516|
000204  e3520010          CMP      r2,#0x10
000208  bafffff3          BLT      |L1.476|
00020c  e12fff1e          BX       lr
;;;108        {  
;;;109        if((0x40&(*(data+i)))!=0)
;;;110        *(p+i)=0x08;
;;;111        else
;;;112        *(p+i)=0x2d;
;;;113        }
;;;114    } 
                          ENDP

                  PreDispOutdoorCallUp PROC
;;;124    	uint8 i;
;;;125    	for(i=0; i<16; i++) 
000210  e3a02000          MOV      r2,#0
000214  ea000009          B        |L1.576|
                  |L1.536|
000218  e7d03002          LDRB     r3,[r0,r2]
00021c  e3130020          TST      r3,#0x20
000220  0a000002          BEQ      |L1.560|
000224  e3a03008          MOV      r3,#8
000228  e7c13002          STRB     r3,[r1,r2]
00022c  ea000001          B        |L1.568|
                  |L1.560|
000230  e3a0302d          MOV      r3,#0x2d
000234  e7c13002          STRB     r3,[r1,r2]
                  |L1.568|
000238  e2823001          ADD      r3,r2,#1
00023c  e20320ff          AND      r2,r3,#0xff
                  |L1.576|
000240  e3520010          CMP      r2,#0x10
000244  bafffff3          BLT      |L1.536|
000248  e12fff1e          BX       lr
;;;126        {  
;;;127        if((0x20&(*(data+i)))!=0)
;;;128        *(p+i)=0x08;
;;;129        else
;;;130        *(p+i)=0x2d;
;;;131        }
;;;132    } 
                          ENDP

                  PreDispOutdoorCallDown PROC
;;;142    	uint8 i;
;;;143    	for(i=0; i<16; i++) 
00024c  e3a02000          MOV      r2,#0
000250  ea000009          B        |L1.636|
                  |L1.596|
000254  e7d03002          LDRB     r3,[r0,r2]
000258  e3130010          TST      r3,#0x10
00025c  0a000002          BEQ      |L1.620|
000260  e3a03008          MOV      r3,#8
000264  e7c13002          STRB     r3,[r1,r2]
000268  ea000001          B        |L1.628|
                  |L1.620|
00026c  e3a0302d          MOV      r3,#0x2d
000270  e7c13002          STRB     r3,[r1,r2]
                  |L1.628|
000274  e2823001          ADD      r3,r2,#1
000278  e20320ff          AND      r2,r3,#0xff
                  |L1.636|
00027c  e3520010          CMP      r2,#0x10
000280  bafffff3          BLT      |L1.596|
000284  e12fff1e          BX       lr
;;;144        {  
;;;145        if((0x10&(*(data+i)))!=0)
;;;146        *(p+i)=0x08;
;;;147        else
;;;148        *(p+i)=0x2d;
;;;149        }
;;;150    } 
                          ENDP

                  lcdclr PROC
;;;151    void lcdclr(void)
;;;152    { uint8 lcdlow,lcdlie;  
000288  e92d4030          PUSH     {r4,r5,lr}
00028c  e3a04000          MOV      r4,#0
000290  ea00000e          B        |L1.720|
                  |L1.660|
000294  e3a05000          MOV      r5,#0
000298  ea000008          B        |L1.704|
                  |L1.668|
00029c  e59f10c4          LDR      r1,|L1.872|
0002a0  e7d11004          LDRB     r1,[r1,r4]
0002a4  e0811005          ADD      r1,r1,r5
0002a8  e20100ff          AND      r0,r1,#0xff
0002ac  e3a020a0          MOV      r2,#0xa0
0002b0  e3a010a1          MOV      r1,#0xa1
0002b4  ebfffffe          BL       Display
0002b8  e2850001          ADD      r0,r5,#1
0002bc  e20050ff          AND      r5,r0,#0xff
                  |L1.704|
0002c0  e3550008          CMP      r5,#8
0002c4  bafffff4          BLT      |L1.668|
0002c8  e2840001          ADD      r0,r4,#1
0002cc  e20040ff          AND      r4,r0,#0xff
                  |L1.720|
0002d0  e3540004          CMP      r4,#4
0002d4  baffffee          BLT      |L1.660|
0002d8  e8bd4030          POP      {r4,r5,lr}
0002dc  e12fff1e          BX       lr
;;;153      //清屏
;;;154           for(lcdlow=0;lcdlow<4;lcdlow++)
;;;155             for(lcdlie=0;lcdlie<8;lcdlie++)
;;;156               Display(RowNum[lcdlow]+lcdlie,0xA1,0xA0);   //0xA1A0为空格
;;;157    
;;;158    }
                          ENDP

                  InitLcm PROC
;;;160    	void InitLcm(void)           //初始化 LCM
;;;161    {
0002e0  e52de004          PUSH     {lr}
0002e4  e59f0078          LDR      r0,|L1.868|
0002e8  e5900018          LDR      r0,[r0,#0x18]
0002ec  e380080f          ORR      r0,r0,#0xf0000
0002f0  e59f106c          LDR      r1,|L1.868|
0002f4  e5810018          STR      r0,[r1,#0x18]
0002f8  e3a00801          MOV      r0,#0x10000
0002fc  e5810014          STR      r0,[r1,#0x14]
000300  e3a00702          MOV      r0,#0x80000
000304  e581001c          STR      r0,[r1,#0x1c]
000308  e3a000ff          MOV      r0,#0xff
00030c  ebfffffe          BL       Delay
000310  e3a00702          MOV      r0,#0x80000
000314  e59f1048          LDR      r1,|L1.868|
000318  e5810014          STR      r0,[r1,#0x14]
00031c  e3a000ff          MOV      r0,#0xff
000320  ebfffffe          BL       Delay
000324  e3a00030          MOV      r0,#0x30
000328  ebfffffe          BL       SendCmd
00032c  e3a00004          MOV      r0,#4
000330  ebfffffe          BL       SendCmd
000334  e3a0000f          MOV      r0,#0xf
000338  ebfffffe          BL       SendCmd
00033c  e3a00001          MOV      r0,#1
000340  ebfffffe          BL       SendCmd
000344  e3a00002          MOV      r0,#2
000348  ebfffffe          BL       SendCmd
00034c  e3a00080          MOV      r0,#0x80
000350  ebfffffe          BL       SendCmd
000354  e3a0000c          MOV      r0,#0xc
000358  ebfffffe          BL       SendCmd
00035c  e49de004          POP      {lr}
000360  e12fff1e          BX       lr
                  |L1.868|
000364  e0028000          DCD      0xe0028000
                  |L1.872|
000368  00000000          DCD      RowNum
;;;162     	IO1DIR|=(ST7920_Cs|ST7920_Clk|ST7920_Sda|ST7920_Rst);
;;;163     	IO1SET=ST7920_Cs;		// 高电平使能
;;;164    	IO1CLR=ST7920_Rst;
;;;165    	Delay(0xff);
;;;166    	IO1SET=ST7920_Rst;
;;;167     	Delay(0xff);
;;;168     	SendCmd(0x30);              //功能设置:一次送 8 位数据,基本指令集
;;;169     	SendCmd(0x04);              //点设定 :显示字符/ 光标从左到右移位,DDRAM 地址加一
;;;170     	SendCmd(0x0f);              //显示设定:开显示 ,显示光标,当前显示位反白闪动
;;;171     	SendCmd(0x01);              //清DDRAM
;;;172     	SendCmd(0x02);              //*DDRAM 地址归位
;;;173     	SendCmd(DDRAM_0);   		 //DDRAM
;;;174     	SendCmd(off_cursor);		 //关光标 
;;;175    }
                          ENDP



                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  ||.constdata$1||
                  RowNum
                          DCB      0x80,0x90,0x88,0x98

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -