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

📄 tsensor.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;641        /* Set the Back Color */
;;;642        LCD_SetBackColor(Red);
00005e  f44f4078          MOV      r0,#0xf800
000062  f7fffffe          BL       LCD_SetBackColor
;;;643        /* Set the Text Color */
;;;644        LCD_SetTextColor(White);
000066  4658              MOV      r0,r11
000068  f7fffffe          BL       LCD_SetTextColor
;;;645    
;;;646        LCD_DisplayStringLine(Line2, "     Temperature    ");
00006c  a178              ADR      r1,|L9.592|
00006e  2030              MOVS     r0,#0x30
000070  f7fffffe          BL       LCD_DisplayStringLine
;;;647    
;;;648        /* Set the Back Color */
;;;649        LCD_SetBackColor(Blue);
000074  201f              MOVS     r0,#0x1f
000076  f7fffffe          BL       LCD_SetBackColor
;;;650        /* Set the Text Color */
;;;651        LCD_SetTextColor(Green);
00007a  f44f60fc          MOV      r0,#0x7e0
00007e  f7fffffe          BL       LCD_SetTextColor
;;;652    
;;;653        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000082  2100              MOVS     r1,#0
000084  4638              MOV      r0,r7
000086  f7fffffe          BL       RCC_AHBPeriphClockCmd
00008a  4d77              LDR      r5,|L9.616|
00008c  f105040c          ADD      r4,r5,#0xc
000090  f1040615          ADD      r6,r4,#0x15
                  |L9.148|
