AT89S52单片机的多功能电子万年历(6)

2019-04-01 21:55

成都理工大学工程技术学院毕业设计

总结

在整个设计过程中,硬件方面主要设计了AT89S52单片机的最小系统、DS1302接口电路、DS18B20接口电路、闹钟及LCD显示;软件方面借助各个渠道的资料,主要设计了阳历数据读取程序、阳历转阴历程序、温度采集程序、闹铃程序以及LCD显示程序;系统的调试主要是通过一块AT89S52开发板,再借助于Keil、STC以及少许自己搭建的外围电路实现的;再此过程中,分步调试时显示出了阳历的日期及时间,还有实时温度,集中调试时没有达到预期效果。此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

在整个设计过程中学到了许多没学到的知识,在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。在此次设计中,知道了做事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都要有耐心。在本次设计中学到了很多很多东西,这是最重要的。

总之,此次毕业设计使我们的能力得到了全方位的提高,这次设计的电子万年历也存在的不足的地方,有待于以后的改进。

26

成都理工大学工程技术学院毕业设计

参考文献:

[1] 苏平.单片机的原理与接口技术[M].北京:电子工业出版社,2006,1-113. [2] 王忠民.微型计算机原理[M].西安:西安科技大学出版社,2003,15-55. [3] 左金生.电子与模拟电子技术[M].北京:电子工业出版社,2004,105-131. [4] 新编单片机原理与应用(第二版).西安电子科技大学出版社,2007.2 [5] 张萌.单片机应用系统开发综合实例[M]. 北京:清华大学出版社,2007.7 [6] 朱思荣.51单片机实现公历与农历、星期的转换[Z].当当电子网 [7] 李广弟. 单片机原理及应用[M] 北京航空航天大学出版社,2004年 [8] 王越明.电子万年历的设计[J].黑龙江科技信息,2004年

27

成都理工大学工程技术学院毕业设计

附录一(程序)

#include

//#include\#include #include

#define uint unsigned int #define uchar unsigned char

#define wd 1 //定义是否有温度功能 =0时无温度,=1时有温度

#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)

#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)

//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口) sbit en=P2^7;

sbit rw=P2^6; //如果硬件上rw接地,就不用写这句和后面的rw=0了 sbit rs=P2^5;

//校时按键与C51的引脚连接定义

sbit set=P3^0; //设置键 sbit add=P3^1; //加键 sbit dec=P3^2; //减键

sbit seeNL_NZ=P3^3; //查看农历/闹钟

sbit DQ=P3^7; // sbit buzzer=P2^0; //蜂鸣器,通过三极管8550驱动,端口低电平响

sbit led=P2^4; //LCD背光开关 bit led1=1;

unsigned char temp_miao;

unsigned char bltime; //背光亮的时间

//DS1302时钟芯片与C51之间的引脚连接定义 sbit IO=P1^1; sbit SCLK=P1^0; sbit RST=P1^2;

27

成都理工大学工程技术学院毕业设计

uchar a,miao,shi,fen,ri,yue,nian,week,setn,temp; uint flag;

//flag用于读取头文件中的温度值,和显示温度值 bit c_moon;

uchar nz_shi=12,nz_fen=0,nz_miao=0,setNZn; //定义闹钟变量 uchar shangyimiao,bsn,temp_hour; //记录上一秒时间 uchar T_NL_NZ; //计数器

bit timerOn=0; //闹钟启用标志位 bit baoshi=0; //整点报时标志位

bit p_r=0; //平年/润年 =0表示平年,=1表示润年

data uchar year_moon,month_moon,day_moon,week;

sbit ACC0=ACC^0; sbit ACC7=ACC^7;

/************************************************************ ACC累加器=A ACC.0=E0H

ACC.0就是ACC的第0位。Acc可以位寻址。

累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,

是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时, 常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。

一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。 ***************************************************************/

//********阳历转换阴历表************************************ code uchar year_code[597]={

0x04,0xAe,0x53, //1901 0 0x0A,0x57,0x48, //1902 3 0x55,0x26,0xBd, //1903 6 0x0d,0x26,0x50, //1904 9 0x0d,0x95,0x44, //1905 12 0x46,0xAA,0xB9, //1906 15 0x05,0x6A,0x4d, //1907 18 0x09,0xAd,0x42, //1908 21

27

成都理工大学工程技术学院毕业设计

0x24,0xAe,0xB6, //1909 0x04,0xAe,0x4A, //1910 0x6A,0x4d,0xBe, //1911 0x0A,0x4d,0x52, //1912 0x0d,0x25,0x46, //1913 0x5d,0x52,0xBA, //1914 0x0B,0x54,0x4e, //1915 0x0d,0x6A,0x43, //1916 0x29,0x6d,0x37, //1917 0x09,0x5B,0x4B, //1918 0x74,0x9B,0xC1, //1919 0x04,0x97,0x54, //1920 0x0A,0x4B,0x48, //1921 0x5B,0x25,0xBC, //1922 0x06,0xA5,0x50, //1923 0x06,0xd4,0x45, //1924 0x4A,0xdA,0xB8, //1925 0x02,0xB6,0x4d, //1926 0x09,0x57,0x42, //1927 0x24,0x97,0xB7, //1928 0x04,0x97,0x4A, //1929 0x66,0x4B,0x3e, //1930 0x0d,0x4A,0x51, //1931 0x0e,0xA5,0x46, //1932 0x56,0xd4,0xBA, //1933 0x05,0xAd,0x4e, //1934 0x02,0xB6,0x44, //1935 0x39,0x37,0x38, //1936 0x09,0x2e,0x4B, //1937 0x7C,0x96,0xBf, //1938 0x0C,0x95,0x53, //1939 0x0d,0x4A,0x48, //1940 0x6d,0xA5,0x3B, //1941 0x0B,0x55,0x4f, //1942 0x05,0x6A,0x45, //1943 0x4A,0xAd,0xB9, //1944 0x02,0x5d,0x4d, //1945 0x09,0x2d,0x42, //1946 0x2C,0x95,0xB6, //1947 0x0A,0x95,0x4A, //1948 0x7B,0x4A,0xBd, //1949 0x06,0xCA,0x51, //1950 0x0B,0x55,0x46, //1951 0x55,0x5A,0xBB, //1952

27


AT89S52单片机的多功能电子万年历(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011届高三一轮语文卷:扩展语句,压缩语段

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: