- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务7—简易秒表制作
1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。
2 子情境目标:
(1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路
(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘
3 知识点链接
独立式按键的使用:图5-49为按键与单片机的连接图。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。
在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。采用软件去抖。
图按键与单片机连接图 图按键被按下时电压的变化
4 任务步骤
4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。
1、选取元器件
①单片机:AT89C51
②两位共阴极蓝色数码管:7SEG-MPX2-CC-BLUE
③排阻:RESPACK-8
④按钮:BUTTON
2、放置元器件、放置电源和地、连线、元器件属性设置
简易秒表的原理图如图5-51所示,整个电路设计操作都在ISIS平台中进行。与子情景3相似,故不详述。
图简易秒表的原理图
4.2 步骤二:源程序设计与目标代码文件生成
(1)程序流程图
图5-52 秒表流程图
(2)源程序设计
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0; //定义启动按钮
sbit key2=P3^1; //定义停止按钮
sbit key3=P3^2; //定义复位按钮
uchar temp,aa,shi,ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}; //共阴极数码管编码
void display(uchar shi,uchar ge); //声明显示子函数
void delay(uint z); //声明延时子函数
void init(); //声明初始化函数
void main()
{
init(); //调用初始化子程序
while(1)
{
if(key1==0) //检测启动按钮是否按下
{
delay(10); //延时去抖动
if(key1==0) //再次检测启动按钮是否按下
{
while(!key1); //松手检测,若按键没有释放,key1始终为0,那么!key1始终为1,程序就一直停在此while语句处
TR0=1; //启动定时器开始工作
}
}
if(key2==0) //检测停止按钮是否按下
{
delay(10); //延时去抖动
if(key2==0) //再次检测停止按钮是否按下
{
while(!key2); //松手检测
TR0=0; //关闭定时器
}
}
if(key3==0) //检测复位按钮是否按下
{
delay(10); //延时去抖动
if(key3==0) //再次检测复位按钮是否按下
{
while(!key3); //松手检测
temp=0; //将变量temp的值清零
shi=0; //将十位清零
ge=0; //将个位清零
TR0=0; //关闭定时器
}
}
display(shi,ge); //调用显示子函数
}
}
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
您可能关注的文档
- 2018鲁教版数学7年级下《一元一次不等式和一元一次不等式组》复习教案设计.doc
- 2018九年级化学第八单元《金属及金属材料》复习课件.ppt
- 2018名师原创文科数学专题卷:专题2《函数概念及基本性质》.doc
- 2018名师原创文科数学专题卷:专题12《直线和圆方程》.doc
- 2018名师原创文科数学专题卷:专题13《圆锥曲线和方程》.doc
- 2018名师原创文科数学专题卷:专题17《坐标系和参数方程》.doc
- 2018年.1-3月阀件维护施工管理报告.doc
- 2018年.03IPA综合能力考试网络考试真题.doc
- 2018年“安全生产月”安全生产暨工伤预防保险知识竞赛试题库.docx
- 2018年3月高考英语天津卷.docx
- 山东省医学放射工作人员外照射个人剂量检测结果分析.doc
- 认识计算机网络(形成和发展).pptx
- 认证审核检查100问.ppt
- 山西省太原市2018届高三3月模拟考试(一)理综化学试题.doc
- 山西省孝义市实验中学2018届高三下学期名校最新高考模拟示范卷(二)理综化学试题+Word版包含答案.doc
- 山西省孝义市2018届高三下学期名校最新高考模拟卷(一)理综化学试题+Word版包含答案.doc
- 山西省吕梁市2018届高三上学期第一次模拟考试数学(理)试题+Word版包含答案.doc
- 陕旅版小学英语三年级上册《Unit-1-Hello!》word教案设计-.doc
- 山西施工计划.docx
- 陕旅版小学英语三年级上册《Unit-2-How-Are-You-》word-教案设计-.doc
文档评论(0)