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

📄 sccb.txt

📁 STM32+ov7670
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 481]
; commandline ArmCC [--debug -c --asm --interleave -o.\OBJ\sccb.o --depend=.\OBJ\sccb.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\sccb.crf USER\SCCB.c]
                          THUMB

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

                  InitSCCB PROC
;;;19     */
;;;20     void InitSCCB(void)
000000  48b4              LDR      r0,|L1.724|
;;;21     {
;;;22     	//SCCB_DDR|=(1<<SCCB_SIO_C)|(1<<SCCB_SIO_D);
;;;23     	//SCCB_PORT|=(1<<SCCB_SIO_C)|(1<<SCCB_SIO_D);
;;;24     	RCC->APB2ENR |= (1 <<3 );
000002  6980              LDR      r0,[r0,#0x18]
000004  f0400008          ORR      r0,r0,#8
000008  49b2              LDR      r1,|L1.724|
00000a  6188              STR      r0,[r1,#0x18]
;;;25     	GPIOB->CRL &= 0x00ffffff;
00000c  48b2              LDR      r0,|L1.728|
00000e  6800              LDR      r0,[r0,#0]
000010  f020407f          BIC      r0,r0,#0xff000000
000014  49b1              LDR      r1,|L1.732|
000016  f8c10c00          STR      r0,[r1,#0xc00]
;;;26     	GPIOB->CRL |= 0x33000000;
00001a  4608              MOV      r0,r1
00001c  f8d00c00          LDR      r0,[r0,#0xc00]
000020  f040504c          ORR      r0,r0,#0x33000000
000024  f8c10c00          STR      r0,[r1,#0xc00]
;;;27     	GPIOB->ODR |= 0x00C0;
000028  4608              MOV      r0,r1
00002a  f8d00c0c          LDR      r0,[r0,#0xc0c]
00002e  f04000c0          ORR      r0,r0,#0xc0
000032  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;28     	
;;;29     }
000036  4770              BX       lr
;;;30     /*
                          ENDP

                  startSCCB PROC
;;;36     */
;;;37     void startSCCB(void)
000038  b510              PUSH     {r4,lr}
;;;38     {
;;;39     	SIO_D_SET;     //数据线高电平
00003a  48a9              LDR      r0,|L1.736|
00003c  6800              LDR      r0,[r0,#0]
00003e  f0400080          ORR      r0,r0,#0x80
000042  49a6              LDR      r1,|L1.732|
000044  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;40         Delay_nUS(200);
000048  f04f00c8          MOV      r0,#0xc8
00004c  f7fffffe          BL       delay_us
;;;41     
;;;42         SIO_C_SET;	   //在时钟线高的时候数据线由高至低
000050  48a2              LDR      r0,|L1.732|
000052  f8d00c0c          LDR      r0,[r0,#0xc0c]
000056  f0400040          ORR      r0,r0,#0x40
00005a  49a0              LDR      r1,|L1.732|
00005c  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;43         Delay_nUS(200);
000060  20c8              MOVS     r0,#0xc8
000062  f7fffffe          BL       delay_us
;;;44      
;;;45         SIO_D_CLR;
000066  489d              LDR      r0,|L1.732|
000068  f8d00c0c          LDR      r0,[r0,#0xc0c]
00006c  f0200080          BIC      r0,r0,#0x80
000070  499b              LDR      r1,|L1.736|
000072  6008              STR      r0,[r1,#0]
;;;46         Delay_nUS(200);
000074  f04f00c8          MOV      r0,#0xc8
000078  f7fffffe          BL       delay_us
;;;47     
;;;48         SIO_C_CLR;	 //数据线恢复低电平,单操作函数必要
00007c  4897              LDR      r0,|L1.732|
00007e  f8d00c0c          LDR      r0,[r0,#0xc0c]
000082  f0200040          BIC      r0,r0,#0x40
000086  4995              LDR      r1,|L1.732|
000088  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;49         Delay_nUS(200);
00008c  20c8              MOVS     r0,#0xc8
00008e  f7fffffe          BL       delay_us
;;;50     
;;;51     
;;;52     }
000092  bd10              POP      {r4,pc}
;;;53     /*
                          ENDP

                  stopSCCB PROC
;;;59     */
;;;60     void stopSCCB(void)
000094  b510              PUSH     {r4,lr}
;;;61     {
;;;62     	SIO_D_CLR;
000096  4892              LDR      r0,|L1.736|
000098  6800              LDR      r0,[r0,#0]
00009a  f0200080          BIC      r0,r0,#0x80
00009e  498f              LDR      r1,|L1.732|
0000a0  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;63         Delay_nUS(200);
0000a4  f04f00c8          MOV      r0,#0xc8
0000a8  f7fffffe          BL       delay_us
;;;64      
;;;65         SIO_C_SET;
0000ac  488b              LDR      r0,|L1.732|
0000ae  f8d00c0c          LDR      r0,[r0,#0xc0c]
0000b2  f0400040          ORR      r0,r0,#0x40
0000b6  4989              LDR      r1,|L1.732|
0000b8  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;66         Delay_nUS(200);
0000bc  20c8              MOVS     r0,#0xc8
0000be  f7fffffe          BL       delay_us
;;;67       
;;;68     
;;;69         SIO_D_SET;
0000c2  4886              LDR      r0,|L1.732|
0000c4  f8d00c0c          LDR      r0,[r0,#0xc0c]
0000c8  f0400080          ORR      r0,r0,#0x80
0000cc  4983              LDR      r1,|L1.732|
0000ce  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;70         Delay_nUS(200);
0000d2  20c8              MOVS     r0,#0xc8
0000d4  f7fffffe          BL       delay_us
;;;71      //   SCCB_DDR&= ~(SCCB_SIO_D);
;;;72     
;;;73     }
0000d8  bd10              POP      {r4,pc}
;;;74     
                          ENDP

                  noAck PROC
;;;81     */
;;;82     void noAck(void)
0000da  b510              PUSH     {r4,lr}
;;;83     {
;;;84     	
;;;85     	SIO_D_SET;
0000dc  4880              LDR      r0,|L1.736|
0000de  6800              LDR      r0,[r0,#0]
0000e0  f0400080          ORR      r0,r0,#0x80
0000e4  497d              LDR      r1,|L1.732|
0000e6  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;86     	Delay_nUS(200);
0000ea  f04f00c8          MOV      r0,#0xc8
0000ee  f7fffffe          BL       delay_us
;;;87     	
;;;88     	SIO_C_SET;
0000f2  487a              LDR      r0,|L1.732|
0000f4  f8d00c0c          LDR      r0,[r0,#0xc0c]
0000f8  f0400040          ORR      r0,r0,#0x40
0000fc  4977              LDR      r1,|L1.732|
0000fe  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;89     	Delay_nUS(200);
000102  20c8              MOVS     r0,#0xc8
000104  f7fffffe          BL       delay_us
;;;90     	
;;;91     	SIO_C_CLR;
000108  4874              LDR      r0,|L1.732|
00010a  f8d00c0c          LDR      r0,[r0,#0xc0c]
00010e  f0200040          BIC      r0,r0,#0x40
000112  4973              LDR      r1,|L1.736|
000114  6008              STR      r0,[r1,#0]
;;;92     	Delay_nUS(200);
000116  f04f00c8          MOV      r0,#0xc8
00011a  f7fffffe          BL       delay_us
;;;93     	
;;;94     	SIO_D_CLR;
00011e  486f              LDR      r0,|L1.732|
000120  f8d00c0c          LDR      r0,[r0,#0xc0c]
000124  f0200080          BIC      r0,r0,#0x80
000128  496c              LDR      r1,|L1.732|
00012a  f8c10c0c          STR      r0,[r1,#0xc0c]
;;;95     	Delay_nUS(200);
00012e  20c8              MOVS     r0,#0xc8
000130  f7fffffe          BL       delay_us
;;;96     
;;;97     }
000134  bd10              POP      {r4,pc}
;;;98     
                          ENDP

                  SCCBwriteByte PROC
;;;105    */
;;;106    uchar SCCBwriteByte(uchar m_data)
000136  b570              PUSH     {r4-r6,lr}
;;;107    {
000138  4606              MOV      r6,r0
;;;108    	unsigned char j,tem;
;;;109    
;;;110    	for(j=0;j<8;j++) //循环8次发送数据
00013a  2400              MOVS     r4,#0
00013c  e02e              B        |L1.412|
                  |L1.318|
;;;111    	{
;;;112    		if((m_data<<j)&0x80)
00013e  fa06f004          LSL      r0,r6,r4
000142  f0100f80          TST      r0,#0x80
000146  d007              BEQ      |L1.344|
;;;113    		{
;;;114    			SIO_D_SET;
000148  4865              LDR      r0,|L1.736|
00014a  6800              LDR      r0,[r0,#0]
00014c  f0400080          ORR      r0,r0,#0x80
000150  4962              LDR      r1,|L1.732|
000152  f8c10c0c          STR      r0,[r1,#0xc0c]
000156  e006              B        |L1.358|
                  |L1.344|

⌨️ 快捷键说明

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