带温度无字库12864的万年历程序_第1页
带温度无字库12864的万年历程序_第2页
带温度无字库12864的万年历程序_第3页
带温度无字库12864的万年历程序_第4页
带温度无字库12864的万年历程序_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、.SW08A15_带温度无字库12864的万年历程序文章来源:网络转载     发布时间:2008-8-22 21:43:01     浏览次数:283 本例程完成了万年历的显示,包括设置时间,农历,温度,1302的初始化以及帮助界面,采用不带字库的12864,所以整体程序比较大,编译完成后,不能在89C52中运行,建议使用89C54。本程序还有很多冗杂之处,未做调整,全做抛砖引玉。#include "reg52.h"#include "sw08a15.h"#include

2、"1302.h"#include "12864.h"#include "intrins.h"uchar num,week;uchar timeNow6;uint  LunarCal;uchar SolarCalYear, SolarCalMonth, SolarCalDay;uchar times=0;uchar wendu=0;uchar code dian32=0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,/

3、*:*/;uchar code hz32=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*/0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,

4、0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00,/*"月",1*/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,/*"日",2*/0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x

5、2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00,/*"星",3*/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,/*&

6、quot;期",4*/0x00,0x20,0x18,0x08,0x88,0xE8,0x1F,0x6A,0x88,0x08,0x88,0xC8,0xA8,0x1C,0x08,0x00,0x08,0x04,0x02,0x41,0xFF,0x40,0x20,0x10,0x01,0x02,0x0D,0x18,0x70,0x20,0x20,0x00,/*"农",5*/0x00,0x00,0xFE,0x02,0x22,0x22,0x22,0x22,0xFA,0x22,0x22,0x22,0xE2,0x02,0x02,0x00,0x40,0x30,0x0F,0x00,0x40,

7、0x20,0x18,0x06,0x01,0x00,0x20,0x60,0x3F,0x00,0x00,0x00,/*"历",6*/0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,/*"温",7*/0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0x

8、A4,0xFC,0x24,0x24,0x24,0x04,0x00,0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,/*"度",8*/0x00,0x02,0x05,0xE2,0x18,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x18,0x00,0x00,/*"

9、",9*/0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,/*"设",10*/0x00,0x20,0x2F,0xA9,0xA9,0xAF,0xE9,0xB9,0xA9,0xAF,0xA9,0xA9,0x2F,0x20,0x00,0x00,0x80,0x80,0x80,0xFF,0xAA,0xAA,

10、0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0x80,0x80,0x80,0x00,/*"置",11*/0x00,0x20,0x2A,0x2A,0xAA,0x7F,0x2A,0x2A,0xAA,0x00,0xFE,0x42,0x9A,0xA6,0x42,0x00,0x00,0x04,0x02,0x01,0x3E,0x02,0x02,0x02,0xFF,0x02,0x13,0x22,0x1E,0x00,0x00,0x00,/*"帮",12*/0x00,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x10,0x10,

11、0xFF,0x10,0x10,0xF0,0x00,0x00,0x10,0x10,0x1F,0x11,0x11,0x09,0x4F,0x28,0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00,/*"助",13*/0x40,0x40,0x42,0xCC,0x00,0x50,0x4E,0xC8,0x48,0x7F,0xC8,0x48,0x48,0x40,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x48,0x46,0x41,0x40,0x40,0x47,0x48,0x48,0x4E,0x40,0x00,/*"选&

12、quot;,14*/0x08,0x08,0xFF,0x88,0x48,0x08,0x42,0x46,0x2A,0xD2,0x2A,0x46,0x42,0x80,0x80,0x00,0x42,0x81,0x7F,0x00,0x00,0x08,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x08,0x08,0x00,/*"择",15*/0x20,0x21,0xEE,0x04,0x00,0x00,0xFF,0x29,0xA9,0xBF,0xA9,0xA9,0x01,0xFF,0x00,0x00,0x00,0x00,0x1F,0x88,0x44,0x30,

13、0x0F,0x00,0x0F,0x04,0x04,0x4F,0x80,0x7F,0x00,0x00,/*"调",16*/0x00,0x04,0x74,0xD4,0xFF,0xD4,0x74,0x04,0x10,0x0C,0xB7,0x44,0xB4,0x0C,0x04,0x00,0x00,0x42,0x43,0x7A,0x43,0x42,0x43,0x7E,0x4B,0x4B,0x4A,0x4A,0x42,0x43,0x01,0x00,/*"整",17*/0x00,0x84,0xE4,0x5C,0x44,0xC4,0x10,0xF8,0x97,0x92,

