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

📄 zlg7290.txt

📁 基于ARM的电梯控制程序
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -ozlg7290.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips zlg7290.c]

                          ARM

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  DelayMS PROC
;;;59     
;;;60        for(; dly>0; dly--) 
000000  ea000006          B        |L1.32|
                  |L1.4|
000004  e3a01000          MOV      r1,#0
000008  ea000001          B        |L1.20|
                  |L1.12|
00000c  e2812001          ADD      r2,r1,#1
000010  e20210ff          AND      r1,r2,#0xff
                  |L1.20|
000014  e3510064          CMP      r1,#0x64
000018  bafffffb          BLT      |L1.12|
00001c  e2400001          SUB      r0,r0,#1
                  |L1.32|
000020  e3500000          CMP      r0,#0
000024  1afffff6          BNE      |L1.4|
000028  e12fff1e          BX       lr
;;;61           for(i=0; i<100; i++);
;;;62     }
                          ENDP

                  ZLG7290_SendData PROC
;;;83     unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
;;;84     {
00002c  e92d4013          PUSH     {r0,r1,r4,lr}
000030  e1a04000          MOV      r4,r0
000034  e3540017          CMP      r4,#0x17
000038  da000002          BLE      |L1.72|
00003c  e3a00000          MOV      r0,#0
                  |L1.64|
000040  e8bd401c          POP      {r2-r4,lr}
000044  e12fff1e          BX       lr
                  |L1.72|
000048  e3a03001          MOV      r3,#1
00004c  e28d2004          ADD      r2,sp,#4
000050  e1a01004          MOV      r1,r4
000054  e3a00070          MOV      r0,#0x70
000058  ebfffffe          BL       ISendStr
00005c  e3a0000a          MOV      r0,#0xa
000060  ebfffffe          BL       DelayMS
000064  e3a00001          MOV      r0,#1
000068  eafffff4          B        |L1.64|
;;;85     	if(SubAdd>0x17) return 0;
;;;86     	ISendStr(ZLG7290,SubAdd,&Data,1);
;;;87     	DelayMS(10);
;;;88     	return 1;
;;;89     }
                          ENDP

                  ZLG7290_SendCmd PROC
;;;109    unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
;;;110    {
00006c  e92d4038          PUSH     {r3-r5,lr}
000070  e1a04000          MOV      r4,r0
000074  e1a05001          MOV      r5,r1
000078  e5cd4000          STRB     r4,[sp,#0]
00007c  e5cd5001          STRB     r5,[sp,#1]
000080  e3a03002          MOV      r3,#2
000084  e1a0200d          MOV      r2,sp
000088  e3a01007          MOV      r1,#7
00008c  e3a00070          MOV      r0,#0x70
000090  ebfffffe          BL       ISendStr
000094  e3a0000a          MOV      r0,#0xa
000098  ebfffffe          BL       DelayMS
00009c  e3a00001          MOV      r0,#1
0000a0  e8bd4038          POP      {r3-r5,lr}
0000a4  e12fff1e          BX       lr
;;;111        unsigned char Data[2];
;;;112        
;;;113    	Data[0]=Data1;
;;;114    	Data[1]=Data2;
;;;115    	ISendStr(ZLG7290,0x07,Data,2);
;;;116    	DelayMS(10);
;;;117    	return 1;
;;;118    }  
                          ENDP

                  ZLG7290_SendBuf PROC
;;;136    void ZLG7290_SendBuf(unsigned char * disp_buf,unsigned char num)
;;;137    {
0000a8  e92d4070          PUSH     {r4-r6,lr}
0000ac  e1a04000          MOV      r4,r0
0000b0  e1a06001          MOV      r6,r1
0000b4  e3a05000          MOV      r5,#0
0000b8  ea000006          B        |L1.216|
                  |L1.188|
0000bc  e5d41000          LDRB     r1,[r4,#0]
0000c0  e2852060          ADD      r2,r5,#0x60
0000c4  e20200ff          AND      r0,r2,#0xff
0000c8  ebfffffe          BL       ZLG7290_SendCmd
0000cc  e2844001          ADD      r4,r4,#1
0000d0  e2850001          ADD      r0,r5,#1
0000d4  e20050ff          AND      r5,r0,#0xff
                  |L1.216|
0000d8  e1550006          CMP      r5,r6
0000dc  bafffff6          BLT      |L1.188|
0000e0  e8bd4070          POP      {r4-r6,lr}
0000e4  e12fff1e          BX       lr
;;;138    	unsigned char i;
;;;139    	
;;;140    	for(i=0;i<num;i++)
;;;141    	{	
;;;142    		ZLG7290_SendCmd(0x60+i,*disp_buf);
;;;143    		disp_buf++;
;;;144    	}
;;;145    }
                          ENDP

                  ZLG7290_GetKey PROC
;;;164    unsigned char	ZLG7290_GetKey(void)
;;;165    {
0000e8  e92d4008          PUSH     {r3,lr}
0000ec  e3a00000          MOV      r0,#0
0000f0  e58d0000          STR      r0,[sp,#0]
0000f4  e3a03001          MOV      r3,#1
0000f8  e1a0200d          MOV      r2,sp
0000fc  e1a01003          MOV      r1,r3
000100  e3a00070          MOV      r0,#0x70
000104  ebfffffe          BL       IRcvStr
000108  e3a0000a          MOV      r0,#0xa
00010c  ebfffffe          BL       DelayMS
000110  e5dd0000          LDRB     r0,[sp,#0]
000114  e8bd5000          POP      {r12,lr}
000118  e12fff1e          BX       lr
;;;166        unsigned char rece;
;;;167        
;;;168    	rece=0;
;;;169    	IRcvStr(ZLG7290,1,&rece,1);
;;;170    	DelayMS(10);
;;;171    	return rece;
;;;172    }
                          ENDP


⌨️ 快捷键说明

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