|
顯示為洛基亞5110
單片機(jī)源程序如下:
- #include "delay.h"
- #include "LCD5110.h"
- #include "ds18b20.h"
- #include "sys.h"
- #include "timer.h"
- #include "exti.h"
- // vu8 i = 0;
- u8 str[20];
- s16 temperature ; //溫度
- int main(void)
- {
- RCC_Configuration(); //系統(tǒng)時(shí)鐘配置
- GPIO_Configuration();
- delay_init() ;
- NVIC_Configuration(); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
-
- TIM3_Int_Init(4999,7199);//10Khz的計(jì)數(shù)頻率,計(jì)數(shù)到5000為500ms
- /*
- // 配置外部中斷
- KEY_Init();
- EXTIX_Init();
- */
- SPI2_Config();
- DMA_SPI_Config();
-
- LCD_CLK_H();
- LCD_VCC_H();
- LCD_GND_L();
- LCD_BGL_L(); //背光燈開啟
-
- delay_ms(10); //等待
- LCD_Init(); //初始化液晶
- LCD_Clear(); //清屏
-
- while(DS18B20_Init()) //DS18B20初始化
- {
- LCD_Write_EnStr(0,0,"DS18B20 Error");
- }
- LCD_Write_EnStr(2,2,"DS18B20 OK");
- delay_ms(1000);
- delay_ms(1000);
- LCD_Write_EnStr(0,0,"*************");
- LCD_Write_EnStr(0,1," The current ");
- LCD_Write_EnStr(0,2," temperature");
- LCD_Write_EnStr(6,3,"is");
- LCD_Write_EnStr(0,5,"*************");
-
- while(1)
- {
- if(temperature<0)
- {
- LCD_Write_EnStr(2,4,"-"); //顯示負(fù)號(hào)
- temperature=-temperature; //轉(zhuǎn)為正數(shù)
- }else LCD_Write_EnStr(0,4," "); //去掉負(fù)號(hào)
- LCD_Write_EnStr(4,4,str);
- }
- }
- //定時(shí)器3中斷服務(wù)程序
- //每500ms讀取一次溫度
- void TIM3_IRQHandler(void) //TIM3中斷
- {
-
- if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查TIM3更新中斷發(fā)生與否
- {
- temperature = DS18B20_Get_Temp(); //讀取溫度
- num_to_str( temperature,str); //將溫度轉(zhuǎn)換為ASC值
- TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中斷標(biāo)志
- }
- }
- /*
- void EXTI3_IRQHandler(void)
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
測溫.rar
(308.57 KB, 下載次數(shù): 77)
2017-6-24 23:09 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|