14、0xF2,0x9A,0x96,0xF2,0x00,0x00,0x01,0x00,0x3F,0x08,0x88,0x4F,0x30,0x0F,0x04,0x04,0x3F,0x44,0x84,0x7F,0x00,0x00,/*"确",18*/0x40,0x41,0x42,0xCC,0x04,0x00,0x00,0x00,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x20,0x90,0x60,0x18,0x07,0x00,0x03,0x0C,0x30,0xC0,0x40,0x00,/*"认&

15、quot;,19*/0x40,0x42,0xDC,0x08,0x00,0x00,0xFE,0x52,0x92,0x12,0x12,0x92,0x73,0x02,0x00,0x00,0x40,0x20,0x1F,0x20,0x48,0x46,0x51,0x50,0x48,0x45,0x42,0x45,0x48,0x50,0x00,0x00,/*"返",20*/0x00,0xFE,0x02,0x02,0xF2,0x12,0x12,0x12,0x12,0x12,0xF2,0x02,0x02,0xFE,0x00,0x00,0x00,0x7F,0x40,0x40,0x47,0x44,

16、0x44,0x44,0x44,0x44,0x47,0x40,0x40,0x7F,0x00,0x00,/*"回",21*/0x00,0x08,0x88,0xC9,0x2E,0x98,0x48,0x00,0x08,0x08,0xF8,0x08,0x08,0xFC,0x08,0x00,0x02,0x01,0x00,0x7F,0x01,0x02,0x44,0x20,0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00,/*"初",22*/0x10,0x90,0x70,0x1F,0x12,0xF0,0x00,0x20,0x70,0x28,

17、0x27,0x22,0x28,0x70,0x20,0x00,0x40,0x21,0x12,0x0C,0x06,0x09,0x30,0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,/*"始",23*/0x80,0x40,0x20,0xF8,0x07,0x02,0x00,0x00,0xFF,0xC0,0x60,0x30,0x1C,0x08,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x04,0x02,0x01,0x3F,0x40,0x40,0x40,0x40,0x78,0x00,0x00,/*"化&

18、quot;,24*/;uchar code weekCode32=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*/0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x00,0x1

19、0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00,/*"二",1*/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*/0x00,0xFE,0x02,0x02,0x02,0xFE,

20、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*/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,0

21、x20,0x00,/*"五",4*/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*/0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x0

22、0,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00,/*"日",6*/;uchar code numberCode16=0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,/*"0",0*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"1&

23、quot;,1*/0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,/*"2",2*/0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,/*"3",3*/0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,/*"4&quo

24、t;,4*/0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,/*"5",5*/0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,/*"6",6*/0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,/*"7",

25、7*/0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,/*"8",8*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,/*"9",9*/0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,/*"A",0*/

26、0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,/*"B",11*/0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,/*"C",12*/0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,/*"D",13*/

27、0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,/*"E",14*/0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,/*"F",15*/;/农历数据/uchar code  year_code=    0x4d,0x4A,0xB8,  /2001   0x0d,0x4A,0x

28、4C,  /2002   0x0d,0xA5,0x41,  /2003   0x25,0xAA,0xB6,  /2004   0x05,0x6A,0x49,  /2005   0x7A,0xAd,0xBd,  /2006   0x02,0x5d,0x52,  /2007   0x09,0x2d,0x47,  /2008   0x5C,0x95,0xBA,  /2009 

29、;  0x0A,0x95,0x4e,  /2010   0x0B,0x4A,0x43,  /2011   0x4B,0x55,0x37,  /2012   0x0A,0xd5,0x4A,  /2013   0x95,0x5A,0xBf,  /2014   0x04,0xBA,0x53,  /2015   0x0A,0x5B,0x48,  /2016   0x65,0x2B,0x

30、BC,  /2017   0x05,0x2B,0x50,  /2018   0x0A,0x93,0x45,  /2019   0x47,0x4A,0xB9,  /2020   0x06,0xAA,0x4C,  /2021   0x0A,0xd5,0x41,  /2022   0x24,0xdA,0xB6,  /2023   0x04,0xB6,0x4A,  /2024 

