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

📄 key.txt

📁 STM32+ov7670
💻 TXT
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 481]
; commandline ArmCC [--debug -c --asm --interleave -o.\OBJ\key.o --depend=.\OBJ\key.d --cpu=Cortex-M3 --apcs=interwork -O0 -I..\Demo -I.\HARDWARE\EXTI -I.\HARDWARE\KEY -I.\HARDWARE\LCD -I.\HARDWARE\LED -I.\HARDWARE\TIMER -I.\HARDWARE\WDG -I.\SYSTEM\delay -I.\SYSTEM\sys -I.\SYSTEM\usart -I.\USER -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\OBJ\key.crf HARDWARE\KEY\key.c]
                          THUMB

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

                  KEY_Init PROC
;;;11     //PA0.13.15 设置成输入
;;;12     void KEY_Init(void)
000000  483a              LDR      r0,|L1.236|
;;;13     {
;;;14     	RCC->APB2ENR|=1<<2;     //使能PORTA时钟
000002  6980              LDR      r0,[r0,#0x18]
000004  f0400004          ORR      r0,r0,#4
000008  4938              LDR      r1,|L1.236|
00000a  6188              STR      r0,[r1,#0x18]
;;;15     	GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入	  
00000c  4838              LDR      r0,|L1.240|
00000e  6800              LDR      r0,[r0,#0]
000010  f020000f          BIC      r0,r0,#0xf
000014  4937              LDR      r1,|L1.244|
000016  f8c10800          STR      r0,[r1,#0x800]
;;;16     	GPIOA->CRL|=0X00000008;   
00001a  4608              MOV      r0,r1
00001c  f8d00800          LDR      r0,[r0,#0x800]
000020  f0400008          ORR      r0,r0,#8
000024  f8c10800          STR      r0,[r1,#0x800]
;;;17     	GPIOA->CRH&=0X0F0FFFFF;//PA13,15设置成输入	  
000028  4833              LDR      r0,|L1.248|
00002a  6800              LDR      r0,[r0,#0]
00002c  4933              LDR      r1,|L1.252|
00002e  ea000001          AND      r0,r0,r1
000032  4930              LDR      r1,|L1.244|
000034  f8c10804          STR      r0,[r1,#0x804]
;;;18     	GPIOA->CRH|=0X80800000; 				   
000038  482f              LDR      r0,|L1.248|
00003a  6800              LDR      r0,[r0,#0]
00003c  4930              LDR      r1,|L1.256|
00003e  ea400001          ORR      r0,r0,r1
000042  492c              LDR      r1,|L1.244|
000044  f8c10804          STR      r0,[r1,#0x804]
;;;19     	GPIOA->ODR|=1<<13;	   //PA13上拉,PA0默认下拉
000048  4608              MOV      r0,r1
00004a  f8d0080c          LDR      r0,[r0,#0x80c]
00004e  f4405000          ORR      r0,r0,#0x2000
000052  f8c1080c          STR      r0,[r1,#0x80c]
;;;20     	GPIOA->ODR|=1<<15;	   //PA15上拉
000056  4608              MOV      r0,r1
000058  f8d0080c          LDR      r0,[r0,#0x80c]
00005c  f4404000          ORR      r0,r0,#0x8000
000060  f8c1080c          STR      r0,[r1,#0x80c]
;;;21     } 
000064  4770              BX       lr
;;;22     //按键处理函数
                          ENDP

                  KEY_Scan PROC
;;;28     //注意此函数有响应优先级,KEY0>KEY1>KEY2!!
;;;29     u8 KEY_Scan(void)
000066  b510              PUSH     {r4,lr}
;;;30     {	 
;;;31     	static u8 key_up=1;//按键按松开标志	
;;;32     	JTAG_Set(JTAG_SWD_DISABLE);
000068  2002              MOVS     r0,#2
00006a  f7fffffe          BL       JTAG_Set
;;;33     	if(key_up&&(KEY0==0||KEY1==0||KEY2==1))
00006e  4825              LDR      r0,|L1.260|
000070  7800              LDRB     r0,[r0,#0]  ; key_up
000072  b338              CBZ      r0,|L1.196|
000074  4824              LDR      r0,|L1.264|
000076  6800              LDR      r0,[r0,#0]
000078  b130              CBZ      r0,|L1.136|
00007a  4824              LDR      r0,|L1.268|
00007c  6800              LDR      r0,[r0,#0]
00007e  b118              CBZ      r0,|L1.136|
000080  4823              LDR      r0,|L1.272|
000082  6800              LDR      r0,[r0,#0]
000084  2801              CMP      r0,#1
000086  d11d              BNE      |L1.196|
                  |L1.136|
;;;34     	{
;;;35     		delay_ms(10);//去抖动 
000088  200a              MOVS     r0,#0xa
00008a  f7fffffe          BL       delay_ms
;;;36     		key_up=0;
00008e  2000              MOVS     r0,#0
000090  491c              LDR      r1,|L1.260|
000092  7008              STRB     r0,[r1,#0]
;;;37     		if(KEY0==0)
000094  481c              LDR      r0,|L1.264|
000096  6800              LDR      r0,[r0,#0]
000098  b920              CBNZ     r0,|L1.164|
;;;38     		{
;;;39     			JTAG_Set(SWD_ENABLE);
00009a  2001              MOVS     r0,#1
00009c  f7fffffe          BL       JTAG_Set
;;;40     			return 1;
0000a0  2001              MOVS     r0,#1
                  |L1.162|
;;;41     		}
;;;42     		else if(KEY1==0)
;;;43     		{
;;;44     			JTAG_Set(SWD_ENABLE);
;;;45     			return 2;
;;;46     		}
;;;47     		else if(KEY2==1)
;;;48     		{
;;;49     			JTAG_Set(SWD_ENABLE);
;;;50     			return 3;
;;;51     		}
;;;52     	}else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1; 	    
;;;53     	JTAG_Set(SWD_ENABLE);
;;;54     	return 0;// 无按键按下
;;;55     }
0000a2  bd10              POP      {r4,pc}
                  |L1.164|
0000a4  4819              LDR      r0,|L1.268|
0000a6  6800              LDR      r0,[r0,#0]            ;42
0000a8  b920              CBNZ     r0,|L1.180|
0000aa  2001              MOVS     r0,#1                 ;44
0000ac  f7fffffe          BL       JTAG_Set
0000b0  2002              MOVS     r0,#2                 ;45
0000b2  e7f6              B        |L1.162|
                  |L1.180|
0000b4  4816              LDR      r0,|L1.272|
0000b6  6800              LDR      r0,[r0,#0]            ;47
0000b8  2801              CMP      r0,#1                 ;47
0000ba  d111              BNE      |L1.224|
0000bc  f7fffffe          BL       JTAG_Set
0000c0  2003              MOVS     r0,#3                 ;50
0000c2  e7ee              B        |L1.162|
                  |L1.196|
0000c4  4810              LDR      r0,|L1.264|
0000c6  6800              LDR      r0,[r0,#0]            ;52
0000c8  2801              CMP      r0,#1                 ;52
0000ca  d109              BNE      |L1.224|
0000cc  480f              LDR      r0,|L1.268|
0000ce  6800              LDR      r0,[r0,#0]            ;52
0000d0  2801              CMP      r0,#1                 ;52
0000d2  d105              BNE      |L1.224|
0000d4  480e              LDR      r0,|L1.272|
0000d6  6800              LDR      r0,[r0,#0]            ;52
0000d8  b910              CBNZ     r0,|L1.224|
0000da  2001              MOVS     r0,#1                 ;52
0000dc  4909              LDR      r1,|L1.260|
0000de  7008              STRB     r0,[r1,#0]            ;52
                  |L1.224|
0000e0  2001              MOVS     r0,#1                 ;53
0000e2  f7fffffe          BL       JTAG_Set
0000e6  2000              MOVS     r0,#0                 ;54
0000e8  e7db              B        |L1.162|
;;;56     
                          ENDP

0000ea  0000              DCW      0x0000
                  |L1.236|
                          DCD      0x40021000
                  |L1.240|
                          DCD      0x40010800
                  |L1.244|
                          DCD      0x40010000
                  |L1.248|
                          DCD      0x40010804
                  |L1.252|
                          DCD      0x0f0fffff
                  |L1.256|
                          DCD      0x80800000
                  |L1.260|
                          DCD      key_up
                  |L1.264|
                          DCD      0x42210134
                  |L1.268|
                          DCD      0x4221013c
                  |L1.272|
                          DCD      0x42210100

                          AREA ||.data||, DATA, ALIGN=0

                  key_up
000000  01                DCB      0x01

⌨️ 快捷键说明

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