无字库LCD无时钟芯片显示时间_第1页
无字库LCD无时钟芯片显示时间_第2页
无字库LCD无时钟芯片显示时间_第3页
无字库LCD无时钟芯片显示时间_第4页
无字库LCD无时钟芯片显示时间_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*在无字库的12864LCD上显示时、分、秒;没有用时钟芯片MCU:STC89C52晶振:11.0592MHz作者:罗元俊*/#include <reg52.h>typedef unsigned char uchar;typedef unsigned int uint;#define Port P0 / 数据端口#define Disp_On 0x3f / 开显示#define Disp_Off 0x3e / 关显示#define Col_Add 0x40 / 列地址#define Page_Add 0xb8 / 页地址#define Start_Line 0xc0 / 起始页s

2、bit RS = P26;sbit RW = P25;sbit EN = P27;sbit CS1 = P32;sbit CS2 = P33;uint t = 0; /全局变量:秒表(用于计数时间的增量)uchar sec,min,hour; / 全局变量:秒、分、时uchar a,b,c,d,e,f; / 秒、分、时的个位和十位 uchar code HZ_tab32 = /*- 文字: 潜 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x20,0xC2,0x0C,0x80,0x10,0x94,0x54,0x3F,0x54,0x90,0x54,0x3F,0x54

3、,0x94,0x10,0x00,0x04,0x04,0x7E,0x01,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x01,0x00,/*- 文字: 龙 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x10,0x11,0x16,0xD0,0x10,0x10,0x00,0x80,0x40,0x20,0x18,0x06,0x41,0x20,0x10,0x3F,0x44,0x42,0x41,0x40,0x40,0x78,0x

4、00,/*- 文字: 花 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x04,0x04,0x04,0x84,0x6F,0x04,0x04,0x04,0xE4,0x04,0x8F,0x44,0x24,0x04,0x04,0x00,0x04,0x02,0x01,0xFF,0x00,0x10,0x08,0x04,0x3F,0x41,0x40,0x40,0x40,0x40,0x78,0x00,/*- 文字: 园 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xC

5、A,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00,0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00,/*- 文字: 输 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x88,0x68,0x1F,0xC8,0x08,0x10,0xC8,0x54,0x52,0xD1,0x12,0x94,0x08,0xD0,0x10,0x00,0x09,0x19,0x09,0xFF,0x05,0x00,0xFF,0x12,0x92,0xFF,0x00,0

6、x5F,0x80,0x7F,0x00,0x00,/*- 文字: 入 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x00,0x00,0x00,0x01,0xE2,0x1C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x30,0x40,0x80,0x80,0x00,/*- 文字: 密 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x10,0x8C,0x44,0x04,0x

7、E4,0x04,0x95,0xA6,0x44,0x24,0x14,0x84,0x44,0x94,0x0C,0x00,0x02,0x02,0x7A,0x41,0x41,0x43,0x42,0x7E,0x42,0x42,0x42,0x43,0xF8,0x00,0x00,0x00,/*- 文字: 码 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x04,0x84,0xE4,0x5C,0x44,0xC4,0x00,0x02,0xF2,0x82,0x82,0x82,0xFE,0x80,0x80,0x00,0x02,0x01,0x7F,0x10,0x10,0x3F,0x00,

8、0x08,0x08,0x08,0x08,0x48,0x88,0x40,0x3F,0x00;uchar code SZ_tab16 = /*- 文字: 0 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, /0/*- 文字: 1 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3

9、F,0x20,0x20,0x00,0x00, /1/*- 文字: 2 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, /2/*- 文字: 3 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, /3/*- 文字: 4 -*/*- 新

10、宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, /4/*- 文字: 5 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, /5/*- 文字: 6 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0xE0,0x1

11、0,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, /6/*- 文字: 7 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, /7/*- 文字: 8 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,

12、0x21,0x21,0x22,0x1C,0x00, /8/*- 文字: 9 -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, /9/*- 文字: - -*/*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, /10/*- 文字: : -*/