;;;654    
;;;655        /* Wait until no key is pressed */
;;;656        while(ReadKey() != NOKEY)
000094  f7fffffe          BL       ReadKey
000098  2800              CMP      r0,#0
00009a  d1fb              BNE      |L9.148|
00009c  e0ac              B        |L9.504|
;;;657        {
;;;658        }
;;;659        
;;;660        /* Wait until a key is beiing pressed */
;;;661        while(pressedkey == NOKEY)
;;;662        {
;;;663          /* Initialize the Temperature Sensor */
;;;664          I2C_LM75_Init();
00009e  bf00              NOP      
                  |L9.160|
0000a0  f7fffffe          BL       I2C_LM75_Init
;;;665    
;;;666          /* Get double of Temperature value */
;;;667          TempCelsius_Value = I2C_LM75_Temp_Read();
0000a4  f7fffffe          BL       I2C_LM75_Temp_Read
;;;668    
;;;669    	  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
0000a8  6068              STR      r0,[r5,#4]  ; TempCelsius_Value
0000aa  2101              MOVS     r1,#1
0000ac  4638              MOV      r0,r7
0000ae  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;670    
;;;671          if(TempCelsius_Value <= 1023)
0000b2  6868              LDR      r0,[r5,#4]  ; TempCelsius_Value
0000b4  f5b06f80          CMP      r0,#0x400
0000b8  d203              BCS      |L9.194|
;;;672          {
;;;673            /* Positive temperature measured */
;;;674            TempCelsius_Display[5] = '+';
0000ba  202b              MOVS     r0,#0x2b
0000bc  7160              STRB     r0,[r4,#5]  ; TempCelsius_Display
;;;675            TempFahrenheit_Display[5] = '+'; 
0000be  7170              STRB     r0,[r6,#5]  ; TempFahrenheit_Display
0000c0  e005              B        |L9.206|
                  |L9.194|
;;;676          }
;;;677          else
;;;678          {
;;;679            /* Negative temperature measured */
;;;680            TempCelsius_Display[5] = '-'; 
0000c2  212d              MOVS     r1,#0x2d
0000c4  7161              STRB     r1,[r4,#5]  ; TempCelsius_Display
;;;681            TempFahrenheit_Display[5] = '-'; 
0000c6  7171              STRB     r1,[r6,#5]  ; TempFahrenheit_Display
;;;682            /* Remove temperature value sign */
;;;683            TempCelsius_Value = 0x800 - TempCelsius_Value;
0000c8  f5c06000          RSB      r0,r0,#0x800
0000cc  6068              STR      r0,[r5,#4]  ; TempCelsius_Value
                  |L9.206|
;;;684          }
;;;685    
;;;686          /* Calculate temperature digits in 癈 */
;;;687          Temp_Decimal = ((TempCelsius_Value & 7) * 1000 / 8);
0000ce  6869              LDR      r1,[r5,#4]  ; TempCelsius_Value
0000d0  f44f7c7a          MOV      r12,#0x3e8
0000d4  f0010007          AND      r0,r1,#7
0000d8  fb00f00c          MUL      r0,r0,r12
0000dc  08c0              LSRS     r0,r0,#3
;;;688          TempCelsius_Display[10] = (Temp_Decimal / 100) + 0x30;
0000de  2264              MOVS     r2,#0x64
0000e0  fbb0f3f2          UDIV     r3,r0,r2
0000e4  f1030e30          ADD      lr,r3,#0x30
0000e8  6028              STR      r0,[r5,#0]  ; Temp_Decimal
0000ea  f884e00a          STRB     lr,[r4,#0xa]  ; TempCelsius_Display
;;;689          TempCelsius_Display[11] = ((Temp_Decimal % 100) / 10) + 0x30;
0000ee  fb020e13          MLS      lr,r2,r3,r0
0000f2  230a              MOVS     r3,#0xa
0000f4  fbbef8f3          UDIV     r8,lr,r3
;;;690          TempCelsius_Display[12] = ((Temp_Decimal % 100) % 10) + 0x30;
0000f8  fb03ee18          MLS      lr,r3,r8,lr
0000fc  f1080930          ADD      r9,r8,#0x30           ;689
000100  f884900b          STRB     r9,[r4,#0xb]          ;689  ; TempCelsius_Display
000104  f10e0e30          ADD      lr,lr,#0x30
000108  f884e00c          STRB     lr,[r4,#0xc]  ; TempCelsius_Display
;;;691          TempCelsius_Value >>= 3;
00010c  08c9              LSRS     r1,r1,#3
;;;692          TempCelsius_Display[6] = (TempCelsius_Value / 100) + 0x30;
00010e  fbb1fef2          UDIV     lr,r1,r2
000112  f10e0830          ADD      r8,lr,#0x30
000116  6069              STR      r1,[r5,#4]  ; TempCelsius_Value
;;;693          TempCelsius_Display[7] = ((TempCelsius_Value % 100) / 10) + 0x30;
000118  fb021e1e          MLS      lr,r2,lr,r1
00011c  f8848006          STRB     r8,[r4,#6]            ;692  ; TempCelsius_Display
000120  fbbef8f3          UDIV     r8,lr,r3
000124  f1080930          ADD      r9,r8,#0x30
000128  e000              B        |L9.300|
                  |L9.298|
00012a  e06a              B        |L9.514|
                  |L9.300|
;;;694          TempCelsius_Display[8] = ((TempCelsius_Value % 100) % 10) + 0x30;
00012c  fb03ee18          MLS      lr,r3,r8,lr
000130  f8849007          STRB     r9,[r4,#7]            ;693  ; TempCelsius_Display
000134  f10e0e30          ADD      lr,lr,#0x30
000138  f884e008          STRB     lr,[r4,#8]  ; TempCelsius_Display
;;;695    
;;;696          /* Convert temperature 癈 to Fahrenheit */
;;;697          Temp_Value_Fahrenheit = ((9 * ((TempCelsius_Value * 1000) + Temp_Decimal)) / 5) + 32000;
00013c  f04f0e7d          MOV      lr,#0x7d
000140  fb01f10e          MUL      r1,r1,lr
000144  eb0000c1          ADD      r0,r0,r1,LSL #3
000148  eb0000c0          ADD      r0,r0,r0,LSL #3
00014c  2105              MOVS     r1,#5
00014e  fbb0f0f1          UDIV     r0,r0,r1
000152  f50040fa          ADD      r0,r0,#0x7d00
;;;698    
;;;699          /* Calculate temperature digits in 癋 */
;;;700          TempFahrenheit_Display[6] = (Temp_Value_Fahrenheit / 100000) + 0x30;
000156  f8df8114          LDR      r8,|L9.620|
00015a  60a8              STR      r0,[r5,#8]  ; Temp_Value_Fahrenheit
00015c  fbb0f1f8          UDIV     r1,r0,r8
000160  f1010e30          ADD      lr,r1,#0x30
;;;701          TempFahrenheit_Display[7] = ((Temp_Value_Fahrenheit % 100000) /10000) + 0x30;
000164  fb080111          MLS      r1,r8,r1,r0
000168  f2427810          MOV      r8,#0x2710
00016c  fbb1f0f8          UDIV     r0,r1,r8
000170  f886e006          STRB     lr,[r6,#6]            ;700  ; TempFahrenheit_Display
000174  f1000e30          ADD      lr,r0,#0x30
;;;702          TempFahrenheit_Display[8] = ((Temp_Value_Fahrenheit % 100000) %10000/1000) + 0x30;
000178  fb081010          MLS      r0,r8,r0,r1
00017c  fbb0f1fc          UDIV     r1,r0,r12
000180  f886e007          STRB     lr,[r6,#7]            ;701  ; TempFahrenheit_Display
000184  f1010e30          ADD      lr,r1,#0x30
;;;703          TempFahrenheit_Display[10] = ((((Temp_Value_Fahrenheit % 100000) %10000) %1000) /100) + 0x30;
000188  fb0c0011          MLS      r0,r12,r1,r0
00018c  fbb0f1f2          UDIV     r1,r0,r2
000190  f1010c30          ADD      r12,r1,#0x30
;;;704          TempFahrenheit_Display[11] = (((((Temp_Value_Fahrenheit % 100000) %10000) %1000) %100) /10) + 0x30;
000194  fb020011          MLS      r0,r2,r1,r0
000198  fbb0f1f3          UDIV     r1,r0,r3
00019c  f886e008          STRB     lr,[r6,#8]            ;702  ; TempFahrenheit_Display
;;;705          TempFahrenheit_Display[12] = (((((Temp_Value_Fahrenheit % 100000) %10000) %1000) %100) %10) + 0x30;
0001a0  fb030011          MLS      r0,r3,r1,r0
0001a4  f886c00a          STRB     r12,[r6,#0xa]         ;703  ; TempFahrenheit_Display
0001a8  f1010230          ADD      r2,r1,#0x30           ;704
0001ac  72f2              STRB     r2,[r6,#0xb]          ;704  ; TempFahrenheit_Display
0001ae  3030              ADDS     r0,r0,#0x30
0001b0  7330              STRB     r0,[r6,#0xc]  ; TempFahrenheit_Display
;;;706    
;;;707          /* Display Fahrenheit value on LCD */
;;;708          for(i = 0; i < 20; i++)
0001b2  f04f0800          MOV      r8,#0
0001b6  f2401a3f          MOV      r10,#0x13f
;;;709          {
;;;710            LCD_DisplayChar(Line7, (319 - (16 * i)), TempCelsius_Display[i]);
0001ba  bf00              NOP      
                  |L9.444|
0001bc  f1c80000          RSB      r0,r8,#0
0001c0  eb0a1900          ADD      r9,r10,r0,LSL #4
0001c4  f8142008          LDRB     r2,[r4,r8]
0001c8  fa1ff189          UXTH     r1,r9
0001cc  20a8              MOVS     r0,#0xa8
0001ce  f7fffffe          BL       LCD_DisplayChar
;;;711            LCD_DisplayChar(Line8, (319 - (16 * i)), TempFahrenheit_Display[i]);
0001d2  f8162008          LDRB     r2,[r6,r8]
0001d6  fa1ff189          UXTH     r1,r9
0001da  20c0              MOVS     r0,#0xc0
0001dc  f7fffffe          BL       LCD_DisplayChar
0001e0  f1080801          ADD      r8,r8,#1              ;708
0001e4  f1b80f14          CMP      r8,#0x14              ;708
0001e8  d3e8              BCC      |L9.444|
;;;712          }
;;;713          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
0001ea  2100              MOVS     r1,#0
0001ec  4638              MOV      r0,r7
0001ee  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;714          pressedkey = ReadKey(); 
0001f2  f7fffffe          BL       ReadKey
0001f6  4680              MOV      r8,r0
                  |L9.504|
0001f8  f1b80f00          CMP      r8,#0                 ;661
0001fc  f43faf50          BEQ      |L9.160|
000200  e016              B        |L9.560|
                  |L9.514|
;;;715        }
;;;716      }
;;;717      else
;;;718      {
;;;719        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000202  2101              MOVS     r1,#1
000204  4638              MOV      r0,r7
000206  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;720        LCD_Clear(White);
00020a  4658              MOV      r0,r11
00020c  f7fffffe          BL       LCD_Clear
;;;721        LCD_DisplayStringLine(Line2, " No TSENSOR Present ");
000210  a117              ADR      r1,|L9.624|
000212  2030              MOVS     r0,#0x30
000214  f7fffffe          BL       LCD_DisplayStringLine
;;;722        LCD_DisplayStringLine(Line3, "Exit:  Push JoyStick");
000218  a11b              ADR      r1,|L9.648|
00021a  2048              MOVS     r0,#0x48
00021c  f7fffffe          BL       LCD_DisplayStringLine
;;;723        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000220  2100              MOVS     r1,#0
000222  4638              MOV      r0,r7
000224  f7fffffe          BL       RCC_AHBPeriphClockCmd
                  |L9.552|
;;;724        while(ReadKey() == NOKEY)
000228  f7fffffe          BL       ReadKey
00022c  2800              CMP      r0,#0
00022e  d0fb              BEQ      |L9.552|
                  |L9.560|
;;;725        {
;;;726        }
;;;727      }
;;;728      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000230  2101              MOVS     r1,#1
000232  4638              MOV      r0,r7
000234  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;729      LCD_Clear(White);
000238  4658              MOV      r0,r11
00023a  f7fffffe          BL       LCD_Clear
;;;730      /* Display menu */
;;;731      DisplayMenu();
00023e  f7fffffe          BL       DisplayMenu
;;;732      /* Enable the JoyStick interrupt */
;;;733      IntExtOnOffConfig(ENABLE);   
000242  e8bd5ff0          POP      {r4-r12,lr}
000246  2001              MOVS     r0,#1
000248  f7ffbffe          B.W      IntExtOnOffConfig
;;;734    }
;;;735    
                          ENDP

                  |L9.588|
00024c  007b7f38          DCD      0x007b7f38
                  |L9.592|
000250  202020202054656d70657261747572652020202000        DCB      "     Temperature    ",0
000265  00                DCB      0
000266  00                DCB      0
000267  00                DCB      0
                  |L9.616|
000268  00000000          DCD      ||.data||
                  |L9.620|
00026c  000186a0          DCD      0x000186a0
                  |L9.624|
000270  204e6f205453454e534f522050726573656e742000        DCB      " No TSENSOR Present ",0
000285  00                DCB      0
000286  00                DCB      0
000287  00                DCB      0
                  |L9.648|
000288  457869743a202050757368204a6f79537469636b00        DCB      "Exit:  Push JoyStick",0
00029d  00                DCB      0
00029e  00                DCB      0
00029f  00                DCB      0

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

                  Temp_Decimal
000000  00000000          DCD      0x00000000
                  TempCelsius_Value
000004  00000000          DCD      0x00000000
                  Temp_Value_Fahrenheit
000008  00000000          DCD      0x00000000
                  TempCelsius_Display
00000c  20202020          DCB      0x20,0x20,0x20,0x20
000010  202b6162          DCB      0x20,0x2b,0x61,0x62
000014  632e6465          DCB      0x63,0x2e,0x64,0x65
000018  66204320          DCB      0x66,0x20,0x43,0x20
00001c  20202020          DCB      0x20,0x20,0x20,0x20
000020  00                DCB      0x00
                  TempFahrenheit_Display
000021  20202020          DCB      0x20,0x20,0x20,0x20
000025  202b6162          DCB      0x20,0x2b,0x61,0x62
000029  632e6465          DCB      0x63,0x2e,0x64,0x65
00002d  66204620          DCB      0x66,0x20,0x46,0x20
000031  20202020          DCB      0x20,0x20,0x20,0x20
000035  00                DCB      0x00

⌨️ 快捷键说明

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