31、;  0x69,0x57,0x3d,  /2025   0x0A,0x4e,0x51,  /2026   0x0d,0x26,0x46,  /2027   0x5e,0x93,0x3A,  /2028   0x0d,0x53,0x4d,  /2029   0x05,0xAA,0x43,  /2030   0x36,0xB5,0x37,  /2031   0x09,0x6d,0x

32、4B,  /2032   0xB4,0xAe,0xBf,  /2033   0x04,0xAd,0x53,  /2034   0x0A,0x4d,0x48,  /2035   0x6d,0x25,0xBC,  /2036   0x0d,0x25,0x4f,  /2037   0x0d,0x52,0x44,  /2038   0x5d,0xAA,0x38,  /2039 

33、;  0x0B,0x5A,0x4C,  /2040   0x05,0x6d,0x41,  /2041   0x24,0xAd,0xB6,  /2042   0x04,0x9B,0x4A,  /2043   0x7A,0x4B,0xBe,  /2044   0x0A,0x4B,0x51,  /2045   0x0A,0xA5,0x46,  /2046   0x5B,0x52,0x

34、BA,  /2047   0x06,0xd2,0x4e,  /2048   0x0A,0xdA,0x42,  /2049   0x35,0x5B,0x37,  /2050   0x09,0x37,0x4B,  /2051   0x84,0x97,0xC1,  /2052   0x04,0x97,0x53,  /2053   0x06,0x4B,0x48,  /2054 

35、;  0x66,0xA5,0x3C,  /2055   0x0e,0xA5,0x4f,  /2056   0x06,0xB2,0x44,  /2057   0x4A,0xB6,0x38,  /2058   0x0A,0xAe,0x4C,  /2059   0x09,0x2e,0x42,  /2060   0x3C,0x97,0x35,  /2061   0x0C,0x96,0x

36、49,  /2062   0x7d,0x4A,0xBd,  /2063   0x0d,0x4A,0x51,  /2064   0x0d,0xA5,0x45,  /2065   0x55,0xAA,0xBA,  /2066   0x05,0x6A,0x4e,  /2067   0x0A,0x6d,0x43,  /2068   0x45,0x2e,0xB7,  /2069 

37、;  0x05,0x2d,0x4B,  /2070   0x8A,0x95,0xBf,  /2071   0x0A,0x95,0x53,  /2072   0x0B,0x4A,0x47,  /2073   0x6B,0x55,0x3B,  /2074   0x0A,0xd5,0x4f,  /2075   0x05,0x5A,0x45,  /2076   0x4A,0x5d,0x

38、38,  /2077   0x0A,0x5B,0x4C,  /2078   0x05,0x2B,0x42,  /2079   0x3A,0x93,0xB6,  /2080   0x06,0x93,0x49,  /2081   0x77,0x29,0xBd,  /2082   0x06,0xAA,0x51,  /2083   0x0A,0xd5,0x46,  /2084 

39、;  0x54,0xdA,0xBA,  /2085   0x04,0xB6,0x4e,  /2086   0x0A,0x57,0x43,  /2087   0x45,0x27,0x38,  /2088   0x0d,0x26,0x4A,  /2089   0x8e,0x93,0x3e,  /2090   0x0d,0x52,0x52,  /2091   0x0d,0xAA,0x

40、47,  /2092   0x66,0xB5,0x3B,  /2093   0x05,0x6d,0x4f,  /2094   0x04,0xAe,0x45,  /2095   0x4A,0x4e,0xB9,  /2096   0x0A,0x4d,0x4C,  /2097   0x0d,0x15,0x41,  /2098   0x2d,0x92,0xB5,  /2099;ucha

41、r code  day_code19=0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3;uint code  day_code23=0x111,0x130,0x14e;/农历转换算法bit get_moon_day(uchar month_p,uint table_addr)/bit15-9-year,bit8-5-month,bit4-0-day switch (month_p)  case 1: if(year_codetable_addr&0x08)=0) return(0);else return(1

42、);  case 2: if(year_codetable_addr&0x04)=0) return(0);else return(1);  case 3: if(year_codetable_addr&0x02)=0) return(0);else return(1);  case 4: if(year_codetable_addr&0x01)=0) return(0);else return(1);  case 5: if(year_codetable_addr+1&0x80)=0) return(0);else re

