基于单片机的万年历设计论文.docx

上传人:b****8 文档编号:10521714 上传时间:2023-02-17 格式:DOCX 页数:54 大小:128.24KB
下载 相关 举报
基于单片机的万年历设计论文.docx_第1页
第1页 / 共54页
基于单片机的万年历设计论文.docx_第2页
第2页 / 共54页
基于单片机的万年历设计论文.docx_第3页
第3页 / 共54页
基于单片机的万年历设计论文.docx_第4页
第4页 / 共54页
基于单片机的万年历设计论文.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

基于单片机的万年历设计论文.docx

《基于单片机的万年历设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的万年历设计论文.docx(54页珍藏版)》请在冰豆网上搜索。

基于单片机的万年历设计论文.docx

基于单片机的万年历设计论文

1.引言

1.1背景

1946年2月15日,第一台电子数字计算机ENIAC问世,这标志着计算机时代的到来。

计算机的发展,经历了电子计算机、晶体管计算机、集成电路计算机、大规模集成电路计算机和超大规模集成电路计算机五个时代。

微处理器、存储器和I/O接口电路构成微型计算机,从应用形态上,微型计算机可以分为三种:

多板机(系统机)、单板机和单片机。

在一片集成电路芯片上集成微处理器、存储器和I/O接口电路,从而构成了单芯片微型计算机,即单片机。

单片机体积小、控制功能强,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势!

单片机技术发展十分迅速,产品种类以琳琅满目,其发展经过三个阶段:

其一:

单片机形成阶段。

1976年,Intel公司提出了MCS-48系列单片机。

主要特点:

在单个芯片内完成了CPU、存储器和I/O接口等部件的集成;但存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。

其二:

单片机结构成熟阶段。

1980年,1976年,Intel公司提出MCS-51系列单片机。

主要特点:

存储器容量增加,寻址范围扩大(64K),结构体系成熟。

其三:

性能提高阶段。

近年来,个半导体厂商不断推出新型单片机芯片,典型的产品如Atmel公司的AT89C51RD2单片机。

主要特点:

控制性能优异、种类繁多。

现在,单片机芯片市场已经呈现出百发齐放、欣欣向荣的局面!

单片机应用技术已经成为电子应用系统设计中最为常用的技术手段,学习和掌握单片机应用技术具有极其重要的现实意义。

1.2应用价值

由于单片机具有良好地控制性能和灵活的潜入品质,其在各种领域都获得了极为广泛的应用。

单片机用于各种仪器仪表,一方面提高了仪器仪表的使用功能和精度,是仪器仪表智能化,同时还简化了仪器仪表的硬件结构,从而可以方便地完成与企业把产品的升级换代。

机电一体化产品是集机械技术、微电子技术、自动控制技术和计算机技术与一体,具有智能化特征的各种机电产品。

单片机还可以用于各种物理量的采集与控制,电流、电压、温度、液压、流量等物理参数的采集和控制均可以利用单片机方便地实现。

在较复杂的工业系统中,经常采用分布式测控系统完成大量的分布参数的采集。

在这一系统中,采用单片机作为分布式系统的前端采集模块,系统具有运行可靠,数据采集方便灵活,成本低廉这一系列优点。

家用电器是单片机的又一重要领域,前景十分广,另外,在交通领域中,汽车、火车、飞机、航天器等均有单片机的广泛应用。

1.3设计目的

利用单片机,时钟芯片、温度传感器、数码管等实现日期、时间、温度的显示即一个简单的万年历。

将我所学的单片机汇编语言应用及对所学知识的了解熟练运用!

加强对51系列单片机的构造了解及应用,熟悉汇编语言或C语言编程,综合掌握和理解设计各部分的工作原理、设计过程、芯片器件的选择方法、模块化编程等多项知识。

(1)通过万年历的设计掌握好对PROTEUS仿真设计的熟练使用;

(2)通过万年历的设计熟练掌握单片机的各个功能,并且对单片机有一个总体的把握,设计中对单片机各功能的了解,达到理想设计效果;

