找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2865|回復(fù): 7
收起左側(cè)

T6963的240128時(shí)鐘運(yùn)行不正常問題請(qǐng)教各位 附單片機(jī)程序

[復(fù)制鏈接]
ID:600695 發(fā)表于 2021-3-14 17:58 | 顯示全部樓層 |閱讀模式
看大家做的數(shù)碼時(shí)鐘很漂亮,剛好有一塊閑置的240128液晶屏,想著利用起來,然后找屏的資料,廠家什么的都找不到,反正是T6963的,應(yīng)該差不多,就按照壇友華仔的24064程序改了,苦于完全不懂編程,只有邊改邊仿真測(cè)試,終于仿真通過了,顯示也正常,然后燒錄進(jìn)STC89C52RC運(yùn)行是可以,可是字形不對(duì),實(shí)在不知道那錯(cuò)了,發(fā)出來求大伙指點(diǎn)下,已經(jīng)研究了一個(gè)星期了,沒有頭緒
背面.jpg

標(biāo)簽.jpg

芯片.jpg


接線.jpg

顯示.jpg

字符設(shè)定是32*64的,基本能橫向鋪滿屏幕,但是運(yùn)行出來,后面多了小時(shí)位的20和:,而且部分內(nèi)容顯示不全,比如上面的年月日內(nèi)容都有缺畫
和重復(fù),
仿真01.jpg

這是仿真出來的,感覺很好呀,差距怎么那么大呢
源程序不會(huì)粘先放個(gè)壓縮把 24064.rar (11.96 KB, 下載次數(shù): 32)
回復(fù)

使用道具 舉報(bào)

ID:600695 發(fā)表于 2021-3-14 18:00 | 顯示全部樓層
這樣貼上來行不行????
#include <reg52.h>
//#include <intrins.h>
#include <math.h>

//#define nop()  _nop_()      
#define uchar unsigned char
#define uint unsigned int
      
//1. FG:液晶邊框引出端,應(yīng)該接地
//2. VSS:邏輯電源地,接電源的負(fù)極
//3. VDD:邏輯電源正,接電源的正極
//4. V0:LCD驅(qū)動(dòng)電壓輸入端,可通過滑動(dòng)變阻器接到電源正極上,改變電阻大小來改變液晶對(duì)比度
sbit LCDWR =P3^1;//5. /WR:寫數(shù)據(jù)信號(hào),上升沿鎖存      
sbit LCDRD =P3^2;//6. /RD:讀數(shù)據(jù)信號(hào),上升沿鎖存      
sbit LCDCE =P3^4;//7. /CE:LCD選通信號(hào),低電平有效      
sbit LCDCD =P3^3;//8. C/D:命令/數(shù)據(jù):高電平為命令,低電平為數(shù)據(jù)      
//9.:暫時(shí)沒用
sbit LCDRST =P3^5;//10. /RST:復(fù)位信號(hào),低電平有效
#define lcd_bus        P0//11-18. DB0-DB7 :8位數(shù)據(jù)總線
//19. FS:字體選擇,H:6X8點(diǎn),L:8X8點(diǎn)
//20. VEE
//21. LEDA:背光電源正極
//22. LEDK:背光電源負(fù)極

sbit DQ18B20=P1^3;//ds18b20與單片機(jī)連接口

sbit acc0=ACC^0;             //移位時(shí)的第0位
sbit acc7=ACC^7;             //移位時(shí)用的第7位

sbit DATA1302=P1^5;   //時(shí)鐘數(shù)據(jù)接口
sbit RST1302=P1^6;     
sbit SCLK1302=P1^4;   
sbit menu=P3^0;              //菜單  
sbit add=P3^1;               //加一
sbit dec=P3^2;               //減一

uchar second,minute,hour,day,month,year,week,count=0;     
uchar ReadValue,num,time;     
uint tvalue;//溫度值
uchar tflag;
                           
//----  LCD PIXEL SETTING  ------------------------------------------------------
#define PIXELH 128
#define PIXELW 240

//-------------------------------------------------------------------------------
                          