13、*- 新宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00/11;void delayms(uint xms) /延时子程序uint x,y;for(x = xms;x > 0;x-)for(y = 2;y > 0;y-);void DetBusybit(void) /忙位检测子程序Port = 0xff; /读状态值时,先给数据端口赋高电平RS = 0;RW = 1;EN = 1;while(Port & 0

14、x80); /如果LCD处于忙状态,程序就此停止delayms(2);EN = 0;void LCD_WrCom_L(uchar com)/ 写左半屏指令子程序DetBusybit();CS1 = 1; CS2 = 0;RS = 0;RW = 0;EN = 1;Port = com;delayms(5);EN = 0;void LCD_WrCom_R(uchar com)/ 写右半屏指令子程序DetBusybit();CS1 = 0; CS2 = 1;RS = 0;RW = 0;EN = 1;Port = com;delayms(5);EN = 0;void LCD_WrDat_L(uchar

15、 dat)/ 写左半屏数据子程序DetBusybit();CS1 = 1; CS2 = 0;RS = 1;RW = 0;EN = 1;Port = dat;delayms(5);EN = 0;void LCD_WrDat_R(uchar dat)/ 写右半屏数据子程序DetBusybit();CS1 = 0; CS2 = 1;RS = 1;RW = 0;EN = 1;Port = dat;delayms(5);EN = 0;void Clear_L(void)/ 左半屏清屏uchar i,j;CS1 = 1; CS2 = 0;LCD_WrCom_L(Page_Add + 0);LCD_WrCo

16、m_L(Col_Add + 0);for(j = 0; j < 8; j+)LCD_WrCom_L(Page_Add + j);for(i = 0; i < 64; i+)LCD_WrDat_L(0x00);void Clear_R(void)/ 右半屏清屏uchar i,j;CS1 = 0; CS2 = 1;LCD_WrCom_R(Page_Add + 0);LCD_WrCom_R(Col_Add + 0);for(j = 0; j < 8; j+)LCD_WrCom_R(Page_Add + j);for(i = 0; i < 64; i+)LCD_WrDat_R(

17、0x00);void Disp_HZ_L(uchar pag,uchar col,uchar n) / 显示左半屏汉字 16*16uchar i = 0,j = 0;CS1 = 1; CS2 = 0;for(i = 0; i < 2; i+) LCD_WrCom_L(Page_Add + pag + i);LCD_WrCom_L(Col_Add + col);for(j = 0; j < 16; j+)LCD_WrDat_L(HZ_tabn16*i+j);void Disp_SZ_L(uchar pag,uchar col,uchar n) / 显示左半屏数字 8*16uchar

18、i = 0,j = 0,k = 0;CS1 = 1; CS2 = 0;for(i = 0; i < 2; i+)LCD_WrCom_L(Page_Add + pag + i);LCD_WrCom_L(Col_Add + col);for(j = 0; j < 8; j+)LCD_WrDat_L(SZ_tabn8*i+j);void Disp_HZ_R(uchar pag,uchar col,uchar n) / 显示右半屏汉字 16*16uchar i = 0,j = 0;CS1 = 0; CS2 = 1;for(i = 0; i < 2; i+)LCD_WrCom_R(Pa

19、ge_Add + pag + i);LCD_WrCom_R(Col_Add + col);for(j = 0; j < 16; j+)LCD_WrDat_R(HZ_tabn16*i+j);void Disp_SZ_R(uchar pag,uchar col,uchar n) / 显示右半屏数字 8*16uchar i = 0,j = 0;CS1 = 0; CS2 = 1;for(i = 0; i < 2; i+) LCD_WrCom_R(Page_Add + pag + i);LCD_WrCom_R(Col_Add + col);for(j = 0; j < 8; j+)LC

20、D_WrDat_R(SZ_tabn8*i+j);void TimerInit(void) /定时器初始化函数TMOD = 0x02; /设置定时器0为工作模式2TH0 = 0x47; /装初值TL0 = 0x47; /设定时间为0.2msEA = 1;ET0 = 1;TR0 = 1; /启动定时器0void LCD_Init(void) / LCD初始化子程序delayms(10);LCD_WrCom_L(Disp_Off);LCD_WrCom_R(Disp_Off);LCD_WrCom_L(Page_Add + 0);LCD_WrCom_R(Page_Add + 0);LCD_WrCom_L(Start_Line + 0);LCD_WrCom_R(Start_Line + 0);LCD_WrCom_L(Col_Add + 0);LCD_WrCom_R(Col_Add + 0);LCD_WrCom_L(Disp_On);LCD_WrCom_R(Disp_On);void main(void)LCD_Init();TimerInit();Clear_L();Clear_R();while(1)sec = t%60; /秒钟分离min = (t/60)%60; /分钟分离hour = (t/3600)%60; /时钟分离a =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论