- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计报告基于51单片机时钟LED显示
一 需求分析
本设计是基于51单片机时钟的LED显示,通过单片机产生计数功能,通过LED数码管显示,显示时间时、分、秒,并用按键进行时间调整,同时带有整点报时功能。
二 总体设计
1设计思路
通过51内部定时器产生时钟来进行准确计时,用独立键盘来实现时钟的可调,最后由LED数码管来显示。
2.器件选择
AT89C52 74LS138 8位共阴数码管 7407 MAX232 串行口九针插头
12M晶振 按键 电容 排阻
3.开发环境
KEIL Uvision4
4.下载工具
STC-ISP-V3.5
三 硬件电路分析
该硬件电路由显示电路、电源电路、信号处理电路、单片机最小系统、串口通信以及按键控制电路六部分构成。
该单片机开发板具备了电源、复位、时钟、键盘、显示等电路,可用于编程开发单片机的多种控制功能。
由于外部硬件电路已经确定,单片机各引脚已经连接好,其对应位也已经确定好,因此在进行程序设计前,要对AT89C52各引脚连接的电路以及所控制的电路进行分析,分析后确定了以下信息:
(1)P0口连接数码管八段,通过写P0口来控制数码管显示的内容;
(2)P1.0口控制着电路板上的绿色指示灯的亮灭,其中1为灭,0为亮;
(3)P2口:
P2.7~ P2.4分别连接K1~K4按键,编程时,需要通过读取P2.7~ P2.4的值获取按键状态;
P2.0~ P2.2分别连接3-8译码器的A、B、C输入端,编程时需要写P2.0~ P2.2口来实现控制六个数码管的显示;
P2.3连接3-8译码器的使能端,编程时需要对P2.3写入0,;
(4)单片机复位电路已经连接好,复位键可以直接使用,编程时无需编写复位程序;
(5)振荡电路已连接好,其中晶振为12MHz,通过利用中断进行精确计时;
四 软件设计
1进行软件设计前需要先学习下KEIL Uvision4和 STC-ISP-V3.5两款软件的使用方法。
关于KEIL Uvision4软件使用时需要注意问题:
1)新建工程后,会弹出一个“Select Device For Target”对话框,此时需要点开Atmel然后选择AT89C52,确定;
2)在刚建的工程下,新建file,编好文件保存时在给文件命名是一定要带上扩展名“.c”;
3)编写好的C文件需要添加到当前Target下,编译前需要找到“Option For Target”对话框进行设置,把晶振频率设置为12MHz,点击“output”,在“create HEX fi”前打上勾,生成十六进制的文件,以用于下载到单片机内。
关于STC-ISP-V3.软件使用时需要注意的问题:
1)选择单片机型号(STC89C52RC);
2)选择Clear Buffer (清缓冲区),Open File打开待烧录的.HEX文件 ;
3)根据实际连接选择COM口,实际所用COM口可通过设备管理器查询得到;
4)冷启动。电路板断电后点击Download按钮,然后接通电路板电源,等待编程结束,成功下载到单片机内。
2.程序设计思路
本次要实现的功能是可调数字钟,分析后把程序分成五个子模块进行编写,其中五个子模块分别为时间处理子程序、显示子程序、整点报时子程序、按键扫描子程序以及中断子程序。
3.各模块实现的功能以及分析
(1)时间处理子程序
该模块中把秒设置为六十进制,分钟设置为六十进制,小时设置为二十四进制,同时实现秒分和分时之间的进位。
实验程序如下:
void time_dis( void)
{
if(sec==60) //秒钟设为60进制
{ sec=0;
min++;
if( min==60) //分钟设为60进制
{ min=0;
hour++;
if(hour==24) //时钟设为24进制
{hour=0; }
}
}
}
(2)显示子程序
该程序实现数码管的显示。除了正常计时显示还需要考虑上调节状态下数码管的显示情况,因此需要用到一系列的条件判断语句。调节按键没有按下时,数码管显示时钟,此状态下,时与分和分与秒之间的小数点以2Hz的频率闪烁;一旦调节按键按下,则相应的调节位以2Hz的频率闪烁,由于调节时,只调时分秒的个位,十位一直显示即可。
显示时的程序流图如下:
而对于显示分的子程序,同显示时的程序一样,判断条件为adjust_key==2,在写P0口时,写
您可能关注的文档
最近下载
- scale manager软件及相关scalemanager和mtstar使用说明.pdf
- 建积分之术筑工程之技:定积分及其应用教学实施报告.pdf
- 初中英语 2022-2023学年福建省泉州市九年级(上)第一次段考英语试卷.pdf
- 大连链家房地产营销渠道研究.docx
- 《数学思想与方法》模拟试卷ABCD卷.docx VIP
- DLT_741-2010《架空输电线路运行规程》(新版).doc
- 2024阿里巴巴淘宝云客服-消费者咨询业务知识题及答案.pdf
- 浙教版八年级科学上册单元测试题及答案.docx
- final submission to nsfc with signed page国际地区合作与交流项目申书.pdf VIP
- 广西 平乐县志.pdf
文档评论(0)