车载温度+GPS程序STC12单片机芯片解密
- 芯片解密MCU: STC12C5A60S2
- 晶振: 22.1184MHz
- A_OLED: 0.96寸 128*64
- LCD SCL : P0^6;
- LCD SDA : P0^7;
- GPS : P1^2
- 温度:P1^5.6.7
- 芯片解密
- *******************************************************************************/
- #include "STC12C5A60S2.h"
- #include "reDefine.h"
- #include "A_oled.h"
- #include "B_oled.h"
- #include "GPS.h"
- #include "18b20.h"
- #include "bmp.h"
- bit gUpdateTempFlag = FALSE; // 将温度标志设置为“假”
- void Timer1_Init(void); //定时1毫秒@22.1184MHz
- //****************************************************
- // 主函数 ***
- //****************************************************
- void main()
- {
- //unsigned long t;
-
- Uart2_Init(); //串口2初始化
- A_OLED_Init(); //初始化A_OLED
- A_OLED_Clear(); //清屏
- B_OLED_Init(); //初始化B_OLED
- B_OLED_Clear(); //清屏
-
-
-
- A_OLED_DrawBMP(0,0,132,8,BMP2); // 显示 福特的 logo
- B_OLED_DrawBMP(0,0,132,8,BMP5); // 显示 福特的 进无止境
- delay_ms(3000);
- B_delay_ms(3000);
- A_OLED_Clear(); //清屏
- B_OLED_Clear(); //清屏
-
-
- Timer1_Init(); // 定时器设置初始化
-
- A_OLED_DrawBMP(0,0,128,8,BMP1); // 显示 温度LOGO
- A_OLED_ShowString(0,0,"....The Temp....",8); // 显示温度屏的屏头
- B_OLED_DrawBMP(4,0,132,8,BMP3); // 显示 GPS-LOGO
- B_OLED_ShowString(0,0,"....The GPS....",8); // 显示GPS屏的屏头
- while(1) // 主循环开始
- {
-
- //for(t=0;t<600000;t++) /***** 温度 部分******/
- //{
- if (gUpdateTempFlag) // 如果温度标志为 “真”,开始执行温度读取操作
- {
- gUpdateTempFlag = FALSE; // 将温度标志设置为“假” ( 0 )复位
-
- datapros(Ds18b20ReadTemp()); //温度数据处理函数
- dataprosN(Ds18b20ReadTempN()); //温度数据处理函数
- dataprosS(Ds18b20ReadTempS()); //温度数据处理函数
-
- A_OLED_ShowString(3,2,"N:",16); //(2:从第几列开始 ,6:从6页开始, 16:占用2页空间显示(32:占用1页空间显示) )
- A_OLED_ShowString(3,4,"W:",16);
- A_OLED_ShowString(3,6,"S:",16);
-
- }
- //}
-
- //for(t=0;t<1000000;t++) /***** GPS 部分*****/
- //{
- if ((gIsRecvGNRMC) || (gIsRecvGNZDA)) // 只要其中一条语句接受完成就执行
-
- {
- GPS_JieXi();
- }
-
- //}
- }
- }

芯片解密