- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机救生的宴制想告
学院:电子工程学院
专业:机电一体化
班级:
姓名:
手机号:一、任务及要求
用51单片机设计时、分、秒计时器,详细要求如下。
1、具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时一 分一秒”;2、用Proteus设计仿真电路进行结果仿真;
3、4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计 及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。
4、完成程序设计、仿真电路设计、结果仿真。
5、本试验要求设计一个数字计时器,可以完成。分00秒?23小时59分59 秒的计时功能,并在掌握电路的作用下有开机清零。
6、指标要求:
①,显示时、分、秒。
②采纳24小时制,小时计数器按“23翻00”规律计数。.
③ 为了保证计时精确、稳定,由单片机的定时器来计时。
7、设计要求:
① 画出电路原理图(或仿真电路图);
②元器件及参数选择;
③ 电路仿真与调试;
④连接实物图,并调试;
⑤写出报告,并做总结;二、设计方案
1、总体设计方案(李文负责完成)
(说明总体设计方案构思、程序模块构成、仿真电路构成等内容,不少于 300 字))。
构思:实现时钟的设计,假如采纳软件延时的方法来实现时钟,太耗cpu 了,因此采纳51单片机的内部硬件资源来实现时钟,因此采纳定时器来定时,由于 单片机的最大定时的时间为65.536ms;但是我们要定时1s,为了便利,我们那么选 用定时器。工作方式1且定时50ms,然后在中断2。次那么有了 Is,有了 Is就好 办了,分,时就好办了,只要在1秒的基础上加就可以实现时钟了,有了时,分, 秒就要显示了,由于时,分,秒都是两位,因此要把个位与十位分别,然后在分 别在数码管上显示,这样就实现时钟的设计。
程序模块:1、主函数:(调用初始化函数,调用显示函数)2、显示函数:(延时函数,数码管显示代码)
3、中断服务函数:(时,分,秒的实现)仿真电路构成:数字钟的结构组成:
电1)晶体振荡器电路
2)复位电路
3)数码管使用非门驱动及数码管
详细:52单片机的最小系统(52单片机,晶振电路(12MHz晶振,和30pF 的无极性容),复位电路(l()k电阻,10uf极性电容,开关)),外加八位一体的 数码管,数码管驱动电路; 2、显示模块程序流程图
3、中断服务函数模块程序流程图
4、主函数模块的设计
5、仿真电路图三、程序代码:
/*
功能:用共阴的八位一体的数码管显示时间“小时?分钟一秒”
位码接P2 口;段码接P0 口;使用定时器0定时1s, 刃#include vreg5Lh〃头文件
#define uchar unsigned char 〃宏定义#define uint unsigned int //
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};〃共阴七段编码
uchar sec,min,hour,count;// 定义变量void delay (uchar x)〃延时 1ms 的函数
(uchar z ,y;
for (y=x;y0;y-)for (z=124;z0;z—);
)void init (void)〃初始化函数
(TMOD=0X01;〃定时器0工作在方式1
TH0=0X3C; 〃装初值TL0=0XB0;
EA=1;〃开总中断ET0=l;〃开定时器0中断
TR0=l;〃启动定时器0sec=0; 〃秒设初值
min=0; 〃分设初值hour=0;〃时设初值
count=0; 〃计数设初值PO=Oxff;//
P2=0xff;//} _
void display ()〃显示函数
( 、uchar secl,sec2,minl,min2,hourl,hoiir2;〃定义变量
secl= sec/10; 〃秒的十位sec2= sec% 10;〃秒的个位
minl= min/10;〃分 的十位min2= min % 10; 〃分 的个位
hourl= houi710;〃时的十位hour2= hour% 10;〃时的个位
P2= 0x80; 〃秒个位的位码P0= table[sec2]; 〃秒个位的段码
delay ⑸;P2= 0x40;〃秒十位的位码
P0= table[secl]; 〃秒十位的段码delay ⑸;
P2= 0x20;// 的位码P0= 0x40;// 的段码
delay ⑸;P2= 0x10;〃分十位的位码
P0= table[minl];〃分十位的段码delay ⑸;
P2= 0x08;//分个位的位码P0= table[min2];〃分个位的段码
delay ⑸;P2=
原创力文档


文档评论(0)