基于C51单片机技术的时钟课程设计报告.docx
《基于C51单片机技术的时钟课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于C51单片机技术的时钟课程设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
基于C51单片机技术的时钟课程设计报告
单片机技术
课设报告
福建工程学院软件学院
1摘要
众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
本设计要制作的就是单片机于生活中最为常见的几种应用——时钟。
本设计以AT89S52单片机作为核心,可以显示当前的时间,时间也可以人为设定,显示格式为时(两位),分(两位),秒(两位)。
设置时间的数值、启动定时器。
时钟显示电路由数码管组成,制作该装置的材料需要有软硬件的支持,硬件方面AT89C51单片机,晶振,电源,数码管。
2设计要求
2.1功能需求
1、在数码管上显示初始时间如12-23-33,从初始设置的时间开始走时,每一秒自动加1,当59秒后自动向分进位、59分后自动向时进位。
2、通过按键设置时间,按下键1,时钟分加1;按下键2,时钟分减1,。
从而实现用按键设置时间的功能。
2.2设计要求
本次设计的是时钟,本电路是由AT89S52单片机为控制核心,通过按键实现时钟分的自增自减进行时间的设置,在数码管上进行显示。
3 硬件设计及描述
3.1 总体描述
单片机采用STC90C516RD+,采用MCS-51实验开发板。
在实验开发板上,根据功能需求,设定了控制模块由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作,选用12MHZ的晶振,使得单片机有合理的运行速度;输入模块由按键控制,设定或调整时间信息;输出模块有数码管显示时间信息,通过对AT89S52单片机的编程控制数码管的显示。
3.2 系统总体框图
系统总体框图如图3-1所示:
图3-1系统总体框图
3.3 Proteus电路图
整体Proteus电路图如下图3-2所示:
图3-2整体Proteus电路图
3.4 各部分硬件介绍
AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
如下图3-3所示:
图3-3AT89C51仿真图
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
表3-1为74HC573的引脚功能表:
表3-174HC573引脚功能表
PINNo引脚号
SYMBOL符号
NAMEANDFUNCTION名称及功能
1
OE
3StateoutputEnableInput(ActiveLOW)3态输出使能输入(低电平)
2,3,4,5,6,7,8,9
D0toD7
DataInputs数据输入
12,13,14,15,16,17,18,19
Q0toQ7
3StateLatchOutputs3态锁存输出
11
LE
LatchEnableInput锁存使能输入
10
GND
Ground接地(0V)
20
VCC
PositiveSupplyVoltage电源电压
下图74HC573的仿真图,其中引脚2~9分别接AT89C51的P0,引脚12~19分别接数码管的A、B、C、D、E、F、G、D、P端,引脚1接电源端,引脚11接地端。
图3-474HC573仿真图
74HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。
两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。
在解调器应用中,赋能输入端可用作数据输入端。
下表为74HC138的真值表,其中H表示高电平,L表示低电平。
表3-274HC138真值表
下图为74HC138的仿真电路图,其中,引脚1、2、3分别接AT89C51的P0^0、P0^1、P0^2,引脚4、5接地,引脚5接一个上拉电阻并接电源端,Y0~Y7分别接数码管的引脚1~8。
图3-574HC138仿真图
下图为按键K1、K2的仿真图,K1接AT89C52的引脚P3^2控制时钟的分钟自加、K2接P3^3控制时钟的分钟自减。
图3-6开关K1、k2仿真图
下图为共阴数码管的方真图,其原理详见下文。
图3-7共阴数码管仿真图
4 软件设计流程及描述
4.1 程序流程图
程序流程图如图4-1所示:
图4-1程序流程图
4.2 函数模块及功能
4.2.1单片机主控制模块
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。
引脚图如图4-2所示:
图4-2AT89S52引脚结构
4.2.2数码管显示模块
LED数码管显示器的内部由8个发光二极管组成。
其中7个长条形的发光二极管排列成“日”字形,另一个圆点形状的发光二极管在显示器的右下角作为显示小数点用。
数码管的外观引脚结构如图4-3所示:
图4-3数码管的外观引脚结构
LED数码显示器的内部结构有两种不同的形式:
一种是8个发光二极管的阳极全部连接在一起组成公共端,8个发光二极管的阴极则单独引出,称为共阳极显示器,如图4-4。
另一种是8个发光二极管的阴极全部连接在一起组成公共端,8个发光二极管的阳极则单独引出,称为共阴极显示器,如图4-5所示:
图4-4共阳极显示器图4-5共阴极显示器
LED显示器字形码表,如表4-1所示:
表4-1LED显示器字形码表
本设计中主要用数码管显示当前时间和显示设置后的时间,数码管显示模块流程图,如图4-6所示:
图4-6数码管显示模块流程图
4.2.3按键模块
本设计采用按键控制时间的设置,通过按键的控制使时钟的分自增、自减从而实现时间的设置。
独立按键电路图,如图4-7所示:
图4-7独立按键电路图
按键模块流程图,如图4-8所示:
图4-8按键模块流程图
4.2.4计时模块
计数器:
是单片机应用中的重要部件,工作方式灵活,可以对外部事件计数和检测等;实现计数功能。
其核心是特殊功能寄存器中能进行加1计数的寄存器。
实现原理:
对T0或T1引脚输入的外部脉冲计数,如下图4-9所示:
+1计数器
溢出
中断
脉冲
控开关
图4-9计数器原理图
计时模块流程图,如图4-10所示:
图4-10计时模块流程图
5 功能实现
程序运行后从当前时间开始计时。
前一段前时间如图5-1所示:
图5-1一段时间前
一段时间后时间如图5-2所示:
图5-2一段时间后
以图5-2为当前初始时间,连续按4下键1,时钟分自增4次,如图5-3所示:
图5-3自增后时间
以图5-3为当前初始时间,连续按13下键2,时钟分自减13,如图5-4所示:
图5-4自减后时间
6 心得体会
通过此次实验,我完成了通过按键设置时钟时间,并用数码管进行显示,实现了时钟的计时功能。
本实验加深了我对单片机应用的了解。
实验过程中遇到了许多以前没有遇到的问题,这在某种程度上让我知道哪些知识是我还要加强的,哪些知识是我还欠缺的;同时也感谢老师耐心的指导。
总而言之,通过本实验的编译让我受益匪浅。
7 源程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
ucharcodew[8]={0,1,2,3,4,5,6,7};
sbitkey1=P3^2;
sbitkey2=P3^3;
sbitkey3=P3^4;
ucharsec=56;
ucharmin=34;
ucharhour=12;
uintcount;
voidDelay(uintxms);
voidsecond();
voidminute();
voidhours();
voidother();
voidftime();
voidOutside_Init(void);
voidtimer1_int(void);
voidcharge();
voidtimeon();
voidOutside_Init1(void);
voidOutside_Init0(void);
voidDelay(uintxms)
{
uinti,j;
for(i=0;ifor(j=0;j<148;j++)
;
}
voidsecond()
{
uchari,j;
i=sec/10;
j=sec%10;
P2=0x7;
P0=table[j];
Delay
(1);
P2=0x6;
P0=table[i];
Delay
(1);
}
voidminute()
{
uchari,j;
i=min/10;
j=min%10;
P2=0x4;
P0=table[j];
Delay
(1);
P2=0x3;
P0=table[i];
Delay
(1);
}
voidhours()
{
uchari,j;
i=hour/10;
j=hour%10;
P2=0x1;
P0=table[j];
Delay
(1);
P2=0x0;
P0=table[i];
Delay
(1);
}
voidother()
{
P2=0x2;
P0=0x40;
Delay
(1);
P2=0x5;
P0=0x40;
Delay
(1);
}
voidftime()
{
second();
minute();
hours();
other();
}
voidOutside_Init(void)
{
EX0=1;
IT0=1;
EX1=1;
IT1=1;
EA=1;
TMOD=0x10;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
ET1=1;
TR1=1;
}
voidOutside_Init0(void)interrupt0using0
{
Delay(20);
if(key1==0)
{
min++;
charge();
ftime();
}
}
voidOutside_Init1(void)interrupt2using1
{
Delay(20);
if(key2==0)
{
min--;
charge();
ftime();
}
}
voidtimer1_int(void)interrupt3using3
{
count++;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
}
voidcharge()
{
sec++;
if(sec==60)
{
sec=0;
min++;
}
if(min==60)
{
min=0;
hour++;
}
if(hour==24)
{
hour=0;
}
}
voidtimeon()
{
if(count>100)
{
count=0;
charge();
}
ftime();
}
voidmain()
{
ftime();
PX0=1;
Outside_Init();
while
(1)
timeon();
}
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。
尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者(本人签名):
年月日
学位论文出版授权书
本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。
论文密级:
□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)
作者签名:
_______导师签名:
_______
_______年_____月_____日_______年_____月_____日
独创声明
本人郑重声明:
所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。
尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。
本声明的法律后果由本人承担。
作者签名:
二〇一〇年九月二十日
毕业设计(论文)使用授权声明
本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。
本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。
(保密论文在解密后遵守此规定)
作者签名:
二〇一〇年九月二十日
致谢
时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。
首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。
本次毕业设计大概持续了半年,现在终于到结尾了。
本次毕业设计是对我大学四年学习下来最好的检验。
经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。
这期间凝聚了很多人的心血,在此我表示由衷的感谢。
没有他们的帮助,我将无法顺利完成这次设计。
首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。
郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。
从他身上,我学到了许多能受益终生的东西。
再次对周巍老师表示衷心的感谢。
其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。
另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。
最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。
四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。
从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。
回首四年,取得了些许成绩,生活中有快乐也有艰辛。
感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。
学友情深,情同兄妹。
四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美