




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国烟花爆竹行业市场规模调研及投资前景研究分析报告
- 2025年中国透气胶带行业市场前景预测及投资价值评估分析报告
- 2025春季学期国开河南电大专科《中小学教师如何做微课》一平台无纸化考试(作业练习1至3+我要考试)试题及答案
- 安全保卫考试试题及答案
- 安全测评试题及答案
- 提升安全与效率数字孪生在复杂系统应急维护中的作用
- 传统企业如何应对数字化转型的挑战
- 2025年金猪存钱罐项目市场调查研究报告
- 2025年酸枣仁合剂项目市场调查研究报告
- 2025年逻辑系统高级专业用音箱项目市场调查研究报告
- 上海市同济大学第二附属中学2024-2025学年八年级下册期末物理试卷
- 2025年液压马达开发行业深度研究报告
- 树木移栽施工协议书
- 手术前抗凝药停用时间
- 租地解除合同协议书
- 2025智能矿山暨无人驾驶行业蓝皮书-亿欧智库
- 2025湖北水发集团园招聘40人笔试参考题库附带答案详解
- 2025年人工智能应用技术考试试题及答案
- 2024北森图形推理题
- 2025年全国国家版图知识竞赛赛(附答案)
- 2025年社区工作者考试试题及答案
评论
0/150
提交评论