免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#define uchar unsigned char #define uint unsigned int#define dataport P2bit flagg=0;sbit E=P12; /使能端sbit RW=P11; /读写端 sbit RS=P10; /数据命令端口sbit CS1=P13;sbit CS2=P14;sbit DQ=P30; uchar ip;uchar temp3;uchar flag=0;uchar sum,setbit;uchar discode13;uchar year=8,month=12,week=7,day=7,hour=12,minute=0,second=0,pm;uchar code day1=0,32,29,32,31,32,31,32,32,31,32,31,32;uchar code day2=0,32,30,32,31,32,31,32,32,31,32,31,32;uchar code shu0=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00;/*0,0*/uchar code shu1=0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00;/*1,0*/uchar code shu2=0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00;/*2,0*/uchar code shu3=0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00;/*3,0*/uchar code shu4=0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00;/*4,0*/uchar code shu5=0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00;/*5,0*/uchar code shu6=0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00;/*6,0*/uchar code shu7=0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00;/*7,0*/uchar code shu8=0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00;/*8,0*/uchar code shu9=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00;/*9,0*/uchar code dian=0x00,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*,0*/uchar code C=0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00;/*C,0*/uchar code xiao=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00;/*.,0*/uchar code fu=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01;uchar code zheng=0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00;/*+,0*/uchar code nian=0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00;/*年,0*/uchar code yue=0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00;/*月,0*/uchar code shi=0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00;/*时,0*/uchar code fen=0x80,0x40,0x20,0x98,0x87,0x82,0x80,0x80,0x83,0x84,0x98,0x30,0x60,0xC0,0x40,0x00,0x00,0x80,0x40,0x20,0x10,0x0F,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,0x00,0x00,0x00;/*分,0*/uchar code miao=0x12,0x12,0xD2,0xFE,0x91,0x11,0xC0,0x38,0x10,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,0x04,0x03,0x00,0xFF,0x00,0x83,0x80,0x40,0x40,0x20,0x23,0x10,0x08,0x04,0x03,0x00;/*秒,0*/uchar code xing=0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00;/*星,0*/uchar code qi=0x00,0x04,0xFF,0x54,0x54,0x54,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00,0x42,0x22,0x1B,0x02,0x02,0x0A,0x33,0x62,0x18,0x07,0x02,0x22,0x42,0x3F,0x00,0x00;/*期,1*/uchar code yi=0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*一,0*/uchar code er=0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00;/*二,1*/uchar code san=0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00;/*三,2*/uchar code si=0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x22,0x7F,0x00,0x00;/*四,3*/uchar code wu=0x00,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC2,0x82,0x02,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x30,0x20,0x00;/*五,4*/uchar code liu=0x10,0x10,0x10,0x10,0x10,0x91,0x12,0x1E,0x94,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x00,0x00,0x01,0x02,0x0C,0x78,0x30,0x00,0x00;/*六,5*/uchar code ri=0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00;/*日,0*/void csh(void)TMOD=0x01; TH0=(65535-50000)/256; TL0=(65535-50000)%256;ET0=1;TR0=1;EA=1;uchar mm() int j; if(year%4=0) if(year%100=0) if(year%400=0) j=day2month; else j=day1month; else j=day2month; else j=day1month; return(j);void chekbusy12864(void) uchar dat; RS=0; /指令模式 RW=1; /读数据 do P0=0x00; E=1; dat=P0&0x80; E=0; while(dat!=0x00); void choose12864(uchar i)/i是要写的屏.0是左屏,1是右屏,2是双屏/*选屏*/ switch (i) case 0: CS1=0;CS2=1;break; case 1: CS1=1;CS2=0;break;case 2: CS1=0;CS2=0;break;default: break; /*写命令*/void cmd_w12864(uchar cmd)/写命令 chekbusy12864(); RS=0; /指令模式 RW=0; /写模式 E=1; P0=cmd; E=0;/*写数据*/void dat_w12864(uchar dat) chekbusy12864(); RS=1; RW=0; E=1; P0=dat; E=0;void clear12864(void) /*清屏*/ uchar page,row; for(page=0xb8;page0xc0;page+) cmd_w12864(page);cmd_w12864(0x40);for(row=0;row64;row+) dat_w12864(0x00); /*初始化*/void init12864(void) chekbusy12864(); cmd_w12864(0xc0); cmd_w12864(0x3f);/*8X16字符的显示*/void play8(uchar ch,uchar row,uchar page,uchar *adr) uchar i; choose12864(ch); page=page1; row=row*8; cmd_w12864(row+0x40); cmd_w12864(page+0xb8); for(i=0;i8;i+) dat_w12864(*(adr+i); cmd_w12864(row+0x40); cmd_w12864(page+0xb9); for(i=8;i16;i+) dat_w12864(*(adr+i); /*16X16显示*/play16(uchar ch,uchar row,uchar page,uchar *adr) uchar i; choose12864(ch); page=page1; row=row*8; cmd_w12864(row+0x40); cmd_w12864(page+0xb8); for(i=0;i16;i+) dat_w12864(*(adr+i); cmd_w12864(row+0x40); cmd_w12864(page+0xb9); for(i=16;i32;i+) dat_w12864(*(adr+i); /*读数据*/uchar dat_r12864(uchar page,uchar arrange) /page页地址.arrange列地址) uchar dat; chekbusy12864(); cmd_w12864(page+0xb8); cmd_w12864(arrange+0x40); P0=0xff; RW=1; RS=1; E=1; E=0; E=1; dat=P0; E=0; return(dat);clear8(uchar x,uchar y,uchar ch) uchar i; choose12864(ch); cmd_w12864(x*8+0x40); cmd_w12864(y+0xb8); for(i=0;i8;i+) dat_w12864(0x00); cmd_w12864(x*8+0x40); cmd_w12864(y+0xb9); for(i=0;i0;i-);void delay11us(uint k) while(k-);void delay1ms(uint k) k=k*125; while(k-);/*ds18b20*/void ds18b20_init(void) DQ=1; delayfor(8); DQ=0; delayfor(70); /80改60 DQ=1; delayfor(25); /*ds18b20读一个字节*/uchar ds18b20_readchar(void) uchar i=0;uchar dat = 0;for(i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay11us(10); return(dat);/*ds18b20写一个字节*/ds18b20_writechar(uchar dat) uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay11us(10); DQ = 1; dat=1; /*读出温度*/uint readtemperature(void)uchar a=0;uchar b=0;uint t=0;ds18b20_init();ds18b20_writechar(0xCC); / 跳过读序号列号的操作ds18b20_writechar(0x44); / 启动温度转换delay11us(100);ds18b20_init();ds18b20_writechar(0xCC); /跳过读序号列号的操作ds18b20_writechar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ds18b20_readchar();b=ds18b20_readchar();if(b*256+a)63488) t=(b*256+a)+1; t=t*25;flag=1;/取反加1 else t = (b*256+a)*25;flag=0; return(t2); /*温度数值处理*/ void gettemperature(void) static uint te=0xffff; uint realtemp;realtemp=readtemperature();if(te!=realtemp)temp0=realtemp/1000;temp1=(realtemp/100)%10;temp2=(realtemp/10)%10;te=realtemp; uchar scan(uchar k) uchar re; switch (k) case 1:re=0;break;case 2:re=1;break;case 4:re=2;break;default:break; return re;void keyscan(void) uchar m,n; dataport=0x07; delay11us(1); if(dataport!=0x07) dataport=0x07;delay1ms(5);m=dataport&0x07;if(m!=0x07) m=m0x07; m=scan(m); dataport=0x70; delay11us(1); n=dataport&0x70; if(n!=0x70) n=n4;n=n0x07;n=scan(n);sum=3*m+n; dataport=0x07;while(dataport!=0x07); main() uchar shour=hour+1,sminute=minute+1,ssecond=second+1; csh(); choose12864(2); init12864(); clear12864(); play8(0,0,0,shu2); /屏,列,页,地址 play8(0,1,0,shu0); play16(0,4,0,nian); play16(1,0,0,yue); play16(1,4,0,ri); play16(0,2,1,shi); play16(0,6,1,fen); play16(1,2,1,miao); play16(1,0,2,xing); play16(1,2,2,qi); while(1) discode0=year/10; discode1=year%10; discode2=month/10; discode3=month%10; discode4=day/10; discode5=day%10; discode6=hour/10; discode7=hour%10; discode8=minute/10; discode9=minute%10; discode10=second/10; discode11=second%10; discode12=week/10; play8(0,2,0,(shu0+16*discode0); play8(0,3,0,(shu0+16*discode1); play8(0,6,0,(shu0+16*discode2); play8(0,7,0,(shu0+16*discode3); play8(1,2,0,(shu0+16*discode4); play8(1,3,0,(shu0+16*discode5); play8(0,0,1,(shu0+16*discode6); play8(0,1,1,(shu0+16*discode7); play8(0,4,1,(shu0+16*discode8); play8(0,5,1,(shu0+16*discode9); play8(1,0,1,(shu0+16*discode10); play8(1,1,1,(shu0+16*discode11); play16(1,4,2,(yi+32*discode12); gettemperature(); if(flag) play8(0,0,2,fu); else clear8(6,4,0);play8(1,6,3,zheng); play8(0,4+flag,2,dian); play8(0,5+flag,2,C); play8(0,0+flag,2,(shu0+16*temp0); play8(0,1+flag,2,(shu0+16*temp1); play8(0,2+flag,2,xiao); play8(0,3+flag,2,(shu0+16*temp2); keyscan(); switch(sum) case 0:setbit=0;flagg=1;break; case 1:setbit=1;flagg=1;break; case 2:setbit=2;flagg=1;break; case 3:setbit=3;flagg=1;break; case 4:setbit=4;flagg=1;break; case 5:setbit=5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全培训试卷及答案:2025年应急演练参演人员应急演练评估总结测试
- 2025年煤矿安全培训学员事故案例分析试卷及答案
- 2025年煤矿中层管理人员三级安全教育试卷及答案
- 2025年安全培训试卷及答案-爆破作业人员爆破安全规程测试
- 地下室防水砂浆施工方案
- 2026届天津市静海区独流中学等四校化学高一上期末考试模拟试题含解析
- 北京市西城区鲁迅中学2026届高三上化学期中达标检测模拟试题含解析
- 安全生产月活动方案工地
- 火灾安全隐患自查报告
- 具身智能+博物馆导览中虚拟现实机器人交互方案可行性报告
- 医疗器械报废方案
- 术后恶心呕吐诊疗指南(2025版)
- 全国大学生职业规划大赛《农村金融》专业生涯发展展示【高职(专科)】
- 2025年四川省拟任县处级领导干部任职资格试题及参考答案
- 二元一次方程组的应用(1)课件北师大版八年级数学上册
- DR成像技术操作规范与管理
- 中国石化2026年度毕业生招聘备考考试题库附答案解析
- 神奇的圆周率课件
- 2025年版民间借款合同范本全文
- 加油站油料安全培训内容课件
- 有机化学教改课题申报书
评论
0/150
提交评论