网站大量收购闲置独家精品文档,联系QQ:2885784924

单片机课程设计报告毕业设计(论文).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
燕山大学 单 片 机 课 程 设 计 说 明 书 题目: 电子跑表系统 学院(系): 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 燕山大学课程设计(论文)任务书 院(系): 基层教学单位: 学 号 学生姓名 专业(班级) 设计题目 电子跑表系统 设 计 技 术 参 数 设 计 要 求 基本要求: 基于单片机试验板设计一个电子跑表系统,用按钮启动和停止,能够实现最多59分59秒的跑表,在数码管上显示当前的跑表时间值; 扩展要求: 充分配合按钮和显示,实现正向跑表,反向跑表,设置跑表初值,跑表跑到预定值通过蜂鸣器提示。 工 作 量 2周 工 作 计 划 先根据设计题目,搜集相关资料; 再对设计题目整体把握,利用所学知识,整理所需内容; 最后编写程序,调试,优化程序。 参 考 资 料 C语言设计;PIC单片机技术应用电路设计与仿真C语言高级程序设计 陈天洲编著 指导教师签字 基层教学单位主任签字 说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。 年 月 日 燕山大学课程设计评审意见表 指导教师评语: 成绩: 指导教师: 年 月 日 答辩小组评语: 成绩: 评阅人: 年 月 日 课程设计总成绩: 答辩小组成员签字: 年 月 日 设计要求 电子跑表系统 基本要求: 基于单片机试验板设计一个电子跑表系统,用按钮启动和停止,能够实现最多59分59秒的跑表,在数码管上显示当前的跑表时间值; 扩展要求: 充分配合按钮和显示,实现正向跑表,反向跑表,设置跑表初值,跑表跑到预定值通过蜂鸣器提示。 设计方案 1. 数码管扫描 (数组leddisplaycode:显示数字译码 )(显示函数SEG 功能:输入四位数据并显示(扫描方式)) 定义全局变量 主函数中始终对此变量进行扫描显示 2. P.2/3/4/5口作通用i/o口 按键情况通过getkey()扫描录入,并通过keydispose()函数处理。(只加了四种情况,未使用组合键) (所有操作的目标函数都是全局变量) 3 .其中 1号键 按一下为正向跑表,再按反向跑表。 2号键 按一下为切换到设置模式,同时停止计数。此模式和正常跑表数据互不影响,通过time的第二行存储。 3号键 按一下为当前数组数据+1 4号键 按一下为当前数组数据-1 4. 当 设置的时间和跑表时间相等时,buzzer开始响。 系统工作原理 主要硬件电路图如下 键盘控制, 该设计需要控制跑表开始和停止,当按下启动按钮跑表开始计时,按下停止按钮停止计时,当按下复位按钮跑表回零。4个数码管均是共阳极的。当发光二极管导通时,它就会发光。每个二极管就是一个笔划,若干个二极管发光时,就构成了一个显示字符。将单片机的I/O口控制相应的芯片与数码管的a-g相连,高电平的位对应的发光二极管亮,这样,由I/O口输出不同的代码,就可以控制数码管显示不同的字符。 SST89F58 程序设计 1.总体框架结构 本设计中秒表采用定时器T0中断完成。主程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应功能程序。 用定时器T0中断服务程序。定时溢出中断周期设为50ms,中断进入后先进行定时中断初值校正,当中断累计20次(即50*20=1s)时,对秒计时单元进行加1操作。时钟计数单元地址分别在70H~71H(秒)、76H~77H(分)中,最大计时值为59分59秒。7AH单元内存放“熄灭符”数据,用于时间调整的闪烁功能。在计数单元中,采用十进制BCD码计数,满10进位。 2.主程序流程图 unsigned char code leddisplaycode[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF}; unsigned char time[][4] = {0,0,0,0, 0,0,0,0}; //*数码管当前显示数据 第一行为计时时间,第二行为预设时间 unsigned char i; //SEG()变量 unsigned char

您可能关注的文档

文档评论(0)

2749166188 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档