- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计报告
设计题目: 实时电子钟
班 级:
姓 名:
学 号: 20094082044
指导教师:
调试地点:
调试时间: 2011-11-30
成 绩:
一、设计任务及要求。
1、用单片机定时器设计实时钟程序
2、具有时间调整功能
3、时间尽量准确
二、总体设计思路及功能描述(附框图)。
1、总体方案构思:通过使用定时计数器以及中断溢出,50ms中断溢出一次,溢出20次为1S。所以当定时溢出计数变量temp自加20次时计数变量miao自加1,直到加到第60次时miao(秒)清零,并且计数变量fen自加1,直到fen加到第60次时,fen(分)清零且shi(时)自加1,直到shi加到第24次时,shi(小时)清零。最后经译码后,通过扫描显示模块程序将得到的时钟结果以动态显示的方式显示在8位一体共阳数码管上;通过键盘扫描程序和按键程序实现时间调整功能,当按下键1时,shi加1,当按下键7时,shi减一,当按下键4时,fen加1,当按下键5时,fen减1,当按下键8时,时间清0,从0开始计时。
三、各部分软硬件设计原理及方案详细说明。
硬件原理图如下
显示模块电路
正确计时及显示时间
按键模块电路
对小时,分进行调整,以及对计时进行清0.
系统主源程序流程图如下图所示,源程序见附件。
图4.1 系统主程序流程图
各子程序模块及说明
初始化定义函数
void init()
{
flag=0;
P0=0xff;
temp=0;
miao=0;
fen=0;
shi=0;
CLK=0;
TMOD=0X01;//定时器0初始化
TH0=0x3C;
TL0=0xB0;
EA=1;
ET0=1;
TR0=1;
}
定时计数器中断函数
重装初值,开始计数
对溢出中断计数,并判断是否为20次,若是则temp清零秒加1;判断秒是否加到59,若秒加到59,则秒清零分加1;判断分是否分是否加到59,若分加到了59,则分清零时加1;判断时是否加到23,若时加到23,则时清零。
void timer0() interrupt 1//定时计数器0中断程序,每当定时计数器溢出时触发中//断,执行该程序
{
TH0=0x3C;
TL0=0xB0;
if(temp==20)
{
temp=0;
if(miao==59)
{miao=0;
if(fen==59)
{fen=0;
if(shi==23)
shi=0;
else shi++;
}
else fen++;
}
else miao++;
}
else temp++;
s1=shi/10;
s0=shi%10;
f1=fen/10;
f0=fen%10;
m1=miao/10;
m0=miao%10;
}
显示函数
显示指定的位及数字
void display(char wei,char shu)
{
uchar m,n;
clear164();
DIN=0;
for(n=wei;n0;n--)//去掉没有显示的位数
{
CLK=0;
CLK=1;
DIN=1;
}
CLK=0;
CLK=1;
P0=tabdu[shu]; //显示号码的位数
delay(1);
P0=0xff;
for(m=8-wei;m0;m--)//去掉剩下的位数
{
DIN=1;
CLK=0;
CLK=1;
}
}
按键调整程序
按相应的键,完成对时间的调整。
uchar keyscan()
{
char i,j;
j=0;
clear164();
P0=0xff; //清除没有用到的位显示
DIN=0;
for(i=0;i8;i++)
{
CLK=0;
CLK=1;
DIN=1;
if(key==0) //判断检测端口是否为0,若是就为按键值
{
delay(10);
if(key==0)
{
while(!key); //松手检测
j=i+1;
}
}
}
return j;
}
void set()
{ hao=keyscan();
switch(hao)
{ case 8:{shi=0,fen=0,miao=0}break;
case 1:{shi++;
if(shi
您可能关注的文档
- FANUC数控系统零件的加工方法与编程毕 业(论文)设 计.doc
- PTA法生产PET工艺论述.doc
- 本田雅阁行驶系检修与维护.doc
- 毕业论文答辩幻灯片.ppt
- 毕业论文危险化学品安全运输.doc
- 春夏秋冬四季温度的变化原理.doc
- 单模光纤的色散补偿技术的研究毕业论文.doc
- 电脑艺术专业毕业论文中国动漫专业分析及就业前景.doc
- 方波-三角波-正弦波函数发生器设计.doc
- 国产汽车在我国汽车市场中的崛起毕业论文 文档.doc
- 计及电动汽车移动储能动态电价的微电网优化调度研究及解决方案.pdf
- 浅谈电动汽车充电桩绝缘智能化自检装置的设计与应用 .pdf
- 浅谈电动汽车公共充电桩布局方案评价方法.pdf
- 浅谈基于弹性响应的电动汽车快充电价定价策略 汽车充电桩有序充电.pdf
- 浅谈光储充一体化社区的有序充电策略及解决方案.pdf
- 晚期肾透明细胞癌系统性治疗中国专家共识(2024版).pptx
- 中国膀胱癌保膀胱治疗多学科诊治协作共识(2022版).pptx
- 成人心血管外科手术体外循环患者血液管理指南.pptx
- 下尿路修复重建移植物应用规范中国专家共识.pptx
- 中国儿童急性非静脉曲张性上消化道出血诊治指南(2024).pptx
文档评论(0)