版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年员工福利设置合规管控规定
- 2026年黑龙江省尚志市高二生物下册期末考试模拟试卷及答案(夺冠)
- 2026年四川省康定市高二历史下册期末考试测试卷附参考答案(综合卷)
- 高中生物教资面试遗传题库及解析2026下半年
- 2026下半年初中物理教资面试声现象专项试卷
- 2026下半年下半年小学道法教资面试国情专题易错题题库
- 2026年专利代理师资格考试相关法律知识考前冲刺试题
- 2026年铝塑泡罩包装机设计
- 2026年吉林省扶余市高二历史上册期末考试试卷含答案(能力提升)
- 2026年江苏省丹阳市高二生物上册期末考试测试卷及完整答案一套
- 陕西榆林榆阳区2026年基层社会治理网格员招聘考试试卷-含答案解析
- 2026年广东省中考化学试卷(含答案)
- 2025地球小博士知识竞赛试题附答案
- 早产与过期妊娠课件
- 2025年天津高考历史真题
- 考试舆情应急预案(3篇)
- 华师一附中【圆锥曲线】专题训练汇编
- 酒店对醉酒客人的正确处理方法
- 30题解决方案工程师岗位常见面试问题含HR问题考察点及参考回答
- 点检样品管理办法
- 2025年智能安全帽项目立项申请报告模板
评论
0/150
提交评论