43、turn(1);  case 6: if(year_codetable_addr+1&0x40)=0) return(0);else return(1);  case 7: if(year_codetable_addr+1&0x20)=0) return(0);else return(1);  case 8: if(year_codetable_addr+1&0x10)=0) return(0);else return(1);  case 9: if(year_codetable_addr+1&0x08)=0) retur

44、n(0);else return(1);  case 10: if(year_codetable_addr+1&0x04)=0) return(0);else return(1);  case 11: if(year_codetable_addr+1&0x02)=0) return(0);else return(1);  case 12: if(year_codetable_addr+1&0x01)=0) return(0);else return(1);  case 13: if(year_codetable_addr+2&am

45、p;0x80)=0) return(0);else return(1); uint Conversion(uchar year,uchar month,uchar day)      uchar  temp1,temp2,temp3,month_p;  uint  temp4,table_addr;  uint dat_return,dat_buffer;    bit  flag_y;     table_addr=(year-1)*3;

46、60;     temp1=year_codetable_addr+2&0x60;    temp1=_cror_(temp1,5);      temp2=year_codetable_addr+2&0x1f;       if(temp1=0x1)           temp3=temp2-1;       

47、;    else         temp3=temp2+0x1f-1;            if (month<10)         temp4=day_code1month-1+day-1;       else       

48、0; temp4=day_code2month-10+day-1;       if (month>0x2)&&(year%0x4=0)         temp4+=1;         if (temp4>=temp3)         temp4-=temp3;     mo

49、nth=0x1;      month_p=0x1;        flag_y=0;      if(get_moon_day(month_p,table_addr)=0)temp1=0x1d;      else temp1=0x1e;       temp2=year_codetable_addr/16;    

50、    while(temp4>=temp1)              temp4-=temp1;         month_p+=1;         if(month=temp2)         

51、;         flag_y=flag_y;           if(flag_y=0)month+=1;                   else month+=1;      

52、   if(get_moon_day(month_p,table_addr)=0)temp1=0x1d;         else temp1=0x1e;             day=temp4+1;       else           t

53、emp3-=temp4;       year-=1;      table_addr-=0x3;      month=0xc;      temp2=year_codetable_addr/16;      if (temp2=0)month_p=0xc;       else mon

54、th_p=0xd;        flag_y=0;      if(get_moon_day(month_p,table_addr)=0)temp1=0x1d;      else temp1=0x1e;      while(temp3>temp1)           

55、0;  temp3-=temp1;         month_p-=1;         if(flag_y=0)month-=1;         if(month=temp2)flag_y=flag_y;         if(get_moon_day(month

56、_p,table_addr)=0)temp1=0x1d;         else temp1=0x1e;              day=temp1-temp3+1;          dat_buffer=0;  dat_return=0;  dat_buffer=(uint)year;  d

57、at_buffer<<=9;  dat_return|=dat_buffer;  dat_buffer=(uint)month;  dat_buffer<<=5;  dat_return|=dat_buffer;  dat_return|=(uint)day;  return dat_return; /温度函数/Init_DS18B20(void) unsigned char x=0; DQ = 1;    /DQ复位 delay(8);&#

58、160; /稍做延时 DQ = 0;    /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1;    /拉高总线 delay(14); x=DQ;      /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20);/读一个字节ReadOneChar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;

59、i-)   DQ = 0; / 给脉冲信号  dat>>=1;  DQ = 1; / 给脉冲信号  if(DQ)   dat|=0x80;  delay(4);  return(dat);/写一个字节WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-)   DQ = 0;  DQ = dat&0x01;  delay(5);&

60、#160; DQ = 1;  dat>>=1; /读取温度float ReadDQerature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是

61、温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625;return(tt);/void displayMessage()hz_disp8(0,0,numberCode2,0); /20hz_disp8(0,8,numberCode0,0); /20hz_disp16(0,32,hz0,0);/年hz_disp16(0,64,hz1,0);/月hz_disp16(0,96,hz2,0);/日hz_disp8(2,16,dian,0);/点hz_disp8(2,40,dian,0);/点hz_disp16(2,72,

62、hz3,0);/星hz_disp16(2,72+16,hz4,0);/期hz_disp16(4,0,hz5,0);/农hz_disp16(4,16,hz6,0);/历hz_disp8(4,32,dian,0);/点hz_disp16(4,64,hz1,0);/月hz_disp16(4,96,hz2,0);/日hz_disp16(6,0,hz7,0);/温hz_disp16(6,16,hz8,0);/度hz_disp8(6,32,dian,0);/点hz_disp16(6,64,hz9,0);/hz_disp16(6,80,hz12,0);/帮hz_disp16(6,96,hz13,0);/助h

