- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
综合性、设计性实验报告
姓名 学号
姓名 学号
专业 通信工程
实验课程名称 单片机原理与应用
指导教师及职称 赵全友 副教授
开课学期 2014 至 2015 学年 上 学期
上课时间 2015年 9 月 2 日
湖南科技学院教务处编印
一、实验设计方案
实验名称:可调节数字电子钟设计 实验时间: 2016-1-4 小组合作: 是● 否○ 小组成员: 1、实验目的:
1)学习数码管的基本知识。
2)学会如何控制动态数码管扫描显示。 2、实验设备及材料:
硬件设备:
机器配置操作系统:开发工具:3、实验内容:
②编程任务
1. 利用通过修改电路实现对数字电子钟实现控制,即能适时地设置时间,并完成相应的程序。
2.利用通过修改电路实现一个电子秒表,启动秒表,暂停秒表,秒表清零,秒表显示到毫秒。
③样例
定时1秒,采用16位定时50ms,共定时20次才可达到1秒,进一步可实现分时。
利用小延时或者另一个定时器实现对8个数码管的动态扫描显示。
时间设置采用外部中断。
4、实验方法步骤及注意事项:(注意:此部分为本实验的关键部分,请自行填写,不得雷同!)
①实验步骤(自行填写)
打开电脑并运行Keil C建立工程;
编辑C51程序文本文件,写入核心代码并添加到source group里;
3、把实验箱接通电源及烧录线,打开Flash Magic软件把程序下载到芯片里面;
4、验证实验结果。
②解题思路(注意:以下部分仅为提示,请自行填写;若表格不够,可自行拉伸。)
如何实现定时1秒,1分,1小时
如何实现对动态数码管的动态扫描显示
如何实现多功能的电子表。
解题思路:
1、使用定时器0作为实时时钟每隔50ms产生一次脉冲( 即给定时器0赋初值为TH0=(65536-50000)/256; TL0=(65536-50000)%256; ),计数20次就是1秒;当计数到60秒时,秒钟全部清零给分钟计数加一;同理当分钟计数到60时给小时加一,分钟全部清零;小时计数到24才清零。
2、先对动态数码管进行段选编码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f分别对应0、1、2、3、4、5、6、7、8、9,然后对数码管进行位选依次亮不同的数码管,在短暂的时间里由于人眼的余辉效应可以看到数码管是同时亮的。
3、利用中断0计数进行模式切换已达到多功能的目的,然后用中断1合理配合标志位对相应功能进行操作。 5.参考文献:
《单片机原理与接口技术》张毅刚主编,人民邮电出版社,2008
《单片机原理及应用》(第二版), 曹巧媛 主编,电子工业出版社, 2004
指导老师对实验设计方案的意见:
指导老师签名:
年 月 日 二、实验报告
1、实验目的、设备与材料、实验内容、实验方法步骤见实验设计方案
2、实验程序(请自行填写,可拉大表格)
实验核心代码:
#includereg51.h
#define uint unsigned int
#define uchar unsigned char
uchar aa,ss,bb,num1,num2,flag1,flag2,p1,p2,flag3,flag4,flag5,flag6;
uchar mms1,mms2,ms1,ms2,mm1,mm2,s1,s2,m1,m2,h1,h2,h;
sbit dula=P2^6;
sbit wela=P2^7;
sbit k1=P3^2; //外部中断0
sbit k2=P3^3; //外部中断1
sbit k3=P3^5; //定时器中断1
sbit led=P0^0;
sbit alarm=P2^3;
uchar code table1[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display0(uchar s1,uchar s2,uchar m1,uchar m2,uchar h1,uchar h2);
void delay(uint z);
void init();
void m
文档评论(0)