第六节-电子钟程序设计.ppt_第1页
第六节-电子钟程序设计.ppt_第2页
第六节-电子钟程序设计.ppt_第3页
第六节-电子钟程序设计.ppt_第4页
第六节-电子钟程序设计.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3 6电子表程序设计 电子表是单片机简单系统最典型的项目 本节学习使用动态扫描的方式实现6位数码管组成的电子钟的设计方法 主要目的是让读者掌握结构化程序设计方法 了解利用数组变量实现数码管数字显示技巧 并熟练掌握键盘的控制编程方式 本案例设计分阶段进行 首先使用定时器的中断实现时钟的显示 按键程序实现时间调整 并通过定时器中断实现调整时数字的闪烁 3 6 1设计任务 电子表使用6位数码管显示时分秒 每个占用两个数码管 使用4个键控制 采用的电路见图3 6 1所示 六位数码管的段选连接在单片机的P0口 位选连接在单片机的P2口 从右至左分别从P2 0到P2 5 键盘连接在P3 2到P3 5口 蜂鸣器连接在单片机的P1 7口 图3 6 1硬件电路图 3 6 2系统功能分析 一 键盘控制键盘控制是本设计中的重要部分 在键盘上实现全部的功能的调整 首先需要定义各个按键的主要功能 功能如表2 6 1所示 KEY1键负责调整模式的选择 带有去抖功能 每按下一次 改变一次状态 共有四种状态 启动默认进入正常状态 其后依次为调秒 调分 调时状态 KEY2 KEY3在对应的模式下进行加或者减 也带有去抖功能 KEY4键为快速返回按钮 按下此键后 立刻从其他状态进入正常状态 二 显示时间输出显示终端为6位数码管 从左到右分别显示时分秒 小时 分钟和秒各占2位数码管共6位 在调整过程中 要求对应的调整位置以0 5的速度进行闪烁 以示区别 3 6 3实例代码 include defineucharunsignedcharuchari 0 j 0 k flash flash 0 x00 charsec min hou ucharkey1 down key2 down key3 down key4 down key1 mode codeucharseven seg 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 codeucharseven bit 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf sbitkey1 P3 2 sbitkey2 P3 3 sbitkey3 P3 4 sbitkey4 P3 5 voiddelay ucharx 延迟函数 while x voidkey scan void 按键扫描函数 if key1 0 按键1 key1 1 delay 3000 if key1 0 key1 down 1 if key1 1 if key2 1 if key3 0 按键3 key3 1 delay 3000 if key3 0 key3 down 1 if key3 1 if key2 1 if key4 0 按键4 key4 1 delay 3000 if key4 0 key4 down 1 if key4 1 voidtimer0 init void 初始化 TMOD 0 x01 TH0 0 xec TL0 0 x78 TR0 1 EA 1 ET0 1 voidtimer0 isr void interrupt1 中断 TR0 0 EA 0 TH0 0 xec TL0 0 x78 TR0 1 EA 1 i if i 100 半秒 flash flash k i 0 if k 2 刚好1秒 k 0 sec if sec 60 sec 0 min if min 60 min 0 hou P2 1 if key1 mode 0 正常显示 switch j case0 P0 seven seg sec 10 break case1 P0 seven seg sec 10 break case2 P0 seven seg min 10 if key1 mode 1 选定秒 k 0 switch j case0 P0 seven seg sec 10 flash break case1 P0 seven seg sec 10 flash break case2 P0 seven seg min 10 if key1 mode 2 选定分 switch j case0 P0 seven seg sec 10 break case1 P0 seven seg sec 10 break case2 P0 seven seg min 10 if key1 mode 3 选定时 switch j case0 P0 seven seg sec 10 break case1 P0 seven seg sec 10 break case2 P0 seven seg min 10 voidmain void sec 55 min 59 hou 10 timer0 init while 1 key scan 思考题 3 1电路见题图3 1所示 完成程序设计并在Proteus中设计电路 仿真实现LED闪烁 题图3 1 3 2跑马灯又叫流水灯 能够达到明灭交替顺序显示的效果 利用单片机的P0口驱动8只LED可以实现跑马灯效果 程序中可以先让P0 0 x01 再加入延时 然后让P0左移一位 依次循环 并判断如果P0为0时 从新赋值0 x01 请你完成这个程序的设计 并在Proteus中设计电路仿真实现 3 3请你列出单片机内部所有特殊功能的寄存器名 3 4分别写出外部中断 定时器中断 定时器中断和串行中断的步骤 3 5简述定时器中断初始化步骤 如果定时器timer0 timer1都产生中断 优先级如何设定 3 6为了用药安全 病人打点滴的液体滴注速度在根据不同用药都有限制 但医生还在人工数说的方法测量滴注速度 请你设计电路 并利用定时器的3 7采用外部中断实现4个按键输入 用一个数码管显示按键编号 请画出电路并设计程序3 8在4 4键盘矩阵中 没有按键按下数码管会显示88 现在要求没有按键按下时 显示NO 请在原来程序的基础上更改实现 3 9找一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论