(3)设计中使用了时钟芯片DS1302、温度传感器DS18B20、LCD显示等,通过设计对他们熟练掌握;

(4)用PROTEUS仿真模拟实现具体应用使个人设计系统能够真正使用运行,遇到问题在解决问题;

(5)把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼,合作解决问题,直到弄透弄懂;

(6)提高利用已学的知识分析和解决问题的能力,加深自己对所学知识的理解运用。

 

2.设计方案

2.1设计任务

通过对所学知识,及对单片机的认识理解,完成一个带有温度测量功能的万年历的软件、硬件设计。

(1)万年历设计系统硬件

(2)万年历设计系统软件

2.2设计内容

(1)设计前进行总体规划,设计步骤;

(2)对各个元件的了解,画出设计原理电路图;

(3)用PROTEUS软件画出设计电路图;

(4)用KEIL软件编写程序;

(5)把C语言编写的程序转化成单片机可以识别的程序;

(6)在PROTEUS里模拟并调试程序,使其达到理想效果;

(7)填写设计任务书、说明书。

 

3.总体设计及核心部件简介

 

3.1总体设计框图

 

主程序流程图

 

万年历设计包括三大模块:

LCD显示(AMPIRE128x64)、DS1302时钟芯片与单片机时钟模块和DS18B20温度传感器与单片机温度模块。

3.2硬件设计

主控制器选用AT89C51单片机,利用AT89C51单片机的定时器/计数器定时和记数的原理,使其能精确计时。

利用中断系统使其实现开始暂停的功能。

P0口输出数据,P1.1----P1.4口接四个按钮开关,分别实现。

电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。

硬件电路图按照图3.1进行设计。

DS1302AT89C51LCD显示

单片机

控制器

控制开关DS18B20

 

图3.1万年历硬件电路基本原理图

 

AT89C51各引脚主要功能简介:

(1)VSS(20脚):

接地

(2)VCC(40脚):

主电源+5V

(3)XTAL1(19脚):

接外部晶体的一端。

在片内它是振荡电路反相放大器的输入端。

在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。

XTAL2(18脚):

接外部晶体的另一端。

在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。

若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。

(4)RST(9脚):

单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)

(5)PSEN(29脚):

在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。

CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。

不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。

PSEN端同样可驱动8个LSTTL负载。

我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别AT89C51是否在工作。

(6)ALE/PROG(30脚):

在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。

CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。

不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。

PSEN端同样可驱动8个LSTTL负载。

我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。

(7)EA/VPP(31脚):

当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。

当地址超出4KB时,将自动执行片外程序存储器的程序。

当EA输入低电平时,CPU仅访问片外程序存储器。

在对87C51EPROM编程时,此引脚用于施加编程电压VPP。

(8)输入/输出引脚:

1)P0.0—P0.7(39脚—32脚)

2)P1.0—P1.7(01脚—08脚)

3)P2.0—P2.7(26脚—21脚)

4)P3.0—P3.7(10脚—17脚)

3.3软件设计

3.3.1主程序:

#include

#include

#include"zimo.h"

#include"ds1302.h"

#include"ds18b20.h"

#include"lcd12864.h"

//按键定义

sbitKEY0=P1^1;

sbitKEY1=P1^2;

sbitKEY2=P1^3;

sbitKEY3=P1^4;

//键盘函数所要用到的变量

unsignedcharkey_operate=0;

unsignedchartimer=0;

unsignedcharkey_flag;

unsignedintcounter=0;

unsignedcharLcd_t=0;//LCD刷新间隔

unsignedcharflicker=0;//调时闪烁间隔

//-------------------------

voidInitTimer0(void)//产生10ms时间间隔

{

TMOD=(TMOD&0XF0)|0X01;//定时器0工作在模式1,16Bit定时器模式

TH0=(65536-8000)/256;

TL0=(65536-8000)%256;

TR0=1;ET0=1;//开启定时器和中断

EA=1;

}

