找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5106|回復: 1
收起左側(cè)

stm32的漢字顯示實驗+溫度+圖形+倒計時按鍵

[復制鏈接]
ID:238402 發(fā)表于 2017-12-8 18:22 | 顯示全部樓層 |閱讀模式
大家可以參考采納

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "lcd.h"
  6. #include "key.h"
  7. #include "usmart.h"
  8. #include "malloc.h"  
  9. #include "MMC_SD.h"
  10. #include "ff.h"  
  11. #include "exfuns.h"
  12. #include "fontupd.h"
  13. #include "text.h"
  14. #include "ds18b20.h"   
  15. #include "timer.h"
  16. //ALIENTEK Mini STM32開發(fā)板范例代碼30

  17. int main(void)
  18. {
  19. //        delay_init();                     //延時函數(shù)初始化
  20. //        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級分組2
  21. //        LED_Init();                          //初始化與LED連接的硬件接口
  22. //        TIM3_Int_Init(4999,7199);//10Khz的計數(shù)頻率,計數(shù)到5000為500ms  
  23.          
  24.          
  25.   u8 a=60;
  26.         short temperature;           
  27.         u32 fontcnt;                  
  28.         u8 i,j;
  29.         u8 fontx[2];//gbk碼
  30.         u8 key,t;                        
  31.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級分組2
  32.         delay_init();                     //延時函數(shù)初始化         
  33.         uart_init(9600);                 //串口初始化為9600                        
  34.         LCD_Init();                        //初始化液晶
  35.         LED_Init();         //LED初始化                                                                                                                     
  36.         KEY_Init();                                //按鍵初始化                                                                                                                     
  37.         usmart_dev.init(72);        //usmart初始化        
  38.          mem_init();                                //初始化內(nèi)存池            
  39.          exfuns_init();                        //為fatfs相關(guān)變量申請內(nèi)存  
  40.   f_mount(fs[0],"0:",1);         //掛載SD卡
  41.          f_mount(fs[1],"1:",1);         //掛載FLASH.
  42.         DS18B20_Init();
  43.          
  44.         while(font_init())         //檢查字庫
  45.         {
  46. UPD:   
  47.                 LCD_Clear(WHITE);                           //清屏
  48.                  POINT_COLOR=RED;                        //設(shè)置字體為紅色                                
  49.                 LCD_ShowString(60,50,200,16,16,"mini STM32");
  50.                  key=update_font(20,110,16);//更新字庫
  51.                 while(key)//更新失敗               
  52.                 {                                          
  53.                         LCD_ShowString(60,110,200,16,16,"Font Update Failed!");
  54.                         delay_ms(200);
  55.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  56.                         delay_ms(200);                       
  57.                 }                  
  58.                 LCD_ShowString(60,110,200,16,16,"Font Update Success!");
  59.                 delay_ms(1500);        
  60.                 LCD_Clear(WHITE);//清屏               
  61.         }  
  62.         POINT_COLOR=BLUE;      
  63.         Show_Str(60,50,200,16,"2017年5月4日",16,0);                                             

  64.          while(DS18B20_Init())        //DS18B20初始化        
  65.         {
  66.                 LCD_ShowString(60,70,200,16,16,"DS18B20 Error");
  67.                 delay_ms(200);
  68.                 LCD_Fill(60,130,239,130+16,WHITE);
  69.                  delay_ms(200);
  70.         }                                                                  

  71.         POINT_COLOR=BLUE;//設(shè)置字體為藍色
  72.         
  73.          LCD_ShowString(60,90,200,16,16,"Temp:   . C");         
  74.         LCD_Fill(201,279,219,300,BLUE);
  75.   LCD_Draw_Circle(120,200,80);//畫圓
  76.         LCD_Draw_Circle(210,290,15);//顯示按鍵圓圈
  77.   LCD_DrawLine(120,200,120,130);//顯示分針
  78.         LCD_DrawLine(120,200,130,150);//顯示時針
  79.         LCD_DrawLine(120,266,115,274);
  80.         LCD_DrawLine(115,274,125,274);
  81.         LCD_DrawLine(120,266,125,274);//顯示6的三角形
  82.         LCD_DrawLine(47,197,42,204);
  83.         LCD_DrawLine(42,204,52,204);
  84.         LCD_DrawLine(47,197,52,204);//顯示9的三角形
  85.         LCD_DrawLine(120,126,115,135);
  86.         LCD_DrawLine(115,135,125,135);
  87.         LCD_DrawLine(125,135,120,126);//顯示12的三角形
  88.         LCD_DrawLine(193,197,188,204);
  89.         LCD_DrawLine(188,204,198,204);
  90.   LCD_DrawLine(198,204,193,197); //顯示3的三角形
  91.         LCD_ShowString(100,230,200,16,16,"00:  ");
  92.         POINT_COLOR=RED;
  93.         LCD_DrawLine(120,200,100,123);//顯示秒針
  94.         LCD_DrawRectangle(80,220,160,260);//畫矩形
  95.         while(1)
  96.         {

  97.                                  if(t%10==0)//每100ms讀取一次
  98.                 {                                                                          
  99.                         temperature=DS18B20_Get_Temp();        
  100.                         if(temperature<0)
  101.                         {
  102.                                 LCD_ShowChar(60+40,150,'-',16,0);                        //顯示負號
  103.                                 temperature=-temperature;                                        //轉(zhuǎn)為正數(shù)
  104.                         }
  105.                         else
  106.                         POINT_COLOR=BLUE;
  107.                         LCD_ShowChar(60+40,90,' ',16,0);                        //去掉負號
  108.                         LCD_ShowNum(60+40+8,90,temperature/10,2,16);        //顯示正數(shù)部分            
  109.                    LCD_ShowNum(60+40+32,90,temperature%10,1,16);        //顯示小數(shù)部分                    
  110.                 }                                   
  111.                  delay_ms(10);
  112.                 t++;
  113.                 if(t==20)
  114.                 {
  115.                         t=0;
  116.                         LED0=!LED0;
  117.                 }
  118. ……………………

  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
漢字顯示實驗+溫度+圖形+倒計時按鍵.rar (993.61 KB, 下載次數(shù): 91)


回復

使用道具 舉報

ID:265406 發(fā)表于 2017-12-24 11:47 | 顯示全部樓層
親,你這個程序運行之后只顯示了剛開始的兩排,有解決辦法嘛?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表