unsigned char code tab1[]=//16x16的漢字或者圖片[取模方式]從左到右從上到下 :橫向8點(diǎn)左高位
{  
0x08,0x00,0x0F,0xFC,0x10,0x80,0x10,0x80,0x20,0x80,0x4F,0xF8,0x88,0x80,0x08,0x80,
0x08,0x80,0x08,0x80,0xFF,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,//年",0
0x07,0xF0,0x04,0x10,0x04,0x10,0x04,0x10,0x07,0xF0,0x04,0x10,0x04,0x10,0x04,0x10,
0x07,0xF0,0x04,0x10,0x08,0x10,0x08,0x10,0x10,0x10,0x20,0x50,0x40,0x20,0x00,0x00,//月",1
0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00,0x00,0x00,0x00,//日",2
0x00,0x00,0x1F,0xF8,0x10,0x08,0x1F,0xF8,0x10,0x08,0x1F,0xF8,0x01,0x00,0x11,0x00,
0x1F,0xFC,0x21,0x00,0x21,0x00,0x4F,0xF8,0x01,0x00,0x01,0x00,0x7F,0xFE,0x00,0x00,//星",3

0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,0x3E,0x44,0x22,0x7C,0x3E,0x44,0x22,0x44,
0x22,0x44,0xFF,0x7C,0x00,0x44,0x24,0x84,0x22,0x84,0x43,0x14,0x81,0x08,0x00,0x00,//期",4

0x01,0xC0,0x02,0x20,0x02,0xE0,0x02,0x20,0x02,0xE0,0x02,0x20,0x02,0xE0,0x02,0x20,
0x02,0xE0,0x02,0x20,0x0F,0xF8,0x0F,0xF8,0x07,0xF0,0x03,0xE0,0x01,0xC0,0x00,0x00,//"溫度計(jì)符號(hào)",5

0x00,0x00,0x00,0x00,0x78,0x00,0x48,0xFC,0x49,0x04,0x79,0x04,0x02,0x00,0x02,0x00,
0x02,0x00,0x02,0x00,0x02,0x04,0x01,0x04,0x01,0x08,0x00,0xF0,0x00,0x00,0x00,0x00,//"℃,6

0x00,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x05,0xC0,0x04,0x40,0x05,0xC0,0x04,0x40,
0x05,0xC0,0x04,0x40,0x05,0xC0,0x04,0x40,0x0F,0xE0,0x07,0xC0,0x03,0x80,0x01,0x00,//溫度計(jì)的圖片,7

};

