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

📄 tsensor.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000044  461a              MOV      r2,r3
000046  21be              MOVS     r1,#0xbe
000048  2096              MOVS     r0,#0x96
00004a  f7fffffe          BL       LCD_SetDisplayWindow
;;;625     
;;;626        /* Display the Thermometer icon */
;;;627        LCD_NORDisplay(TSENSOR);
00004e  4879              LDR      r0,|L9.564|
000050  f7fffffe          BL       LCD_NORDisplay
;;;628    
;;;629        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000054  2101              MOVS     r1,#1
000056  4630              MOV      r0,r6
000058  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;630        /* Disable LCD Window mode */
;;;631        LCD_WindowModeDisable();
00005c  f7fffffe          BL       LCD_WindowModeDisable
;;;632    
;;;633        /* Set the Back Color */
;;;634        LCD_SetBackColor(Red);
000060  f44f4078          MOV      r0,#0xf800
000064  f7fffffe          BL       LCD_SetBackColor
;;;635        /* Set the Text Color */
;;;636        LCD_SetTextColor(White);
000068  4620              MOV      r0,r4
00006a  f7fffffe          BL       LCD_SetTextColor
;;;637    
;;;638        LCD_DisplayStringLine(Line2, "     Temperature    ");
00006e  a172              ADR      r1,|L9.568|
000070  2030              MOVS     r0,#0x30
000072  f7fffffe          BL       LCD_DisplayStringLine
;;;639    
;;;640        /* Set the Back Color */
;;;641        LCD_SetBackColor(Blue);
000076  201f              MOVS     r0,#0x1f
000078  f7fffffe          BL       LCD_SetBackColor
;;;642        /* Set the Text Color */
;;;643        LCD_SetTextColor(Green);
00007c  f44f60fc          MOV      r0,#0x7e0
000080  f7fffffe          BL       LCD_SetTextColor
;;;644    
;;;645        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
000084  2100              MOVS     r1,#0
000086  4630              MOV      r0,r6
000088  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;646    
;;;647        /* Wait until no key is pressed */
;;;648        while(ReadKey() != NOKEY)
;;;649        {
;;;650        }
;;;651        
;;;652        /* Wait until a key is beiing pressed */
;;;653        while(pressedkey == NOKEY)
;;;654        {
;;;655          /* Initialize the Temperature Sensor */
;;;656          I2C_LM75_Init();
;;;657    
;;;658          /* Get double of Temperature value */
;;;659          TempCelsius_Value = I2C_LM75_Temp_Read();
00008c  f8dfb1c0          LDR      r11,|L9.592|
;;;660    
;;;661    	  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
;;;662    
;;;663          if(TempCelsius_Value <= 1023)
;;;664          {
;;;665            /* Positive temperature measured */
;;;666            TempCelsius_Display[5] = '+';
000090  f10b040c          ADD      r4,r11,#0xc
;;;667            TempFahrenheit_Display[5] = '+'; 
000094  f1040815          ADD      r8,r4,#0x15
                  |L9.152|
000098  f7fffffe          BL       ReadKey
00009c  2800              CMP      r0,#0                 ;648
00009e  d1fb              BNE      |L9.152|
0000a0  46b2              MOV      r10,r6                ;609
;;;668          }
;;;669          else
;;;670          {
;;;671            /* Negative temperature measured */
;;;672            TempCelsius_Display[5] = '-'; 
;;;673            TempFahrenheit_Display[5] = '-'; 
;;;674            /* Remove temperature value sign */
;;;675            TempCelsius_Value = 0x800 - TempCelsius_Value;
;;;676          }
;;;677    
;;;678          /* Calculate temperature digits in 癈 */
;;;679          Temp_Decimal = ((TempCelsius_Value & 7) * 1000 / 8);
;;;680          TempCelsius_Display[10] = (Temp_Decimal / 100) + 0x30;
;;;681          TempCelsius_Display[11] = ((Temp_Decimal % 100) / 10) + 0x30;
;;;682          TempCelsius_Display[12] = ((Temp_Decimal % 100) % 10) + 0x30;
;;;683          TempCelsius_Value >>= 3;
;;;684          TempCelsius_Display[6] = (TempCelsius_Value / 100) + 0x30;
;;;685          TempCelsius_Display[7] = ((TempCelsius_Value % 100) / 10) + 0x30;
;;;686          TempCelsius_Display[8] = ((TempCelsius_Value % 100) % 10) + 0x30;
;;;687    
;;;688          /* Convert temperature 癈 to Fahrenheit */
;;;689          Temp_Value_Fahrenheit = ((9 * ((TempCelsius_Value * 1000) + Temp_Decimal)) / 5) + 32000;
;;;690    
;;;691          /* Calculate temperature digits in 癋 */
;;;692          TempFahrenheit_Display[6] = (Temp_Value_Fahrenheit / 100000) + 0x30;
;;;693          TempFahrenheit_Display[7] = ((Temp_Value_Fahrenheit % 100000) /10000) + 0x30;
;;;694          TempFahrenheit_Display[8] = ((Temp_Value_Fahrenheit % 100000) %10000/1000) + 0x30;
;;;695          TempFahrenheit_Display[10] = ((((Temp_Value_Fahrenheit % 100000) %10000) %1000) /100) + 0x30;
;;;696          TempFahrenheit_Display[11] = (((((Temp_Value_Fahrenheit % 100000) %10000) %1000) %100) /10) + 0x30;
;;;697          TempFahrenheit_Display[12] = (((((Temp_Value_Fahrenheit % 100000) %10000) %1000) %100) %10) + 0x30;
;;;698    
;;;699          /* Display Fahrenheit value on LCD */
;;;700          for(i = 0; i < 20; i++)
;;;701          {
;;;702            LCD_DisplayChar(Line7, (319 - (16 * i)), TempCelsius_Display[i]);
;;;703            LCD_DisplayChar(Line8, (319 - (16 * i)), TempFahrenheit_Display[i]);
;;;704          }
;;;705          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, DISABLE);
;;;706          pressedkey = ReadKey(); 
0000a2  e0a2              B        |L9.490|
                  |L9.164|
