- 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)