unsigned char code tab2[]=//8x16的字符
{
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,//0",0
0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,//1",1
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x04,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,//2",2
0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x02,0x42,0x44,0x38,0x00,0x00,//3",3
0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x24,0x44,0x44,0x7E,0x04,0x04,0x1E,0x00,0x00,//4",4
0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x58,0x64,0x02,0x02,0x42,0x44,0x38,0x00,0x00,//5",5
0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x00,0x00,//6",6
0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,//7",7
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,//8",8
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x00,0x00,//9",9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,//.",10
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//負(fù)號(hào),11
0x00,0x00,0x00,0x00,0x10,0x10,0x10,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,//正號(hào),12
};
unsigned char code tab3[]=//32x64的手繪數(shù)字(3264)
{
0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x07,0xFE,0x7F,0xC0,0x07,0xFE,0x7F,0xC0,0x0F,0xFE,0x7F,0xC0,0x0F,0xFE,
0x7F,0xC0,0x1B,0xFE,0x7F,0xC0,0x1B,0xFE,0x7F,0xC0,0x33,0xFE,0x7F,0xC0,0x33,0xFE,
0x7F,0xC0,0x63,0xFE,0x7F,0xC0,0x63,0xFE,0x7F,0xC0,0xC3,0xFE,0x7F,0xC0,0xC3,0xFE,
0x7F,0xC1,0x83,0xFE,0x7F,0xC1,0x83,0xFE,0x7F,0xC3,0x03,0xFE,0x7F,0xC3,0x03,0xFE,
0x7F,0xC6,0x03,0xFE,0x7F,0xC6,0x03,0xFE,0x7F,0xCC,0x03,0xFE,0x7F,0xCC,0x03,0xFE,
0x7F,0xD8,0x03,0xFE,0x7F,0xD8,0x03,0xFE,0x7F,0xF0,0x03,0xFE,0x7F,0xF0,0x03,0xFE,
0x7F,0xE0,0x03,0xFE,0x7F,0xE0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00, //0

0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0xFF,0xFC,0x00,
0x0F,0xFF,0xFC,0x00,0x0F,0xFF,0xFC,0x00,0x0F,0xFF,0xFC,0x00,0x0F,0xFF,0xFC,0x00,
0x0F,0xFF,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,
0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,//:\字模\32-64用\1.BMP

0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x00,0x00,0x07,0xFE,0x00,0x00,0x0F,0xFE,0x00,0x00,0x1F,0xFE,
0x00,0x00,0x3F,0xFE,0x00,0x00,0x7F,0xFE,0x00,0x00,0xFF,0xFC,0x00,0x01,0xFF,0xF8,
0x00,0x03,0xFF,0xF0,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xC0,0x00,0x1F,0xFF,0x80,
0x00,0x3F,0xFF,0x00,0x00,0x7F,0xFE,0x00,0x00,0xFF,0xFC,0x00,0x01,0xFF,0xF8,0x00,
0x03,0xFF,0xF0,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xC0,0x00,0x1F,0xFF,0x80,0x00,
0x3F,0xFF,0x00,0x00,0x7F,0xFE,0x00,0x00,0x7F,0xFC,0x00,0x00,0x7F,0xF8,0x00,0x00,
0x7F,0xF0,0x00,0x00,0x7F,0xE0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,//2


0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x07,0xFE,0x00,0x00,0x0F,0xFC,0x00,0xFF,0xFF,0xF8,
0x00,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xE0,0x00,0xFF,0xFF,0xF0,
0x00,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xF8,0x00,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xFE,
0x00,0x00,0x0F,0xFE,0x00,0x00,0x07,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,//3

0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,
0x00,0x00,0x7F,0xE0,0x00,0x00,0x7F,0xE0,0x00,0x00,0xFF,0xE0,0x00,0x00,0xFF,0xE0,
0x00,0x01,0xFF,0xE0,0x00,0x01,0xFF,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x03,0xFF,0xE0,
0x00,0x07,0xFF,0xE0,0x00,0x07,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,0x00,0x0F,0xFF,0xE0,
0x00,0x1F,0xFF,0xE0,0x00,0x1F,0xFF,0xE0,0x00,0x3F,0xFF,0xE0,0x00,0x3F,0xFF,0xE0,
0x00,0x7F,0xBF,0xE0,0x00,0x7F,0xBF,0xE0,0x00,0xFF,0x3F,0xE0,0x00,0xFF,0x3F,0xE0,
0x01,0xFE,0x3F,0xE0,0x01,0xFE,0x3F,0xE0,0x03,0xFC,0x3F,0xE0,0x03,0xFC,0x3F,0xE0,
0x07,0xF8,0x3F,0xE0,0x07,0xF8,0x3F,0xE0,0x0F,0xF0,0x3F,0xE0,0x0F,0xF0,0x3F,0xE0,
0x1F,0xE0,0x3F,0xE0,0x1F,0xE0,0x3F,0xE0,0x3F,0xC0,0x3F,0xE0,0x3F,0xC0,0x3F,0xE0,
0x7F,0x80,0x3F,0xE0,0x7F,0x80,0x3F,0xE0,0x7F,0x00,0x3F,0xE0,0x7F,0x00,0x3F,0xE0,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,
0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,
0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,
0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,//F:\字模\32-64用\4-1.BMP
                                                                                                                                                               
0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xCF,0xFF,0xC0,0x7F,0xDF,0xFF,0xE0,0x7F,0xFF,0xFF,0xF0,0x7F,0xFF,0xFF,0xF8,
0x7F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,//5

0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,
0x7F,0xDF,0xFF,0xC0,0x7F,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0xF0,0x7F,0xFF,0xFF,0xF8,
0x7F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,//6

0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x07,0xFC,0x00,0x00,0x07,0xFC,0x00,0x00,0x07,0xFC,
0x00,0x00,0x0F,0xF8,0x00,0x00,0x0F,0xF8,0x00,0x00,0x0F,0xF8,0x00,0x00,0x1F,0xF0,
0x00,0x00,0x1F,0xF0,0x00,0x00,0x1F,0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,
0x00,0x00,0x3F,0xE0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,
0x00,0x00,0xFF,0x80,0x00,0x00,0xFF,0x80,0x00,0x00,0xFF,0x80,0x00,0x01,0xFF,0x00,
0x00,0x01,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,
0x00,0x03,0xFE,0x00,0x00,0x07,0xFC,0x00,0x00,0x07,0xFC,0x00,0x00,0x07,0xFC,0x00,
0x00,0x0F,0xF8,0x00,0x00,0x0F,0xF8,0x00,0x00,0x0F,0xF8,0x00,0x00,0x1F,0xF0,0x00,
0x00,0x1F,0xF0,0x00,0x00,0x1F,0xF0,0x00,0x00,0x3F,0xE0,0x00,0x00,0x3F,0xE0,0x00,
0x00,0x3F,0xE0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,0x00,0x7F,0xC0,0x00,
0x00,0xFF,0x80,0x00,0x00,0xFF,0x80,0x00,0x00,0xFF,0x80,0x00,0x01,0xFF,0x00,0x00,
0x01,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,
0x03,0xFE,0x00,0x00,0x07,0xFC,0x00,0x00,0x07,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,//7

0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFC,
0x3F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xF0,0x0F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xF0,
0x0F,0xFF,0xFF,0xF8,0x1F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00, //8

0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,0xE0,0x0F,0xFF,0xFF,0xF0,
0x1F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xE0,0x07,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x3F,0xFF,0xFF,0xFE,0x1F,0xFF,0xFF,0xFE,0x0F,0xFF,0xFF,0xFE,0x07,0xFF,0xFF,0xFE,
0x03,0xFF,0xFB,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,
0x00,0x00,0x03,0xFE,0x00,0x00,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,0x7F,0xC0,0x03,0xFE,
0x7F,0xE0,0x07,0xFE,0x7F,0xF0,0x0F,0xFE,0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFE,0x3F,0xFF,0xFF,0xFC,0x1F,0xFF,0xFF,0xF8,
0x0F,0xFF,0xFF,0xF0,0x07,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,//9



};
uchar code tab4[]= //8x64的字符:
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x7E,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7E,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x7E,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//
};
uchar code tab5[]= //16x16,星期用
{
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//一",0
        0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,//二",1
        0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,//三",2
        0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,
        0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,//四",3
        0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0,
        0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00,//五",4
        0x04,0x00,0x03,0x00,0x01,0x80,0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x04,0x80,
        0x06,0x40,0x04,0x20,0x08,0x10,0x08,0x18,0x10,0x0C,0x20,0x0C,0x40,0x08,0x00,0x00,//六",5
        0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,
        0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00,0x00,0x00,0x00,//日",6      
};
/*****************1ms延時(shí)函數(shù)****************/
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void delay1(uint z) //微秒延時(shí)
{
        for(;z>0;z--);
}
unsigned char rd_cmd6963(void)
{                    
   unsigned char addr_st;
   LCDCD = 1;
   LCDWR = 1;
   LCDCE = 0;
   lcd_bus =0xff;
   addr_st = lcd_bus;
   LCDRD = 0;      
   LCDRD = 1;
   LCDCE = 1;
   return(addr_st);
}
/*****************檢查忙狀態(tài)程序****************/
void chkbusy6963(void)
{
   unsigned char busy;
   do
         {
                 busy =!(rd_cmd6963() & 0x03);         
         }while(busy);
}
/*****************寫數(shù)據(jù)****************/
void wr_dat6963(unsigned char datax)
{
   chkbusy6963();
   LCDCD = 0;
   LCDRD = 1;
   LCDCE = 0;
   lcd_bus = datax;
   LCDWR = 0;
   LCDWR = 1;
   LCDCE = 1;
}
/*****************寫命令****************/
void wr_cmd6963(unsigned char cmdx)
{
   chkbusy6963();
   LCDCD = 1;
   LCDRD = 1;
   LCDCE = 0;
   lcd_bus = cmdx;
   LCDWR = 0;
   LCDWR = 1;
   LCDCE = 1;
}