0000a4  f7fffffe          BL       I2C_LM75_Init
0000a8  f7fffffe          BL       I2C_LM75_Temp_Read
0000ac  f8cb0004          STR      r0,[r11,#4]           ;661  ; TempCelsius_Value
0000b0  465d              MOV      r5,r11                ;659
0000b2  2101              MOVS     r1,#1                 ;661
0000b4  4650              MOV      r0,r10                ;661
0000b6  f7fffffe          BL       RCC_AHBPeriphClockCmd
0000ba  6868              LDR      r0,[r5,#4]            ;663  ; TempCelsius_Value
0000bc  f5b06f80          CMP      r0,#0x400             ;663
0000c0  d204              BCS      |L9.204|
0000c2  202b              MOVS     r0,#0x2b              ;666
0000c4  7160              STRB     r0,[r4,#5]            ;666
0000c6  f8880005          STRB     r0,[r8,#5]            ;667
0000ca  e006              B        |L9.218|
                  |L9.204|
0000cc  222d              MOVS     r2,#0x2d              ;672
0000ce  7162              STRB     r2,[r4,#5]            ;672
0000d0  f8882005          STRB     r2,[r8,#5]            ;673
0000d4  f5c06000          RSB      r0,r0,#0x800          ;675
0000d8  6068              STR      r0,[r5,#4]            ;675  ; TempCelsius_Value
                  |L9.218|
0000da  f8d5c004          LDR      r12,[r5,#4]           ;679  ; TempCelsius_Value
0000de  f44f717a          MOV      r1,#0x3e8             ;679
0000e2  f00c0007          AND      r0,r12,#7             ;679
0000e6  4348              MULS     r0,r1,r0              ;679
0000e8  08c0              LSRS     r0,r0,#3              ;679
0000ea  2264              MOVS     r2,#0x64              ;680
0000ec  fbb0f1f2          UDIV     r1,r0,r2              ;680
0000f0  f1010330          ADD      r3,r1,#0x30           ;680
0000f4  6028              STR      r0,[r5,#0]            ;680  ; Temp_Decimal
0000f6  72a3              STRB     r3,[r4,#0xa]          ;680
0000f8  fb020611          MLS      r6,r2,r1,r0           ;681
0000fc  230a              MOVS     r3,#0xa               ;681
0000fe  fbb6f1f3          UDIV     r1,r6,r3              ;681
000102  f1010730          ADD      r7,r1,#0x30           ;681
000106  fb036111          MLS      r1,r3,r1,r6           ;682
00010a  72e7              STRB     r7,[r4,#0xb]          ;681
00010c  3130              ADDS     r1,r1,#0x30           ;682
00010e  7321              STRB     r1,[r4,#0xc]          ;682
000110  ea4f01dc          LSR      r1,r12,#3             ;683
000114  fbb1f6f2          UDIV     r6,r1,r2              ;684
000118  f1060730          ADD      r7,r6,#0x30           ;684
00011c  6069              STR      r1,[r5,#4]            ;684  ; TempCelsius_Value
00011e  fb021616          MLS      r6,r2,r6,r1           ;685
000122  71a7              STRB     r7,[r4,#6]            ;684
000124  e000              B        |L9.296|
                  |L9.294|
000126  e064              B        |L9.498|
                  |L9.296|
000128  fbb6f7f3          UDIV     r7,r6,r3              ;685
00012c  fb036617          MLS      r6,r3,r7,r6           ;686
000130  f1070c30          ADD      r12,r7,#0x30          ;685
000134  f884c007          STRB     r12,[r4,#7]           ;685
000138  3630              ADDS     r6,r6,#0x30           ;686
00013a  7226              STRB     r6,[r4,#8]            ;686
00013c  eb010641          ADD      r6,r1,r1,LSL #1       ;689
000140  ebc611c1          RSB      r1,r6,r1,LSL #7       ;689
000144  eb0000c1          ADD      r0,r0,r1,LSL #3       ;689
000148  eb0000c0          ADD      r0,r0,r0,LSL #3       ;689
00014c  2105              MOVS     r1,#5                 ;689
00014e  fbb0f0f1          UDIV     r0,r0,r1              ;689
000152  f50040fa          ADD      r0,r0,#0x7d00         ;689
000156  4f3f              LDR      r7,|L9.596|
000158  60a8              STR      r0,[r5,#8]            ;692  ; Temp_Value_Fahrenheit
00015a  fbb0f1f7          UDIV     r1,r0,r7              ;692
00015e  f1010630          ADD      r6,r1,#0x30           ;692
000162  fb070111          MLS      r1,r7,r1,r0           ;693
000166  f2427710          MOV      r7,#0x2710            ;693
00016a  fbb1f0f7          UDIV     r0,r1,r7              ;693
00016e  f8886006          STRB     r6,[r8,#6]            ;692
000172  fb071110          MLS      r1,r7,r0,r1           ;694
000176  f1000630          ADD      r6,r0,#0x30           ;693
00017a  f44f777a          MOV      r7,#0x3e8             ;694
00017e  fbb1f0f7          UDIV     r0,r1,r7              ;694
000182  f8886007          STRB     r6,[r8,#7]            ;693
000186  f1000630          ADD      r6,r0,#0x30           ;694
00018a  fb071010          MLS      r0,r7,r0,r1           ;695
00018e  fbb0f1f2          UDIV     r1,r0,r2              ;695
000192  f8886008          STRB     r6,[r8,#8]            ;694
000196  f1010630          ADD      r6,r1,#0x30           ;695
00019a  fb020011          MLS      r0,r2,r1,r0           ;696
00019e  fbb0f1f3          UDIV     r1,r0,r3              ;696
0001a2  fb030011          MLS      r0,r3,r1,r0           ;697
0001a6  f888600a          STRB     r6,[r8,#0xa]          ;695
0001aa  4645              MOV      r5,r8                 ;692
0001ac  f1010230          ADD      r2,r1,#0x30           ;696
0001b0  3030              ADDS     r0,r0,#0x30           ;697
0001b2  72ea              STRB     r2,[r5,#0xb]          ;696
0001b4  7328              STRB     r0,[r5,#0xc]          ;697
0001b6  2600              MOVS     r6,#0                 ;700
0001b8  f240193f          MOV      r9,#0x13f             ;702
                  |L9.444|
0001bc  4271              RSBS     r1,r6,#0              ;702
0001be  eb091701          ADD      r7,r9,r1,LSL #4       ;702
0001c2  5da2              LDRB     r2,[r4,r6]            ;702
0001c4  b2b9              UXTH     r1,r7                 ;702
0001c6  20a8              MOVS     r0,#0xa8              ;702
0001c8  f7fffffe          BL       LCD_DisplayChar
0001cc  5daa              LDRB     r2,[r5,r6]            ;703
0001ce  b2b9              UXTH     r1,r7                 ;703
0001d0  20c0              MOVS     r0,#0xc0              ;703
0001d2  f7fffffe          BL       LCD_DisplayChar
0001d6  1c76              ADDS     r6,r6,#1              ;700
0001d8  2e14              CMP      r6,#0x14              ;700
0001da  d3ef              BCC      |L9.444|
0001dc  2100              MOVS     r1,#0                 ;705
0001de  4650              MOV      r0,r10                ;705
0001e0  f7fffffe          BL       RCC_AHBPeriphClockCmd
0001e4  f7fffffe          BL       ReadKey
0001e8  4605              MOV      r5,r0
                  |L9.490|
0001ea  2d00              CMP      r5,#0                 ;653
0001ec  f43faf5a          BEQ      |L9.164|
0001f0  e010              B        |L9.532|
                  |L9.498|
;;;707        }
;;;708      }
;;;709      else
;;;710      {
;;;711        LCD_Clear(White);
0001f2  f64f70ff          MOV      r0,#0xffff
0001f6  f7fffffe          BL       LCD_Clear
;;;712        LCD_DisplayStringLine(Line2, " No TSENSOR Present ");
0001fa  a117              ADR      r1,|L9.600|
0001fc  2030              MOVS     r0,#0x30
0001fe  f7fffffe          BL       LCD_DisplayStringLine
;;;713        LCD_DisplayStringLine(Line3, "Exit:  Push JoyStick");
000202  a11b              ADR      r1,|L9.624|
000204  2048              MOVS     r0,#0x48
000206  f7fffffe          BL       LCD_DisplayStringLine
;;;714        while(ReadKey() == NOKEY)
00020a  bf00              NOP      
                  |L9.524|
00020c  f7fffffe          BL       ReadKey
000210  2800              CMP      r0,#0
000212  d0fb              BEQ      |L9.524|
                  |L9.532|
;;;715        {
;;;716        }
;;;717      }
;;;718      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000214  2101              MOVS     r1,#1
000216  4650              MOV      r0,r10
000218  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;719      LCD_Clear(White);
00021c  f64f70ff          MOV      r0,#0xffff
000220  f7fffffe          BL       LCD_Clear
;;;720      /* Display menu */
;;;721      DisplayMenu();
000224  f7fffffe          BL       DisplayMenu
;;;722      /* Enable the JoyStick interrupt */
;;;723      IntExtOnOffConfig(ENABLE);   
000228  e8bd5ff0          POP      {r4-r12,lr}
00022c  2001              MOVS     r0,#1
00022e  f7ffbffe          B.W      IntExtOnOffConfig
;;;724    }
;;;725    
                          ENDP

000232  0000              DCW      0x0000
                  |L9.564|
                          DCD      0x641f7d16
                  |L9.568|
000238  202020202054656d70657261747572652020202000        DCB      "     Temperature    ",0
00024d  00                DCB      0
00024e  00                DCB      0
00024f  00                DCB      0
                  |L9.592|
                          DCD      ||.data||
                  |L9.596|
                          DCD      0x000186a0
                  |L9.600|
000258  204e6f205453454e534f522050726573656e742000        DCB      " No TSENSOR Present ",0
00026d  00                DCB      0
00026e  00                DCB      0
00026f  00                DCB      0
                  |L9.624|
000270  457869743a202050757368204a6f79537469636b00        DCB      "Exit:  Push JoyStick",0
000285  00                DCB      0
000286  00                DCB      0
000287  00                DCB      0

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

                  Temp_Decimal
                          DCD      0x00000000
                  TempCelsius_Value
                          DCD      0x00000000
                  Temp_Value_Fahrenheit
                          DCD      0x000

⌨️ 快捷键说明

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