




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【北京奥运】LM4229(lcd240128)显示“北京欢迎你”2008-08-08 19:182008年8月8日。同一个世界,同一个梦想;祝福北京,祝福奥运。整个电路图(8952+DS1302+LM4229)程序设计部分主程序部分 lm4229_ds1302.c/=/ /niejinbo/ 祝福北京,祝福奥运/ 北京欢迎你/ 时钟暂未加设置时间功能/=#include#include#include#include#include/ 0123 67 1011 1516 1819 2122uchar tab_time=2008年08月08日 00:00:00 星期; /*年 月 日 时 分 秒 星期 */sbit k1=P33;sbit k2=P34;/-/- 函数声明 -void trans();void key_scan();void week();void delay(uint);/=/ 主函数/=void main()lcd_init();write_lcd(10,0,-);write_lcd(102,0,-);/ write_lcd(0,0,2008年08月08日 00:00:00 星期五); write_lcd(22,1,同);write_lcd(38,1,一);write_lcd(54,1,个);write_lcd(72,1,世);write_lcd(90,1,界);write_lcd(22,27,同);write_lcd(38,27,一);write_lcd(54,27,个);write_lcd(72,27,梦);write_lcd(90,27,想);write_lcd(112,0, 四川师大 电子工程学院 聂金波);write_pic(30,5); /北京欢迎你 大字write_lcd(70,8,2008 北京奥运);while(1) ds1302(); trans(); write_lcd(0,0,tab_time); week();/-/ 按键函数/-void key_scan()if(k1=0) delay(5); if(k1=0) tab_time2+; void delay(uint k)uint i,j;for(i=k;i0;i-) for(j=110;j0;j-);/-/ 数据转换/-void trans()tab_time2=tab_13026/10+0; /年十位tab_time3=tab_13026%10+0; /年个位tab_time6=tab_13024/10+0; /月十位tab_time7=tab_13024%10+0; /月个位tab_time10=tab_13023/10+0; /日十位tab_time11=tab_13023%10+0; /日个位tab_time15=tab_13022/10+0; /小时十位tab_time16=tab_13022%10+0; /小时个位tab_time18=tab_13021/10+0; /分十位tab_time19=tab_13021%10+0; /分个位tab_time21=tab_13020/10+0; /秒十位tab_time22=tab_13020%10+0; /秒个位/-/ 星期显示/-void week()uchar i;i=tab_13025-1; /*实时时钟里的值是6,但是2008/08/08是星期五,所以减1, Proteus的问题? */switch(i) case 1: write_lcd(0,28,一); break; case 2: write_lcd(0,28,二); break; case 3: write_lcd(0,28,三); break; case 4: write_lcd(0,28,四); break; case 5: write_lcd(0,28,五); break; case 6: write_lcd(0,28,六); break; case 7: write_lcd(0,28,日); break; default: ; break; /其它情况 /=/=/- /niejinbo/- DS1302驱动程序 -/- 作者:聂金波 /- 完成日期:2008-07-28 -/=/- 星期一 monday 星期二 tuesday 星期三 wednesday/- 星期四 thursday 星期五 friday 星期六 saturday/- 星期日 sunday/-/-/=/-#define uchar unsigned char#define uint unsigned int/-/- 定义端口 -sbit rst=P30;sbit sclk=P31;sbit io=P32;/-uchar tab_13027=0,10,19,30,7,3,8; /初始化时时间日期设置 /秒 分 时 日月 星期 年uchar tab1_13027=0,10,19,30,7,3,8; /-/- 函数声明 -/-void ds1302(); /获取DS1302时间void writeds_byte(uchar); /向DS1302写一字节uchar readds_byte(); /从DS1302读一字节void ds1302_init(); /DS1302初始化void writeds_add(uchar,uchar); /指定地址向1302写一数据uchar readds_add(uchar); /指定地址从1302读一数据/=/- 函数 -/=/-/- 向DS1302写一字节 (上升沿有效) -/- 数据输入从低位到高位 -/-void writeds_byte(uchar dat) uchar i,dat_w;dat_w=dat; /数据送给变量dat_wfor(i=0;i1; /右移一位 sclk=0; /先拉低时钟信号 sclk=1; /拉高时钟信号 sclk=0; /写一字节完毕,拉低时钟信号/-/- 从DS1302读一字节 (下降沿有效) -/- 读出数据时从低位0位到高位7 -/-uchar readds_byte()uchar i,k; k=0;for(i=0;i1; /k右移一位,确保先读来的数据在低位 if(io) k=k|0x80; /读取的值先送K最高位 sclk=1; /先拉低时钟信号 sclk=0;sclk=0;return (k);/-/- 指定地址写一数据 -/-void writeds_add(uchar add,uchar dat) /dat为十进制数rst=0;sclk=0;rst=1; /拉高RSTwriteds_byte(add); / 写地址writeds_byte(dat/104)|(dat%10); / DS1302中的时间数据是BCD码形式sclk=0;rst=0;/-/- 指定地址读出一数据 -/-uchar readds_add(uchar add)uchar temp,dat1,dat2;rst=0;sclk=0;rst=1;writeds_byte(add);temp=readds_byte(); /读取的数据为16进制sclk=0; /读取完毕,拉低SCLKrst=0; /拉低SCLKdat1=temp/16; /16进制转成BCDdat2=temp%16;temp=dat1*10+dat2; /转换成10进制数字return (temp); /-/- DS1302初始化 -/- 设置初始时间 -/-void ds1302_init()uchar i,add;add=0x80;writeds_add(0x8e,0x00); /允许写入for(i=0;i7;i+) writeds_add(add,tab1_1302i); add+=2; writeds_add(0x90,0xa6); /写充电控制寄存器.writeds_add(0x8e,0x80); /禁止写入/-/- 获取DS1302时间 -/- 在主函数中调用 -/-void ds1302()uchar i,add=0x81;/ writeds_add(0x8e,0x00); /允许向DS1302写入数据for(i=0;i7;i+) tab_1302i=readds_add(add); /获得的数据已转换为十进制 add+=2;/writeds_add(0x8e,0x80); /获取完一次时间,禁止向DS1302写入数据,提高可靠/=/=/- 小波电子工作室 -/ LM4229 液晶显示驱动程序 / 作者:聂金波 完成日期:2008/0/05 / /niejinbo/ 四川师范大学 电子工程学院 2005级5级/-/ 本程序参考仿真社区()一个网友/ 写的LCD240*128显示程序,在此表示感谢!/=#include#include#include#define uchar unsigned char#define uint unsigned int#define DATA_PORT P0/-/ 管脚定义 /-sbit HALT=P20; /暂不清楚sbit FS1=P21; /字体模式选择sbit MD2=P22; /方式选择sbit RST=P23; /复位sbit CD=P24; /数据(L)/命令(H)选择sbit READ=P25; /读,低电平有效+sbit WRIT=P26; /写,低电平有效sbit CE=P27; /使能,低电平有效/=/ 函数声明/-void delay_lcd(uchar);void write_data(uchar);void write_com(uchar);void clr_lcd(uchar,uchar,uint);/-/ 延时函数/-void delay_lcd(uchar t)for(;t!=0; t-);/-/ 写数据函数/-void write_data(uchar dat)CD=0; /数据CE=0; /LCD使能WRIT=0; /写DATA_PORT=dat; /把数据送到P口delay_lcd(1); /当晶振较高时加延时WRIT=1; /关写CE=1; /关使能/-/ 写命令函数/-void write_com(uchar com)CD=1; /命令CE=0;WRIT=0;DATA_PORT=com;delay_lcd(1); /当晶振较高时加延时WRIT=1;CE=1;/-/ 指定位置、长度清屏/-void clr_lcd(uchar x,uchar y,uint length)uint i,place;place=x*30+y;write_data(place&0xff);write_data(place/256);write_com(0x24); /设置for(i=0;ilength;i+)write_data(0xff); /写入空格,清屏write_com(0xb2); /关闭自动写/-/ 指定位置向LCD写入指定字符/-void write_lcd(uchar x,uchar y,char *cha)uint place,i=0;uchar length,c1,c2,j,k;for(length=0;chalength!=0;length+); do c1=chai; /取字符串的ASCII码 c2=chai+1; place=x*30+y; if(c1=128) /#小于128为字符,大于128为汉字 for(k=0;k28) /y28时候需要换行 x=x+16;y=0; else /否则,不换行,继续写下一个字符 y+; i+; else /#c1大于128为汉字 for(j=0;jsizeof(GB_16)/sizeof(GB_160);j+) /找到汉字 if(c1=GB_16j.Index0&c2=GB_16j.Index1) break; /汉字找到则跳出 if(jsizeof(GB_16)/sizeof(GB_160) /-如果汉字在子码表内 for(k=0;k16;k+) /字符设置为16*8 write_data(place&0xff); /写入地址高位 write_data(place/256); /写入地址低位 write_com(0x24); /地址设置 write_com(0xb0); /设置数据自动写 write_data(GB_16j.Mskk*2); write_data(GB_16j.Mskk*2+1); /16*16,每行2字节 write_com(0xb2); /自动复位 place=place+30; /下一行 else /-没找到对应汉字则涂黑 for(k=0;k27) /-换行 x+=16;y=0; else /-不用换行,则下一个字 y+=2; i+=2; while(ilength);/-/ LM4229初始化函数/-void lcd_init() FS1 = 0;/fs1管脚高电平时表示字体为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财产处理协议书
- 表5安全教育与培训
- 2024-2025学年七年级数学北师大版上册期末检测卷(含答案)
- 幼儿园《雨天的活动》科学教案
- 大班幼儿全面发展指南策略分析
- 2024-2025学年下学期高二生物人教版期末必刷常考题之生态系统的信息传递
- 森林之旅心理题目及答案
- 2025届河南省九师联盟高三下学期2月教学质量检测语文试题(解析版)
- 年底员工评价的评语
- 渣土车辆超速检讨书
- 2025西山煤电井下岗位高校毕业生招聘500人(山西)笔试参考题库附带答案详解
- 2025年江苏徐州市泉山数据有限公司招聘笔试冲刺题(带答案解析)
- 重庆市大渡口区2023-2024学年四年级下学期数学期末测试卷(含答案)
- 2025年高考全国一卷写作范文4篇
- 全省一体化政务平台AI大模型应用方案
- 医院负面清单管理制度
- 11.3 一元一次不等式组 课件 2024-2025学年人教版初中数学七年级下册
- DZ/T 0220-2006泥石流灾害防治工程勘查规范
- 2025四川泸州交通物流集团有限公司及下属公司招聘12人笔试参考题库附带答案详解析
- 2025英语ab级考试试题及答案
- 广东省广州市越秀区2020-2021学年七年级下学期期末英语试题(含答案)
评论
0/150
提交评论