/*****************寫寄存器程序****************/
void wr_reg6963(unsigned char cmd,unsigned char dat1,unsigned char dat2)
{
        wr_dat6963(dat1);
        wr_dat6963(dat2);
        wr_cmd6963(cmd);
}

//顯示指針,圖形模式graphics=1,文本模式graphics=0;X坐標(biāo)x_axis,以8個(gè)像素為一個(gè)單位
//Y坐標(biāo)y_axis,圖形模式以1個(gè)像素為單位,文本模式以8個(gè)像素為單位
void lcd_cursor6963(unsigned char graphics,unsigned char x_axis,unsigned char y_axis)
{
   unsigned int tmp;
   if(graphics)tmp = y_axis*(PIXELW/8) + x_axis + 0x800;
   else  tmp = y_axis*(PIXELW/8) + x_axis;
   wr_reg6963(0x24,(unsigned char)(tmp),(unsigned char)(tmp>>8));
   wr_cmd6963(0xb0);
}
/*****************液晶屏初始化程序****************/
void init6963(void)
{
        LCDRST =0;
        delay(100);
        LCDRST =1;
        wr_cmd6963(0xf0);                         //bit reset
        wr_reg6963(0x21,0x00,0x00);    //光標(biāo)地址設(shè)置  
        wr_reg6963(0x22,0x00,0x00);           //CGRAM偏置地址設(shè)置
        wr_reg6963(0x24,0x00,0x00);    //顯示地址設(shè)置
        wr_reg6963(0x40,0x00,0x00);  //文本顯示區(qū)首地址  
        wr_reg6963(0x41,(unsigned char)(PIXELW/8),0x00);  //文本顯示區(qū)寬度   
        wr_reg6963(0x42,0x00,0x08);  //圖形顯示區(qū)首地址  
        wr_reg6963(0x43,(unsigned char)(PIXELW/8),0x00);  //圖形顯示區(qū)寬度  
        wr_cmd6963(0x80);               // OR mode   
        wr_cmd6963(0x9c);               //文本圖形開
        wr_cmd6963(0xa0);               //7line指針   
}
/*****************全屏顯示內(nèi)容程序****************/
void lcd_showfull(unsigned char datx)
{
        unsigned int i;
        lcd_cursor6963(0,0,0);
        for(i=0;i<((PIXELW/8)*(PIXELH/8));i++)wr_dat6963(0);
        wr_cmd6963(0xb2);
        lcd_cursor6963(1,0,0);
        for(i=0;i<((PIXELW/8)*PIXELH);i++)wr_dat6963(datx);
        wr_cmd6963(0xb2);                                   //屏刷完后需要補(bǔ)上這句
}
//顯示自定義16X16字符,x_axis為X軸,以8像素為單位,y_axis為Y軸,以1像素為單位
void lcd_defcharacter16x16(unsigned char x_axis,unsigned char y_axis,unsigned char ctnchar,unsigned char startchar,unsigned char code *text)
{//ctnchar為要顯示的總字符數(shù),startchar為自定義內(nèi)碼的第幾個(gè)啟動(dòng)顯示字符(即表格中的漢字),text為自定義的字符內(nèi)碼
   unsigned char line,ctn;
   text += startchar*32;
   for(ctn=0;ctnchar>0;ctnchar--,ctn+=2)
     {
                 for(line=0;line<16;line++)
                  {
                           lcd_cursor6963(1,x_axis+ctn,y_axis+line);
                         wr_dat6963(*(text++));
                           wr_dat6963(*(text++));
                         wr_cmd6963(0xb2);                         //屏刷完后需要補(bǔ)上這句
                  }                                                   
         }         
}
//顯示自定義8X16字符,x_axis為X軸,以8像素為單位,y_axis為Y軸,以1像素為單位
void lcd_defcharacter8x16(unsigned char x_axis,unsigned char y_axis,unsigned char ctnchar,unsigned char startchar,unsigned char code *text)
{//ctnchar為要顯示的總字符數(shù),startchar為自定義內(nèi)碼的第幾個(gè)啟動(dòng)顯示字符(即表格中的漢字),text為自定義的字符內(nèi)碼
   unsigned char line,ctn;
   text=text + startchar*16;
   for(ctn=0;ctnchar>0;ctnchar--,ctn++)
     {
                 for(line=0;line<16;line++)
                  {
                           lcd_cursor6963(1,x_axis+ctn,y_axis+line);
                           wr_dat6963(*(text++));
                         wr_cmd6963(0xb2);                         //屏刷完后需要補(bǔ)上這句
                  }                                                   
         }         
}         
//顯示自定義32X64字符,x_axis為X軸,以8像素為單位,y_axis為Y軸,以1像素為單位
void lcd_defcharacter32x64(uchar x_axis,uchar y_axis,uchar ctnchar,uchar startchar,uchar code *text)
{//ctnchar為要顯示的總字符數(shù),startchar為自定義內(nèi)碼的第幾個(gè)啟動(dòng)顯示字符(即表格中的漢字),text為自定義的字符內(nèi)碼      
   uchar line,ctn;
   text=text+startchar*256; //256是字符表中一個(gè)字的碼數(shù)
   for(ctn=0;ctnchar>0;ctnchar--,ctn=ctn+4)
     {
                 for(line=0;line<64;line++)
                  {
                           lcd_cursor6963(1,x_axis+ctn,y_axis+line);//
                         wr_dat6963(*(text++));//這一段是豎刷次數(shù)32/8=4次。四條
                         wr_dat6963(*(text++));
                         wr_dat6963(*(text++));
                                                                                     wr_dat6963(*(text++));
                         wr_cmd6963(0xb2);                         //復(fù)位自動(dòng)讀寫模式,屏刷完后需要補(bǔ)上這句
                  }                                                   
         }         
}



