ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:325.38KB ,
资源ID:10598441      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10598441.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机秒表课程设计C语言.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机秒表课程设计C语言.docx

1、单片机秒表课程设计C语言广东工业大学华立学院 课 程 设 计(论文)课程名称 MCS-51单片机 题目名称 单片机秒表设计 学生学部(系) 机电学部 专业班级 08自动化一班 学 号 12040801017 学生姓名 李赛文 指导教师 黄淑芬 2010年 12 月 10 日目录1课程设计的目的和任务1.1 单片机秒表课程设计的概述1.2课程设计思路及描述1.3 课程设计任务和要求2硬件与软件的设计流程2.1系统硬件方案设计2.2软件方案设计3 程序编写流程及课程设计效果3.1源程序及注释3.2原理图分析3.3课程设计效果4 参考文献1. 课程设计的目的和任务1.1单片机秒表课程设计的概述一、课

2、程设计题目秒表系统设计用STC89C52RC设计一个3位LED数码显示“秒表”,显示时间为00.059.9秒,每毫秒自动加一,每十毫秒自动加一秒。二、增加功能增加一个“复位00.0”按键(即清零),一个“暂停”和“开始”按键,一个“复位60.0”按键(用来60秒倒计时),一个倒计时“逐渐自减”按键。三,课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱

3、上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有四个开关按键:其中key2按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key1按键按下去时数码管清零,复位为“00.0”,key3按键按下去时数码管复位为“60.0”(用于倒计时),key4按键按下去则是数码管开始“逐渐自减”倒计时。课程设计的意义1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。2) 掌握定时器、外部中断的设置和编程原理。3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4) 该课程通

4、过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义课程设计仪器集成电路芯片8051,七段数码管,TX-1C单片机开发板,MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。1.2课程设计思路及描述该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.4,P3.5,P3.6,P3.7作为按键的入口;定时器T0作为每0.1秒减一的定时器;定时器T1作为每0.1秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨

5、“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。方框图如下图1: 图1数字秒表设计导向1.3 课程设计任务和要求1设计指标 。了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、60秒、倒计时清零等功能,精确到0.1秒。要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。2设计要求1 画出电路原理图(或仿真电路图);2 软件编程与调试;3 电路

6、仿真与调试;2软件与硬件设计2.1系统硬件方案设计单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和IO接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的

7、信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。 图2系统硬件结构框2.2软件方案设计此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序,系统软件流程图图如图 3所示:3 程序编写的流程及课程设计效果3.1 源程序及注释#include /52系列单片机头文件#define uchar unsigned char /

8、宏定义#define uint unsigned intsbit dula=P26; /申明U1锁存器的锁存端sbit wela=P27; /申明U2锁存器的锁存端sbit key1=P34; /申明四个按键的锁存端sbit key2=P35;sbit key3=P36;sbit key4=P37;uchar code table= /含有09的数字数组0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delayms(uint); /声明延时函数void display(uchar,uchar,uchar); /声明显示函数void

9、keyscan(); /声明按键函数uchar num1,num2,bai,shi,ge; /变量声明uint num;void main() /主函数入口TMOD=0x11; /设置TO,T1定时器TH0=(65536-45872)/256; /装初值11.05992M晶振定时50ms数为45872TL0=(65536-45872)%256;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1; /开总中断ET0=1; /开启定时器T0中断ET1=1; /开启定时器T1中断while(1) /程序停在这里等待中断的发生,这个大循环也是实现数据显示的

10、主体循环keyscan();/三个数码管要选送的数据bai=num/100; /百位 shi=(num-100*bai)/10; /十位ge=num-100*bai-shi*10; /个位 /直接把第二只数码管的小数点烧出来dula=1; /打开段选P0=0x80; /送段选数据dula=0; /关闭断选P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱wela=1; /打开位选P0=0xfd; /送位选数据wela=0; /关闭位选delayms(5); /延时display(bai,shi,ge); void display(uchar bai

11、, uchar shi,uchar ge) /数码管显示子函数dula=1; /打开段选P0=tablebai; /送段选数据dula=0; /关闭断选P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱wela=1; /打开位选P0=0xfe; /送位选数据wela=0; /关闭位选delayms(5); /延时dula=1; /打开段选P0=tableshi; /送段选数据dula=0; /关闭断选P0=0xff;/送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱wela=1; /打开位选P0=0xfd; /送位选数据

