基于C单片机的秒表专业课程设计.doc
《基于C单片机的秒表专业课程设计.doc》由会员分享,可在线阅读,更多相关《基于C单片机的秒表专业课程设计.doc(18页珍藏版)》请在咨信网上搜索。
课程设计任务书 学生姓名: 池孙煌 专业班级: 电信1204 指导老师: 陈德军 工作单位: 信息工程学院 题 目:基于51单片机秒表设计 初始条件: 含有Keil编程能力和Proteus仿真能力; 熟悉定时器/计数器实现原理; 提供编程所需要计算机一台 要求完成关键任务:(包含课程设计工作量及其技术要求,和说明书撰写等具体要求) 1、用定时器/计数器设计一个简单秒表,能显示计时状态和结果。 2、进行电路试验或仿真,并使用C语言进行程序开发。 3、完成符合学校要求设计说明书 时间安排: 一周,其中3天程序设计,2天程序调试 指导老师署名: 年 月 日 系主任(或责任老师)署名: 年 月 日 摘要 单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体机电一体化高科技产品,含有功耗低,安全性高,使用方便等优点。此次设计内容为以 8051 单片机为关键秒表,它采取键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和制作三电路板部分来设计。利用单片机定时器/计数器定时和计数原理,用集成电路芯片、LCD1602液晶和按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确计时、暂停、清零、所计时间存放和查看、并同时能够用液晶显示,在现实生中应用广泛。 关键词:秒表;8051;定时器 1.概述 《单片机应用实践》课程设计是学好本门课程又一关键实践性教学步骤,课程设计目标就是配合本课程教学和平时试验,以达成巩固消化课程内容,深入加强综合应用能力及单片机应用系统开发和设计能力训练,启发创新思维,使之含有独立单片机产品和科研基础技能,是以培养学生综合利用所学知识过程,是知识转化为能力和能力转化为工程素质关键阶段。 此次设计内容为以 8051 单片机为关键秒表,它采取键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和制作三电路板部分来设计。利用单片机定时器/计数器定时和计数原理,用集成电路芯片、LCD1602液晶和按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确计时、暂停、清零、所计时间存放和查看、并同时能够用液晶显示。 2.理论分析 2.1 设计内容 开始时,显示“00:000”,按下按钮1后开始从0计时,显示精度为0.001s;共有5个功效按键,第1个按键开始计时,第2个按键暂停,第3个按键复位,第4个按键统计时间,第五个按键查看时间。 依据8051芯片工作原理和工作方法,对LCD1602液晶进行显示控制,并能用按钮实现秒表起动、停止、复位、所计时间存放和查看、清零功效,正确到0.001秒。 要求选择定时器工作方法,画出使用单片机控制LCD1602液晶显示电路图,并实现其硬件电路,并编程完成软件部分,最终调试秒表起动、停止、清零等功效。 2.2 具体步骤 单片机电子秒表需要处理三个关键问题: 一是相关单片机定时器使用; 二是怎样实现LCD1602液晶显示; 三是怎样对键盘输入进行编程。 定时器:51有4种工作方法,本方案采取工作方法1,即为16位定时器。在高八位和低八位分别置数。因为定时器做是加法计数,则应该将要定时数以补码形式,存放在定时器中。 LCD1602液晶:液晶用RS、RW、EA三个控制端口进行显示等控制。D0-D7口分别接单片机P0并行口,进行数据传输。液晶具体显示方法及其时序图在其资料中进行查阅并应用。 键盘:键盘函数能够作为一个子程序,在main函数中循环查找调用,依据按键功效,我们在按键中写入对应程序,在按键1中开中止,而且对定时器进行设初值。即可实现开始计时。在按键2中关中止,则可实现计时暂停。按键3即为复位键,则可复位为初始值00:000。按键4即为统计键,对时间进行统计。按键5即为查看键,对所统计时间进行查看。 3 程序设计 3.1设计思绪 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机和扩展存放器、I\O 接口、外围扩展功效电路。软件系统包含监控程序和多种应用程序。 在单片机应用系统中,单片机是整个系统关键,对整个系统信息输入、处理、信息输出进行控制。和单片机配套有对应时钟电路图3.1所表示和扩展存放器和 I\O 接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往全部会输入信息和显示信息,这就包含键盘和显示器。在单片机应用系统中,通常全部依据系统要求配置对应键盘和显示器。配置键盘和显示器通常全部没有统一要求,有系统功效复杂,需输入信息和显示信息量大,配置键盘和显示器功效相对强大,而有些系统输入/输出信息少,这时可能用多个按键和多个 LED 指示灯就能够进行处理了。在单片机应用系统在中配置键盘能够是独立键盘,也可能是矩阵键盘。 3.2设计过程 3.2.1 系统设计思绪及描述 本设计在LCD1602液晶上显示时间,则可利用MCS-51系列单片机芯片AT89C52P3.0,P3.1 ,P3.2,P3.3作为按键入口;定时器 T0 作为每 0.001 秒加一定时器;其中“开始”按键按下时开始计时,按下按键2则暂停;按下按键3对时间进行统计,按下按键4对所统计时间进行查看。“清零”按键即为复位按键,复位清零,此时若再按下按键1则又可重新开始计时。 3.3 程序步骤及试验效果 3.3.1 程序步骤图开始 液晶初始化 Y开始计时 计 时 N 计时器暂停 暂 停 Y N 存放时间 记 录 Y N 调用统计 查 看 Y N 液晶显示 图3.1 主程序步骤图 3.3.2 源程序及说明 #include "reg51.h" #include "string.h" #include "stdio.h" #include <stdlib.h> #define uchar unsigned char #define uint unsigned int void Initialize_LCD(); void ShowString(uchar x,uchar y,uchar *str); sbit K1 = P3^2; //K1表示开始计时 sbit K2 = P3^3; //暂停 sbit K3 = P3^4; //统计 sbit K4 = P3^5; //查看 uchar code prompt[]="PRESS K1 START " ; uchar a[]="00:000"; int k3=0; int numb; void Delayxms(uint ms) { uchar i; while(ms--) { for(i=0;i<120;i++); } } void keyscan() { if(K1==0) //计时开始 { Delayxms(1); if(K1==0) { TMOD=0x11; TH0=(65536-1000)/256; //赋计数初值 TL0=(65536-1000)%256; EA=1; //开总断 ET0=1;//开启定时器中止 TR0=1;//开启定时器 while(!K1);//等候按键释放 } } if(K2==0) //暂停 { EA=0; ET0=0; TR0=0; } if(K3==0) //时间统计 { int k; Delayxms(50); for(k=0;k<6;k++) { b[k3][k]=a[k]; } k3++; while(!K3); } if(K4==0) //查看所统计时间 { uchar c[6]; int num; Delayxms(50); if(K4==0) { while(1) { for(num=0;num<6;num++) { c[num]=b[0][num]; } ShowString(1,1,c); Delayxms(50); if(K4==0) { Delayxms(50); if(K4==0) { while(1){ for(num=0;num<6;num++) { c[num]=b[1][num]; } ShowString(1,1,c);} } } } } } } void main() { Initialize_LCD(); while(1) { keyscan(); ShowString(1,0,prompt); ShowString(1,1,a); } } void time() interrupt 1 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; a[5]++;//初值为0 if(a[5]==0X3A) { a[5]=0X30; a[4]++; } if(a[4]==0X3A) { a[4]=0X30; a[3]++; } if(a[3]==0X3A) { a[3]=0X30; a[1]++; } if(a[1]==0X3A) { a[1]=0X30; a[0]++; } if(a[0]==0X3A) { a[]="00:000"; } } //************1602***********// #include <reg52.h> #include <intrins.h> #include <string.h> #define uchar unsigned char #define uint unsigned int sbit RS = P0^7; sbit RW = P0^6; sbit EN = P0^5; void Delayms(uint ms) { uchar i; while(ms--) { for(i=0;i<120;i++); } } uchar Busy_Check() { uchar LCD_Status; RS = 0; RW = 1; EN = 1; Delayms(1); LCD_Status = P0; EN = 0; return LCD_Status; } void Write_LCD_Command(uchar cmd) { while((Busy_Check()&0x80)==0x80); //读写操作使能位检测 RS = 0; RW = 0; EN = 0; P0 = cmd; EN = 1; Delayms(1); EN = 0; } void Write_LCD_Data(uchar dat) { while((Busy_Check()&0x80)==0x80); RS = 1; RW = 0; EN = 0; P0 = dat; EN = 1; Delayms(1); EN = 0; } void Initialize_LCD() { Write_LCD_Command(0x38); //功效选择 Delayms(1); Write_LCD_Command(0x01); //清屏 Delayms(1); Write_LCD_Command(0x06); //增量显示,整体不移屏 Delayms(1); Write_LCD_Command(0x0c); //开显示,关消影,关闪烁 Delayms(1); } void ShowString(uchar x,uchar y,uchar *str) { uchar i = 0; uint a=0; a = strlen(str); if(y == 0) Write_LCD_Command(0x80 | x); if(y == 1) Write_LCD_Command(0xc0 | x); for(i=0;i<a;i++) { Write_LCD_Data(str[i]); } } 4.仿真效果 经过最终软件对程序编译,组建,实施,还有最终生成.hex 文件,把.hex下载到TX-1C开发板 STC89C52RC 单片机上最终效果图以下: (1)开始从“00:000” 图4.1 复位从“00:000”计时 (2)开始计时 图4.2 开始计时 (3)暂停功效: 图4.3 暂停功效 (4)立即归零: 图4.4 复位归零 5.心得体会 经过对此次课程课程设计,使自己深刻认识到自己很多不足之处,在实际动手操作能力不足,在进行程序编程时,自己需要,认真审题,看懂题目标要求!对于软件编程不益太简单或太难。做到既能把课题完成又能锻炼 自己能力!依据课题要求,复习相关知识,查询相关资料。依据课程条件,找到适合方案,找到需要元器件及工具,准备课程。依据课程设计要求和自己所要增加功效写好程序步骤图,在程序步骤图基础上,依据芯片功效写出对应程序和增加额外功效程序。然后再进行 程序调试和对应修改,以达成能够实现所要求功效目标。还要依据课程实际情况,添加些额外程序来使系统愈加稳定,如开关去抖(采取延迟)。程序要尽可能做到由各个子程序组成,在有些程序后面最好加注释,这么在程序犯错检验过程中能够更轻易查找到,也更简练,更明白易懂。该课程设计程序能够参考 MCS-51 系列单片机,也可自己依据自己熟悉方 法来编程如单片机 C 语言。在设计控制开关时,注意两个中止打开和关闭前后次序,不然就会犯错。这次单片机课程设计关键是理论和实际相结合。该设计从头到尾全部要自己参与,熟悉了对整个设计过程,更系统锻炼了自己。 参考文件 [1] 孙育才编著.MCS-51 系列单片微型计算机及其应用.东南大学出版社..12 [2] 郭天祥编著.51 单片机C语言教程-入门、提升、开发全攻略.电子工业出版社.. 05 [3] 刘刚编著.Protel DXP SP2 原理图和 PCB 设计.电子工业出版社..07 [4] 丁峻岭主编.C 语言程序设计.中国铁道出版社..12- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 秒表 专业课程 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文