//顯示自定義8X64字符(:),x_axis為X軸,以8像素為單位,y_axis為Y軸,以1像素為單位
void lcd_defcharacter8x48(uchar x_axis,uchar y_axis,uchar ctnchar,uchar startchar,uchar code *text)
{
        //ctnchar為要顯示的總字符數(shù)
        //startchar為自定義內(nèi)碼的第幾個(gè)啟動(dòng)顯示字符(即表格中的漢字)
        //text為自定義的字符內(nèi)碼      
   uchar line,ctn;
  text=text+startchar*64; //
   for(ctn=0;ctnchar>0;ctnchar--,ctn=ctn+2)
     {
                 for(line=0;line<64;line++)
                  {
                           lcd_cursor6963(1,x_axis+ctn,y_axis+line);//
                         wr_dat6963(*(text++));
                         wr_cmd6963(0xb2);                         //復(fù)位自動(dòng)讀寫模式,屏刷完后需要補(bǔ)上這句
                  }                                                   
         }         
}

void Write1302(uchar dat) //1302寫
{
          uchar i;  
          SCLK1302=0;           //拉低SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備
          delay1(2);       //稍微等待,使硬件做好準(zhǔn)備
          for(i=0;i<8;i++)      //連續(xù)寫8個(gè)二進(jìn)制位數(shù)據(jù)
            {
                   DATA1302=dat&0x01;    //取出dat的第0位數(shù)據(jù)寫入1302
                   delay(2);       //稍微等待,使硬件做好準(zhǔn)備
                   SCLK1302=1;           //上升沿寫入數(shù)據(jù)
                   delay1(2);      //稍微等待,使硬件做好準(zhǔn)備
                   SCLK1302=0;           //重新拉低SCLK,形成脈沖                  
                   dat>>=1;          //將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個(gè)數(shù)據(jù)位
           }
}
void WriteSet1302(uchar Cmd,uchar dat)
{
           RST1302=0;           //禁止數(shù)據(jù)傳遞
           SCLK1302=0;          //確保寫數(shù)居前SCLK被拉低
           RST1302=1;           //啟動(dòng)數(shù)據(jù)傳輸
           delay1(2);     //稍微等待,使硬件做好準(zhǔn)備
           Write1302(Cmd);  //寫入命令字
           Write1302(dat);  //寫數(shù)據(jù)
           SCLK1302=1;          //將時(shí)鐘電平置于已知狀態(tài)
           RST1302=0;           //禁止數(shù)據(jù)傳遞
}
uchar Read1302(void)
{
           uchar i,dat;
           delay(2);       //稍微等待,使硬件做好準(zhǔn)備
           for(i=0;i<8;i++)   //連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù)
           {
                    dat>>=1;       //將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位
                    if(DATA1302==1)    //如果讀出的數(shù)據(jù)是1
                    dat|=0x80;    //將1取出,寫在dat的最高位  
                    SCLK1302=1;       //將SCLK置于高電平,為下降沿讀出
                    delay1(2);  //稍微等待
                    SCLK1302=0;       //拉低SCLK,形成脈沖下降沿
                    delay1(2);  //稍微等待
            }   
          return dat;        //將讀出的數(shù)據(jù)返回
}
uchar  ReadSet1302(uchar Cmd)
{
          uchar dat;
          RST1302=0;                 //拉低RST
          SCLK1302=0;                //確保寫數(shù)居前SCLK被拉低
          RST1302=1;                 //啟動(dòng)數(shù)據(jù)傳輸
          Write1302(Cmd);       //寫入命令字
          dat=Read1302();       //讀出數(shù)據(jù)
          SCLK1302=1;              //將時(shí)鐘電平置于已知狀態(tài)
          RST1302=0;               //禁止數(shù)據(jù)傳遞
          return dat;          //將讀出的數(shù)據(jù)返回
}
void Init_DS1302(void)
{  
         WriteSet1302(0x8E,0x00);//根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令
         WriteSet1302(0x80,0x00);//根據(jù)寫秒寄存器命令字,寫入秒的初始值
         WriteSet1302(0x82,0x30);//根據(jù)寫分寄存器命令字,寫入分的初始值
         WriteSet1302(0x84,0x20);//根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的初始值
         WriteSet1302(0x86,0x13);//根據(jù)寫日寄存器命令字,寫入日的初始值
         WriteSet1302(0x88,0x03);//根據(jù)寫月寄存器命令字,寫入月的初始值
         WriteSet1302(0x8c,0x21);//根據(jù)寫年寄存器命令字,寫入年的初始值
         WriteSet1302(0x8a,0x06);//根據(jù)寫星期寄存器命令字,寫入星期的初始值
}
void DisplaySecond(uchar x)
{
         uchar i,j;     
         i=x/10;
         j=x%10;
         lcd_defcharacter24x48(22,18,1,i,tab3);//顯示秒的十位tab3是24*48數(shù)字
         lcd_defcharacter24x48(26,18,1,j,tab3);//顯示秒的個(gè)位   
}
void DisplayMinute(uchar x)
{
         uchar i,j;     
         i=x/10;
         j=x%10;  
         lcd_defcharacter24x48(11,18,1,i,tab3);//顯示分鐘的十位
         lcd_defcharacter24x48(15,18,1,j,tab3);//顯示分鐘的個(gè)位        
}
void DisplayHour(uchar x)
{
         uchar i,j;   
         i=x/10;
         j=x%10;  
         lcd_defcharacter24x48(0,18,1,i,tab3);//顯示小時(shí)的十位
         lcd_defcharacter24x48(4,18,1,j,tab3);//顯示小時(shí)的個(gè)位      
}
void DisplayDay(uchar x)
{
         uchar i,j;   
       
         i=x/10;
         j=x%10;     
        lcd_defcharacter8x16(10,0,1,i,tab2);//顯示  日的十位tab2是8*16字符數(shù)字,帶+-號(hào)
        lcd_defcharacter8x16(11,0,1,j,tab2);//顯示   日的個(gè)位      
}
void DisplayMonth(uchar x)
{  
         uchar i,j;      
         i=x/10;
         j=x%10;   
        lcd_defcharacter8x16(6,0,1,i,tab2);//顯示  月的十位  
        lcd_defcharacter8x16(7,0,1,j,tab2);//顯示   月的個(gè)位  
}
void DisplayYear(uchar x)
{
         uchar i,j;   
         i=x/10;
         j=x%10;  
        lcd_defcharacter8x16(2,0,1,i,tab2);//顯示 年的十位
        lcd_defcharacter8x16(3,0,1,j,tab2);//顯示 年的個(gè)位
}   
void DisplayWeek(uchar x)
{  
        lcd_defcharacter16x16(19,0,1,x-1,tab5);//顯示,tab5是星期用字庫
}   
void  read_date(void)
{
     ReadValue = ReadSet1302(0x81);   
     second=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
     ReadValue = ReadSet1302(0x83);   
     minute=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);  
     ReadValue = ReadSet1302(0x85);   
     hour=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);  
     ReadValue = ReadSet1302(0x87);   
     day=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);  
     ReadValue = ReadSet1302(0x89);   
     month=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);  
     ReadValue = ReadSet1302(0x8d);   
     year=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);  
     ReadValue=ReadSet1302(0x8b);                     //讀星期
     week=ReadValue&0x07;
     DisplaySecond(second);            
     DisplayMinute(minute);         
     DisplayHour(hour);              
     DisplayDay(day);                 
     DisplayMonth(month);            
     DisplayYear(year);            
     DisplayWeek(week);   
}
void turn_val(char newval,uchar flag,uchar  newaddr,uchar s1num)
{
        newval=ReadSet1302(newaddr);                     //讀取當(dāng)前時(shí)間
    newval=((newval&0x70)>>4)*10+(newval&0x0f);    //將bcd碼轉(zhuǎn)換成十進(jìn)制
    if(flag)                  //判斷是加一還是減一
    {  
         newval++;
         switch(s1num)
          {
                          case 1: if(newval>99) newval=0;
                           DisplayYear(newval);      
                                          break;
                  case 2: if(newval>12) newval=1;
                                           DisplayMonth(newval);  
                                          break;
                  case 3: if(newval>31) newval=1;
                                DisplayDay(newval);   
                                          break;
                  case 4: if(newval>6) newval=0;
                                DisplayWeek(newval);  
                                          break;  
                  case 5: if(newval>23) newval=0;
                                DisplayHour(newval);  
                                          break;
                  case 6: if(newval>59) newval=0;
                                DisplayMinute(newval);  
                                          break;
                  case 7: if(newval>59) newval=0;
                                DisplaySecond(newval);  
                                          break;
                  default:break;
         }  
      }   
    else
    {
        newval--;
             switch(s1num)
        {
                        case 1: if(newval==0) newval=99;
                   DisplayYear(newval);  
                                  break;
                  case 2: if(newval==0) newval=12;
                                   DisplayMonth(newval);  
                        break;
                  case 3: if(newval==0) newval=31;
                                   DisplayDay(newval);  
                        break;  
                  case 4: if(newval<0) newval=6;
                        DisplayWeek(newval);  
                                  break;
            case 5: if(newval<0) newval=23;
                        DisplayHour(newval);  
                                  break;
            case 6: if(newval<0) newval=59;
                        DisplayMinute(newval);  
                                  break;
            case 7: if(newval<0) newval=59;
                        DisplaySecond(newval);
                                  break;
                       default:break;
         }
        }
        WriteSet1302((newaddr-1),((newval/10)<<4)|(newval%10));  //將新數(shù)據(jù)寫入寄存器            
}
void delay_18B20(unsigned int i)//延時(shí)1微秒
{
        while(i--);
}
void ds1820rst()/*ds1820復(fù)位*/
{  
          unsigned char x=0;
          DQ18B20 = 1;          //DQ復(fù)位
          delay_18B20(4);  //延時(shí)
          DQ18B20 = 0;          //DQ拉低
          delay_18B20(100); //精確延時(shí)大于480us
          DQ18B20 = 1;          //拉高
          delay_18B20(40);   
}
uchar ds1820rd()/*讀數(shù)據(jù)*/  
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {   
          DQ18B20 = 0; //給脈沖信號(hào)
    dat>>=1;
    DQ18B20 = 1; //給脈沖信號(hào)
    if(DQ18B20)
    dat|=0x80;
    delay_18B20(10);
  }
  return(dat);
}
void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/
{
        unsigned char i=0;
    for (i=8; i>0; i--)
   {
            DQ18B20 = 0;
     DQ18B20 = wdata&0x01;
     delay_18B20(10);
     DQ18B20 = 1;
     wdata>>=1;
   }
}
read_temp()/*讀取溫度值并轉(zhuǎn)換*/
{
  uchar a,b;  
  ds1820rst();     
  ds1820wr(0xcc);//*跳過讀序列號(hào)*/
  ds1820wr(0x44);//*啟動(dòng)溫度轉(zhuǎn)換*/
  ds1820rst();     
  ds1820wr(0xcc);//*跳過讀序列號(hào)*/  
  ds1820wr(0xbe);//*讀取溫度*/  
  a=ds1820rd();
  b=ds1820rd();
  tvalue=b;
  tvalue<<=8;
  tvalue=tvalue|a;
  if(tvalue<0x0fff)
     tflag=0;
  else
   {
                   tvalue=~tvalue+1;
                  tflag=1;
   }
  tvalue=tvalue*(0.625);//溫度值擴(kuò)大10倍,精確到1位小數(shù)
return(tvalue);
}
void ds1820disp()//溫度值顯示
{
         lcd_defcharacter8x16(24,0,1,(tvalue%1000/100),tab2);//顯示 溫度的十位
         lcd_defcharacter8x16(25,0,1,(tvalue%1000%100/10),tab2);//顯示 溫度的個(gè)位  
         lcd_defcharacter8x16(27,0,1,(tvalue%1000%100%10),tab2);//顯示 溫度的小數(shù)     
         if(tflag==0)
                 lcd_defcharacter8x16(23,0,1,12,tab2);//顯示溫度的+號(hào)
     else
                lcd_defcharacter8x16(23,0,1,11,tab2);//顯示溫度顯-號(hào)
}         
main()
{
        lcd_showfull(0);                                           //清屏
        init6963(); //初始化
        Init_DS1302();       //初始化1302
        lcd_defcharacter8x16(0,0,1,2,tab2);//顯示    2-固定顯示
        lcd_defcharacter8x16(1,0,1,0,tab2);//顯示    0-固定顯示  
        lcd_defcharacter16x16(4,0,1,0,tab1);//顯示   年-固定顯示
        lcd_defcharacter16x16(8,0,1,1,tab1);//顯示   月-固定顯示
        lcd_defcharacter16x16(12,0,1,2,tab1);//顯示 日-固定顯示
        lcd_defcharacter16x16(15,0,1,3,tab1);//顯示 星-固定顯示
        lcd_defcharacter16x16(17,0,1,4,tab1);//顯示 期-固定顯示
        lcd_defcharacter16x16(21,0,1,7,tab1);//顯示 -固定顯示溫度計(jì)圖片
        lcd_defcharacter8x16(26,0,1,10,tab2);//顯示        -固定顯示小數(shù)點(diǎn).
        lcd_defcharacter16x16(28,0,1,6,tab1);//顯示 -固定顯示攝氏度圖片         
        lcd_defcharacter8x48(9,18,1,0,tab4);//顯示-固定顯示:(前兩點(diǎn))
        lcd_defcharacter8x48(20,18,1,0,tab4);//顯示-固定顯示:(后兩點(diǎn))

        //lcd_defcharacter16x16(21,16,2,17,tab1);//顯示農(nóng)歷兩個(gè)字
        //lcd_defcharacter16x16(25,16,1,19,tab1);//顯示羊字
        //lcd_defcharacter16x16(27,16,1,20,tab1);//顯示年字
                                          
   while(1)
     {                                                                             
           read_date();
           read_temp();//讀取溫度
           ds1820disp();//顯示                  
         }
}


