ILI9341tft屏幕的單片機驅動給廣大網友做參考,由于時間寫的參促,難免有錯希望大家指出.
單片機彩屏版萬年歷仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
rili.jpg (157.25 KB, 下載次數: 65)
下載附件
2018-1-21 14:31 上傳
rili1.jpg (120.69 KB, 下載次數: 55)
下載附件
2018-1-21 14:31 上傳
0.png (62 KB, 下載次數: 70)
下載附件
2018-1-21 19:27 上傳
單片機源程序如下(主程序):
- #include <REGX55.H>
- #include "TFT.H"
- #include "TFT_GDI.H"
- #include "DS3231.h" //如果不測試時間請注銷它
- void Travel_time();
- void Display_stc(void);
- void Display_dyn_time(void);//顯示需更新的界面
- void Display_dyn_rili(void);//顯示需更新的界面
- //=========================================================================
- //本程序用來學習彩屏應用,以及時鐘寫法,學習鐘能深入了解51編程,讓你展握編輯思想.
- //時間調整程序,留給各位網友,發揮自己想象
- //如果有能力,可以采用GPS調時.
- //=========================================================================
- void main()
- {
- //寫時間為了測試用,
- IIC_single_byte_write(0x00,0x54);
- IIC_single_byte_write(0x01,0x59);
- IIC_single_byte_write(0x02,0x23);
-
- IIC_single_byte_write(0x04,0x15);
- IIC_single_byte_write(0x05,0x02);
- IIC_single_byte_write(0x06,0x18);
- //不用測試時間請注銷
- LCD_Init();
- Display_stc();
- Display_dyn_time();
- Display_dyn_rili();
-
- while(1)
- {
- Travel_time();
- }
- }
復制代碼 TFT_GDI.C
- #include "TFT.H"
- #include "TFT_GDI.H"
- void LcdPutStr(RECT rect,unsigned int color,unsigned int bkcolor,unsigned char* GB_font,unsigned int font_num)
- {//四個參數分別起啟地址X與Y,字體顏色,字體背景色,要顯示數字
- unsigned char i,j;
- LCD_SetArea(rect);
- LCD_WR_REG(0x2C);//寫儲存器命令
- for(i=0;i<font_num;i++)
- {
- for(j=8;j>0;j--)
- {
- if(1==(GB_font[i]>>j-1&0x01))//判斷字符位置是否有像素//--有
- {
- LcdWirteColorData(color);//寫入字體顏色
- }
- else //沒有
- {
- LcdWirteColorData(bkcolor);//沒有則寫入背景色
- }
- }
-
- }
- }
- void show816(unsigned int num_X, unsigned int num_Y,unsigned char* GB_font)
- {
- RECT rect;//屏顯示范圍
- num_Y=239-num_Y-15;//屏坐標轉換
- rect.top=num_X;
- rect.left=num_Y;
- rect.right=num_Y+15;
- rect.bottom=num_X+15;
- LcdPutStr(rect,0XF800,0XFfff,GB_font,16);
- }
- void show3216(unsigned int num_X, unsigned int num_Y,unsigned char* GB_font)
- {//調用該涵數,num_X最大不要超過224,num_Y不超304
- RECT rect;//屏顯示范圍
- num_Y=239-num_Y-15;//屏坐標轉換
- rect.top=num_X;
- rect.left=num_Y;
- rect.right=num_Y+15;
- rect.bottom=num_X+31;
- LcdPutStr(rect,0XF800,0XFfff,GB_font,32);
- }
- void show3264(unsigned int num_X, unsigned int num_Y,unsigned char* GB_font)
- {
- RECT rect;//屏顯示范圍
- num_Y=239-num_Y-63;//屏坐標轉換
- rect.top=num_X;
- rect.left=num_Y;
- rect.right=num_Y+63;
- rect.bottom=num_X+31;
- LcdPutStr(rect,0XF800,0XFfff,GB_font,255);
- }
復制代碼
DS3231.c單片機源程序如下:
所有資料51hei提供下載:
51萬年歷彩屏版.7z
(109.57 KB, 下載次數: 456)
2021-7-11 19:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|