单片机课程设计报告毕业设计.docVIP

  • 2
  • 0
  • 约4.67千字
  • 约 12页
  • 2017-06-08 发布于陕西
  • 举报
课程设计(论文)任务书 院(系): 基层教学单位: 学 号 学生姓名 专业(班级) 设计题目 电子跑表系统 设 计 技 术 参 数 设 计 要 求 基本要求: 基于单片机试验板设计一个电子跑表系统,用按钮启动和停止,能够实现最多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 mode = 0; //正、反计数模式 (0 正 1 反) unsigned char flag = 0; //实现单个键的开始暂停功能 unsigned char m=0,n=0; unsigned char status=0; /*--------------------------------------

文档评论(0)

1亿VIP精品文档

相关文档