回復(fù)

使用道具 舉報(bào)

ID:600695 發(fā)表于 2021-3-15 01:37 | 顯示全部樓層
這個(gè)程序錯(cuò)誤太多,秒走的時(shí)快時(shí)慢,最長(zhǎng)2.5秒動(dòng)一下,按鍵也不起作用,時(shí)的累計(jì)到23點(diǎn)完了是12點(diǎn)然后才一點(diǎn),沒什么實(shí)用價(jià)值,還是放棄了算了,那個(gè)大哥能給個(gè)好用的8k內(nèi)的240128程序嗎
回復(fù)

使用道具 舉報(bào)

ID:292903 發(fā)表于 2021-9-3 19:53 | 顯示全部樓層
我好像看過能顯示的貼子  樓主使用的是STC89單片機(jī)嗎?我記得帖子里面寫的是要使用12系列
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2021-9-5 15:07 | 顯示全部樓層
設(shè)置一個(gè)定時(shí)器, 用來定時(shí)按鍵掃描,和LCD刷新時(shí)間。上面這個(gè)main主程序直接就是循環(huán)讀寫,是不行的。
回復(fù)

使用道具 舉報(bào)

ID:977804 發(fā)表于 2022-4-13 20:33 | 顯示全部樓層
想問一個(gè),是240128 ,還是24064
回復(fù)

使用道具 舉報(bào)

ID:16255 發(fā)表于 2022-5-25 23:20 | 顯示全部樓層

幾年前在黃魚淘了一片T6963的240128顯示屏,在網(wǎng)上找了很多的資料,終于成功點(diǎn)亮了。
IMG_20211017_214859.jpg

目前該顯示屏已做成時(shí)鐘,至今運(yùn)行正常。
回復(fù)

使用道具 舉報(bào)

ID:78901 發(fā)表于 2022-7-10 09:04 | 顯示全部樓層
FS:字體選擇,H:6X8點(diǎn),L:8X8點(diǎn)    fs要接低電平
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表