63、z_disp8(6,112,numberCode15,0);/Fhz_disp8(6,120,numberCode2,0);/2/main()int i=0;/*DsInit();*/delay(1000);init_lcd();Clr_Scr();EA=0;displayMessage();/定时器0设置 TMOD=0x01; TH1=0x4c; TL1=0x00; EA=1; ET0=1;/允许计时器0 TR0=1;/开始计时/外部中断0设置IT0=0;/低电平触发方式EX0=1;/允许中断0IT1=0;/低电平触发方式EX1=1

64、;/允许中断1/本程序不使用点阵显示,所以关闭点阵显示,防止按键影响。 SwFunc=SwNothing; P1=0; P0=0; SwFunc=DzR; while(1)   void t1int() interrupt 1EA=0;TH1=0x4c;TL1=0x00;if(times)times=0;GetTimer(timeNow);hz_disp8(0,16,numberCode(timeNow0>>4),0);   /年 十位hz_disp8(0,24,numberCode

65、(timeNow0&0x0f),0); /年 个位hz_disp8(0,48,numberCode(timeNow1>>4),0);   /月 十位hz_disp8(0,56,numberCode(timeNow1&0x0f),0); /月 个位hz_disp8(0,80,numberCode(timeNow2>>4),0);   /日 十位hz_disp8(0,88,numberCode(timeNow2&0x0f),0); /日 个位hz_disp8(2,0,numberCode(timeNow3>

66、;>4),0);   /时 十位hz_disp8(2,8,numberCode(timeNow3&0x0f),0); /时 个位hz_disp8(2,24,numberCode(timeNow4>>4),0);   /分 十位hz_disp8(2,32,numberCode(timeNow4&0x0f),0); /分 个位hz_disp8(2,48,numberCode(timeNow5>>4),0);   /秒 十位hz_disp8(2,56,numberCode(timeNow5&am

67、p;0x0f),0); /秒 个位GetWeek(&week);hz_disp16(2,104,weekCode(week&0x0f)-1,0); /周 个位SolarCalYear=(timeNow0>>4)*10+(timeNow0&0x0f);SolarCalMonth=(timeNow1>>4)*10+(timeNow1&0x0f);SolarCalDay=(timeNow2>>4)*10+(timeNow2&0x0f);LunarCal=Conversion(SolarCalYear,SolarCalMont

68、h,SolarCalDay);/bit15-9-year,bit8-5-month,bit4-0-daySolarCalYear=LunarCal>>9;/为了节省空间,赞用阳历变量。SolarCalMonth=(LunarCal&0x01ff)>>5;SolarCalDay=LunarCal&0x001f;hz_disp8(4,48,numberCodeSolarCalMonth/10,0);hz_disp8(4,56,numberCodeSolarCalMonth%10,0);hz_disp8(4,80,numberCodeSolarCalDay/1

69、0,0);hz_disp8(4,88,numberCodeSolarCalDay%10,0);elsetimes=1;wendu=(int)ReadDQerature();hz_disp8(6,48,numberCodewendu/10,0);hz_disp8(6,56,numberCodewendu%10,0);EA=1;void keyInt() interrupt 0uchar func=0;uchar smw=0,exitKey=1,temp;EA=0;EX0=0;hz_disp8(0,16,numberCode(timeNow0>>4),1);GetTimer(timeN

70、ow);dofor(smw=0;smw<16;smw+)  KeyState=1; P0=smw; SwFunc=DzC; delay(3); if(KeyState=0)/对应键被按下,我们设置,A键为选择键,B键为设置结束,E键为数字加     delay(10);   if(KeyState=0)/软件防抖动       while(KeyState=0);/等待按键被抬起后

71、才开始相应动作    switch(smw)        case 0x0a:/选择键    func+;    if(func>12) func=0;    break;   /    case 0x0b:/设置结束    exitKey=

72、0;    SetTimer(timeNow);    SetWeek(&week);    break;    case 0x0f:/设置初始化    DsInit();    break;   /    case 0x0e:/数字加     switch(func)          case 0:     temp=(timeNow0>>4); /年 十位     temp+;   &

温馨提示

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

评论

0/150

提交评论