12、wela=0; /关闭位选delayms(5); /延时dula=1; /打开段选P0=tablege; /送段选数据dula=0; /关闭断选P0=0xff; /送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱wela=1; /打开位选P0=0xfb; /送位选数据wela=0; /关闭位选delayms(5); /延时void delayms(uint xms) /延时子函数 uint i,j; for(i=xms;i0;i-) /i=xms即延时约xms毫秒 for(j=110;j0;j-);void keyscan() /按键子函数 if(key1=0) /

13、清零 delayms(10); /延时去抖 if(key1=0) while(!key1) /等待按下 TR0=0; /定时器TR0关闭 TR1=1; /定时器TR1打开 num=0; /送数据num=0 TR1=0; /定时器TR1关闭 if(key2=0) /暂停和开始 delayms(10); if(key2=0) while(!key2); TR0=0; TR1=TR1; /每次按下,TR1的状态时相反的 if(key3=0) /使计数器显示为60.0 delayms(10); if(key3=0) while(!key3); TR0=0; TR1=1; num=600; TR1=0;

14、 if(key4=0) /实现计数器的倒数功能 delayms(10); if(key4=0) while(!key4); TR1=0; TR0=1; void T0_time()interrupt 1 /定时器T0,中断序号为1 TH0=(65536-45872)/256; /重装初值 TL0=(65536-45872)%256; num2+; if(num2=2) /如果到了2次,说明0.1秒的时间到 num2=0; /然后把num2清零重新再计2次 num1+; if(num1=10) num1=0; if(num=0) /当num自减为0时,重新为60.0,再开始倒计时 num=600

15、; num-; /num逐渐自减 void T1_time()interrupt 3 /定时器T1,中断序号为3 TH1=(65536-45872)/256; /重装初值 TL1=(65536-45872)%256; num2+; if(num2=2) /如果到了2次,说明0.1秒的时间到 num2=0; /然后把num2清零重新再计2次 num1+; if(num1=10) num1=0; num+; /num逐渐自加 if(num=600) /这个数十用来送给数码管显示的,到了60.0后归零 num=0; 3.2原理图分析 图4按键原理图 图5显示电路 图6电源电路原理图3.3课程设计效果

16、通过最后软件对程序的编译,组建,执行,还有最终生成.hex文件,把.hex下载到TX-1C开发板的STC89C52RC单片机上的最终效果图如下:图7.复位“00.0”图8.复位“60.0”图9.“开始自加”运行图10.“开始自减”运行4 参考文献【1】孙育才编著.MCS-51系列单片微型计算机及其应用.东南大学出版社.2009.12【2】郭天祥编著.51单片机C语言教程-入门、提高、开发、拓展全攻略.电子工业出版社.2010.05【3】刘刚编著.Protel DXP 2004 SP2原理图与PCB设计.电子工业出版社.2009.07【4】丁峻岭主编.C语言程序设计.中国铁道出版社.2009.1

17、2心得体会通过对本次课程的课程设计,使自己深刻的认识到自己的很多不足之处,在实际动手操作能力的不足,在进行程序编程时,自己需要,认真审题,看懂题目的要求!对于软件编程不益太简单或者太难。做到既能把课题完成又能锻炼自己的能力!根据课题要求,复习相关的知识,查询相关的资料。根据课程条件,找到适合的方案,找到需要的元器件及工具,准备课程。根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序和增加额外的功能程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。还要根据课程的实际情况,添加些额外程序来使系统更加的稳定,如开关的去抖(采用延迟)。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。该课程设计的程序可以参考MCS-51系列单片机,也可自己根据自己熟悉的方法来编程如单片机C语言。在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。这次的单片机课程设计重点是理论与实际的相结合。该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。2010年 12 月 10 日教师评语 年 月 日成绩及签名 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1