- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
时钟仿真实验报告
班级
电子0934
姓名(学
号)
周志武(21)
雷维(19)
蒋志伟(28)
杨琼(22)
项目分工
方案总体设 计、程序集 成、报告撰写
时钟中断计
时模块函数
设计
显示模块函
数设计
仿真电路设
计及调试
一、任务及要求
用51单片机设计时、分、秒计时器,具体要求如下。
1、 具有时、分、秒计时功能和 8位数码管显示功能,显示格
式为:“时—分—秒”;
2、 用Proteus设计仿真电路进行结果仿真;
3、 4人组成设计小组完成,小组成员有明确分工,1人负责总 体方案设计及报告撰写,2人负责功能模块函数设计,1人负责仿真 电路设计及调试。
4、 完成程序设计、仿真电路设计、结果仿真,完成报告并上
传空间课程栏目中的课程设计报告子栏目中。
二、设计方案:
1、总体方案构思:通过使用定时计数器以及中断溢出, 50ms中断溢 出一次,溢出20次为1S。所以当定时溢出计数变量temp自加20次 时计数变量miao自加1,直到加到第60次时miao(秒)清零,并且计 数变量fen自加1,直到fen加到第60次时,fen(分)清零且shi(时)
自加1,直到shi加到第24次时,shi(小时)清零。最后经译码后, 通过扫描显示模块程序将得到的时钟结果以动态显示的方式显示在 8
位一体共阳数码管上。
2、 程序功能模块说明:此时钟程序包括时钟中断计时、延时函数、
显示函数等模块
3、 仿真电路构成:此次时钟程序的仿真电路的设计较简单,硬件部
分主要有AT89C52单片机芯片一块、八位一体LED共阳数码管一块、
8个普通电阻以及8个逻辑非门。其中8个普通电阻用作P0 口上拉 电阻。另外,由于数码管是共阳的,而实际程序中的位码是以低电平 有效的,所以八个逻辑非门用来取反单片机输出的位码。
4、 时钟计时程序设计思想分析:采用定时计数器 TO,工作方式1, 定时50ms再对定时溢出中断次数计数,若溢出了 20次则时间为1 秒!
5、函数模块程序流程图:
初始化定义定时计数器 及其中断初 始化函数
初始化定义
定时计数器 及其中断初 始化函数
文件包含 常量定义 变量定义 数据表格定义
设置定时器工作方式 (TMOD) 定时器赋初值(THx、TLx) 开总中断(EA=1)
开定时器计数中断(ETx=1) 启动定时器(THx=1)
void timer0i nit(void)
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
延时函数
延时函数通式
void delay( uint n)
uint i,j;
for(i=n;i0;i--) for(j=124;j0;j--);
定时计数 器中断函 数
重装初值,开始计数
对溢出中断计数,并判断是否 为20次,若是则temp清零秒 加1;判断秒是否加到 59,若 秒加到59,则秒清零分加1 ; 判断分是否分是否加到 59,若 分加到了 59,则分清零时加1 ; 判断时是否加到23,若时加到 23,则时清零。
显 示 函 数
秒输出各位位码 秒输出各位段码 分输出十位位码 分输出十位段码 时输出十位位码 时输出十位段码
P1=0x7f; P0=table[miao%10]; delay(5); // 亮 5ms
P1=0xbf;
P0=table[miao/10];
delay(5); // 亮 5ms P1=0xdf; P0=0xbf;
P1=0xef;
delay(5); //
P1=0xf7;
delay(5); //
P1=0xfb;
delay(5);
P0=table[fe n%10]; 亮5ms
P0=table[fe n/10]; 亮5ms
P0=0xbf; delay(5);
];
主函数
P1=0xfd; P0=table[shi%10 delay(5); // 亮 5ms
P1=0xfe;
delay(5); // 亮 5ms
P0=table[shi/10];
{
TH0=(65536-50000 )/256;
TL0=(65536-50000) %256;
if(temp==20)
)/256;
TH0=(65536-50000
%256;
TL0=(65536-50000)
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++;
}
调用初始化函数对定时计
数器进行初始化
调用显示函数显示时间
void ma in (
您可能关注的文档
最近下载
- 2025年安徽省普通高校分类考试招生和对口招生文化素质测试语文试题2025.pdf VIP
- 医疗器械管理评审控制程序.doc
- 大豆玉米带状复合种植机械化播种技术-农业农机技术培训PPT.pptx VIP
- 机关事业单位人员遗属享受生活困难补助条件审核表.docx
- 人教版(25秋新教材)三年级上册数学第七单元《复习与关联》全单元教学课件.pptx
- 学堂在线 中国共产党与中华民族伟大复兴 期末考试答案.docx VIP
- 临床检验基础.ppt VIP
- DZZ5新型自动气象站采集器及综合集成硬件控制器故障分析.docx VIP
- 2025年第九次全国少代会.docx VIP
- 大庆杜尔伯特蒙古族自治县事业单位人才引进笔试真题2023.docx VIP
原创力文档


文档评论(0)