/*****************************阳历转换阴历***********************************/

codeunsignedcharyear_code[597]={

0x04,0xAe,0x53,//19010

0x0A,0x57,0x48,//19023

0x55,0x26,0xBd,//19036

0x0d,0x26,0x50,//19049

0x0d,0x95,0x44,//190512

0x46,0xAA,0xB9,//190615

0x05,0x6A,0x4d,//190718

0x09,0xAd,0x42,//190821

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

0x04,0xdA,0x4e,//1953

0x0A,0x5B,0x43,//1954

0x35,0x2B,0xB8,//1955

0x05,0x2B,0x4C,//1956

0x8A,0x95,0x3f,//1957

0x0e,0x95,0x52,//1958

0x06,0xAA,0x48,//1959

0x7A,0xd5,0x3C,//1960

0x0A,0xB5,0x4f,//1961

0x04,0xB6,0x45,//1962

0x4A,0x57,0x39,//1963

0x0A,0x57,0x4d,//1964

0x05,0x26,0x42,//1965

0x3e,0x93,0x35,//1966

0x0d,0x95,0x49,//1967

0x75,0xAA,0xBe,//1968

0x05,0x6A,0x51,//1969

0x09,0x6d,0x46,//1970

0x54,0xAe,0xBB,//1971

0x04,0xAd,0x4f,//1972

0x0A,0x4d,0x43,//1973

0x4d,0x26,0xB7,//1974

0x0d,0x25,0x4B,//1975

0x8d,0x52,0xBf,//1976

0x0B,0x54,0x52,//1977

0x0B,0x6A,0x47,//1978

0x69,0x6d,0x3C,//1979

0x09,0x5B,0x50,//1980

0x04,0x9B,0x45,//1981

0x4A,0x4B,0xB9,//1982

0x0A,0x4B,0x4d,//1983

0xAB,0x25,0xC2,//1984

0x06,0xA5,0x54,//1985

0x06,0xd4,0x49,//1986

0x6A,0xdA,0x3d,//1987

0x0A,0xB6,0x51,//1988

0x09,0x37,0x46,//1989

0x54,0x97,0xBB,//1990

0x04,0x97,0x4f,//1991

0x06,0x4B,0x44,//1992

0x36,0xA5,0x37,//1993

0x0e,0xA5,0x4A,//1994

0x86,0xB2,0xBf,//1995

0x05,0xAC,0x53,//1996

0x0A,0xB6,0x47,//1997

0x59,0x36,0xBC,//1998

0x09,0x2e,0x50,//1999294

0x0C,0x96,0x45,//2000297

0x4d,0x4A,0xB8,//2001

0x0d,0x4A,0x4C,//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

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,0xBC,//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

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,0x4B,//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

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,0xBA,//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

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,0x49,//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

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,0x38,//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

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,0x47,//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

};

//月份数据表

codeunsignedcharday_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};

codeunsignedintday_code2[3]={0x111,0x130,0x14e};

/****************************************************************************

*子函数,用于读取数据表中农历月的大月或小月,如果该月为大返回1,为小返回0

****************************************************************************/

bitGetMoonDay(unsignedcharmonth_p,unsignedshorttable_addr)

{

switch(month_p)

{

case1:

if((year_code[table_addr]&0x08)==0)return(0);

elsereturn

(1);

case2:

if((year_code[table_addr]&0x04)==0)return(0);

elsereturn

(1);

case3:

if((year_code[table_addr]&0x02)==0)return(0);

elsereturn

(1);

case4:

if((year_code[table_addr]&0x01)==0)return(0);

elsereturn

(1);

case5:

if((year_code[table_addr+1]&0x80)==0)return(0);

elsereturn

(1);

case6:

if((year_code[table_addr+1]&0x40)==0)return(0);

elsereturn

(1);

case7:

if((year_code[table_addr+1]&0x20)==0)return(0);

elsereturn

(1);

case8:

if((year_code[table_addr+1]&0x10)==0)return(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1