单片机课程设计 秒表计时器(DOC)
单片机课程设计-秒表
单片机课程设计姓名:***学号:设计课题:秒表指导老师:同组人员:*********设计时间:2009年12月16日一、设计目的1.单片机的基本原理及相关的简单应用。
2.掌握用单片机设计系统的一般步骤。
3.了解LED数码管的基本知识和驱动方法。
4.掌握单片机系统各个组成部分的作用以及分布位置。
5.学会运用单片机的硬件资源。
二、设计要求1、要求设计一个秒表,精度为00.01秒;2、显示位数为4位;3、有启动、停止、清零功能三、设计工具1.PC机一台2.TDN-MI教学实验系统一台(配串行口通讯线)四、元器件4位数码管(1个)、30P瓷片电容(2个)、12M晶振(1个)、12*12键盘(2个)、面包板(1块)、连接线(若干)、10K排阻(1个)五、电路连接1、本系统中“启动/停止”按钮接在外部中断0口(P3.2);2、本系统中“清零”按钮接在RST脚(第9管教);3、本系统的位选通信号接在P1口的低四位;4、本系统的LED数据端口使用的是P0口,由于采用了共阴数码管,且面包板上空间有限,未加扩流三极管,只使用了上拉电阻。
5、为使电路工作更加稳定,加了上电复位电路。
详见下图六、设计原理图1、3641数码管脚位图2、系统电路图七、程序流程图(1)主函数(2)LED动态扫描八、设计程序/************************************************设计题目:秒表设计要求:设计带启动、停止、清零功能的秒表利用4位数码管,显示整数两位和小数两位设计者:何友东付艳娟设计精度:0.01s完成日期:09.12.16*************************************************/#include "reg52.h"#include "intrins.h"//************** PIN CONFIGURE ********************sbit Start_Stop = P3^2; //定义启动/停止按键sbit Clear = P3^3; //定义清零按键sbit Sel_A1 = P1^0; // 定义数码管第一位sbit Sel_B1 = P1^1; // 定义数码管第二位sbit Sel_C1 = P1^2; // 定义数码管第三位sbit Sel_D1 = P1^3; // 定义数码管第四位#define LED P0 //定义LED 数据端口#define DP 0x80 //定义小数点//**************************************************bdata unsigned char flag; //定义标志寄存器sbit Status_Flag = flag^0; //1----计时0----停止sbit Is_KeyS_Hold = flag^1; //定义键盘释放判断标志位//1---未释放0---释放unsigned char xiaoshu1 = 0 , //定义计时的小数部分,第一位xiaoshu2 = 0 , //定义小数部分第二位miao1 = 0 ; //定义计时的整数部分第一位(十位)miao2 = 0 ; //定义整数部分第二位(个位)code unsigned char table[]={0x3f,0x06,0x5b, // 定义0~9 编码0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};//******************函数声明*************************void init(); //初始化函数void display(); // 数码管显示函数void delay(); //数码管单个显示延时函数void key(); //键盘释放判断操作函数//****************************************************//*********************主函数************************* void main(){init(); //调用初始化函数while(1){key(); //调用键盘操作函数display(); //调用LED动态显示函数}}//********************键盘释放判断操作函数************* void key() //启动停止按钮释放键盘判断{if(Is_KeyS_Hold)if(Start_Stop){Is_KeyS_Hold = 0 ;EX0 = 1 ;}}//****************display()的内部延时函数*************** void delay(){unsigned int i ;for(i = 0; i<300; i++);}//***************LED的动态显示函数********************** void display(){Sel_A1 = 1;Sel_B1 = 1;Sel_C1 = 1;Sel_D1 = 0;LED = table[xiaoshu2];delay(); //显示小数的第二位Sel_A1 = 1;Sel_B1 = 1;Sel_C1 = 0;Sel_D1 = 1;LED = table[xiaoshu1];delay(); //显示小数的第一位Sel_A1 = 1;Sel_B1 = 0;Sel_C1 = 1;Sel_D1 = 1;LED = table[miao2]|DP;delay(); //显示秒的第二位//并显示小数点Sel_A1 = 0;Sel_B1 = 1;Sel_C1 = 1;Sel_D1 = 1;LED = table[miao1];delay(); //显示秒的第一位}//******************外部中断0处理函数************************ void Key_Start_Stop() interrupt 0 //外部中断0 启动停止按钮连接于此{EX0 = 0;Status_Flag = ~ Status_Flag ;Is_KeyS_Hold = 1;if( Status_Flag )TR0 = 1;elseTR0 = 0;}//*******************定时器0中断处理函数****************void time10ms() interrupt 1 //定时器中断延时时间10ms{TL0 = 0XEF;TH0 = 0XD8;TR0 = 1 ; //开定时器xiaoshu2+=1;if(xiaoshu2 == 10) { xiaoshu2 = 0 ; xiaoshu1 += 1;}if(xiaoshu1 == 10) { xiaoshu1 = 0 ; miao2 += 1;}if(miao2 == 10) { miao2 = 0 ; miao1 += 1;}if(miao1 == 10) miao1 = 0; //计数最大值99.99 ,//下一时刻00.00}//*********************系统初始化函数********************void init(){Sel_A1 = Sel_B1 = Sel_C1 = Sel_D1 = 1 ;LED = 0XFF; //关显示Status_Flag = 0; //标志位清零(未计数)xiaoshu1 = xiaoshu2 = miao1 = miao2 = 0 ;//初始化显示00.00ET0 = 1; //定时器0开中断EX0 = 1; //外部中断0开中断EA = 1 ; //开总中断TMOD = 0X01; //定时器0工作方式1TL0 = 0XEF; //延时10ms初始化设置TH0 = 0XD8;TR0 = 0 ; //定时器停止计数}九、实验步骤1.先在电脑上编写程序,然后在试验箱上装载,编译并运行,验证时钟功能是否正确。
单片机电子秒表课程设计
单片机电子秒表课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其内部结构和功能。
2. 使学生了解电子秒表的工作原理,掌握相关电子元器件的使用。
3. 帮助学生理解程序设计的基本思路,学会编写简单的单片机程序。
技能目标:1. 培养学生动手实践能力,能够独立完成单片机电子秒表的硬件搭建和程序编写。
2. 提高学生的问题解决能力,能够分析并解决在电子秒表制作过程中遇到的问题。
3. 培养学生的团队协作能力,学会在团队中分工合作,共同完成任务。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新精神和动手制作的热情。
2. 培养学生严谨的科学态度,注重实验数据的准确性和实验过程的完整性。
3. 增强学生的自信心,让学生在完成任务的过程中体验成功,树立学习的信心。
课程性质:本课程为实践性较强的课程,旨在培养学生的动手实践能力和创新能力。
学生特点:学生处于初中或高中年级,对电子制作有一定的兴趣,但可能缺乏实际操作经验。
教学要求:结合学生特点和课程性质,教师应注重理论与实践相结合,充分调动学生的积极性,引导学生在实践中学习,提高学生的综合能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 理论部分:- 单片机原理与结构:介绍单片机的基本组成、工作原理和性能特点。
- 电子秒表原理:讲解电子秒表的工作原理,包括计时、停止和清零等功能。
- 程序设计基础:阐述C语言编程的基本语法,以实现电子秒表功能为例,进行编程指导。
2. 实践部分:- 硬件搭建:指导学生使用相应的电子元器件,搭建单片机电子秒表的硬件电路。
- 程序编写:教授学生编写实现电子秒表功能的程序,并进行调试与优化。
- 功能测试:让学生对自己的作品进行功能测试,确保秒表的准确性。
3. 教学大纲:- 第一阶段:介绍单片机原理与结构,让学生对单片机有基本的认识。
- 第二阶段:讲解电子秒表原理,使学生了解其工作过程。
51单片机秒表课程设计
51单片机秒表课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其编程方法;2. 学习并掌握定时器/计数器在51单片机中的应用,理解其工作原理;3. 了解秒表的功能需求,掌握秒表的程序设计方法。
技能目标:1. 能够独立完成51单片机的程序编写,具备基本的编程能力;2. 能够运用定时器/计数器进行计时,完成秒表的实时显示功能;3. 能够分析和解决程序运行过程中出现的问题,具备一定的调试能力。
情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与交流能力;2. 增强学生对电子制作的兴趣,激发创新意识;3. 培养学生严谨、细心的学习态度,养成良好的编程习惯。
分析课程性质、学生特点和教学要求,将课程目标分解为以下具体学习成果:1. 学生能够掌握51单片机的基本原理和编程方法;2. 学生能够运用定时器/计数器实现秒表的计时功能;3. 学生能够通过团队协作,共同完成秒表的程序设计和调试;4. 学生能够对编程过程中遇到的问题进行分析和解决,提高自身调试能力;5. 学生能够体验电子制作的乐趣,培养创新意识和严谨、细心的学习态度。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 51单片机基础知识:- 单片机概述与51单片机的结构原理;- 51单片机的寄存器、I/O口及其编程方法;- 定时器/计数器的工作原理与应用。
2. 秒表功能需求分析:- 秒表的功能定义与需求分析;- 电路设计与硬件连接;- 软件设计框架及流程图。
3. 定时器/计数器的应用:- 定时器/计数器的工作模式;- 定时器/计数器的编程实现;- 秒表计时功能的具体实现。
4. 程序编写与调试:- 51单片机程序结构;- 程序编写技巧与调试方法;- 秒表程序编写与功能测试。
5. 教学案例与实战:- 案例分析:经典秒表程序剖析;- 实战练习:学生分组进行秒表的程序编写与调试;- 成果展示与评价。
教学内容安排和进度:第一课时:51单片机基础知识学习;第二课时:秒表功能需求分析与电路设计;第三课时:定时器/计数器的应用;第四课时:程序编写与调试;第五课时:教学案例与实战。
秒表计时器的课程设计
秒表计时器的课程设计一、课程目标知识目标:1. 学生能理解秒表计时器的功能、原理和使用方法。
2. 学生能够掌握时间的基本单位秒,并学会将其转换为其他时间单位。
3. 学生能运用秒表计时器进行简单的时间测量和计算。
技能目标:1. 学生能够独立操作秒表计时器,进行准确的时间测量。
2. 学生能够运用所学知识解决实际生活中的时间问题,提高解决问题的能力。
3. 学生通过小组合作,培养团队协作能力和沟通技巧。
情感态度价值观目标:1. 学生能够认识到时间的重要性,培养珍惜时间的意识。
2. 学生在学习过程中,培养探究精神,提高对科学技术的兴趣。
3. 学生通过课程学习,养成遵守纪律、严谨求实的态度。
课程性质:本课程为小学四年级科学课程,旨在通过实际操作,让学生掌握时间的基本概念和测量方法。
学生特点:四年级学生具有一定的认知能力和动手能力,对新鲜事物充满好奇,但注意力容易分散。
教学要求:教师应注重理论与实践相结合,以学生为主体,引导他们主动探究、积极思考,提高课堂参与度。
同时,关注学生的个体差异,给予每个学生充分的发展空间。
通过课程目标的分解,确保学生能够达到预期的学习成果,为后续教学设计和评估提供依据。
二、教学内容本课程依据课程目标,结合教材内容,设计以下教学大纲:1. 时间的基本概念- 时间单位:秒、分钟、小时- 时间换算:秒与分钟、小时之间的换算2. 秒表计时器原理与使用- 计时器的工作原理- 计时器的操作方法- 计时器的使用注意事项3. 实践操作与测量- 使用秒表进行物体运动时间的测量- 使用秒表进行日常活动时间的记录与计算4. 时间管理与珍惜- 时间的价值与意义- 如何合理安排时间,提高学习效率教学内容安排与进度:第一课时:时间的基本概念,时间单位及换算第二课时:秒表计时器原理与使用,实践操作与测量第三课时:时间管理与珍惜,总结与反思教材章节:《科学》四年级上册第四章“时间的测量”三、教学方法针对本章节内容,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:教师以简洁明了的语言,系统讲解时间的基本概念、单位换算以及秒表计时器的原理等内容,为学生奠定理论基础。
单片机控制秒表课程设计
单片机控制秒表课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理和功能,掌握单片机在秒表设计中的应用。
2. 使学生掌握秒表计时原理,了解秒表各功能模块的工作原理。
3. 帮助学生掌握相关编程语言,实现单片机控制秒表的程序编写。
技能目标:1. 培养学生运用所学知识,设计并实现一个具有启动、停止、复位和计秒功能的单片机控制秒表。
2. 提高学生动手实践能力,学会使用编程软件、下载器和调试工具。
3. 培养学生团队协作能力,分工合作完成课程设计任务。
情感态度价值观目标:1. 培养学生热爱科学、勇于探索的精神,增强对单片机及嵌入式系统学习的兴趣。
2. 培养学生严谨、认真、负责的学习态度,养成良好的学习习惯。
3. 引导学生关注科技发展,了解单片机在日常生活和工业生产中的应用,提高创新意识。
本课程针对高年级学生,具有较强的实践性和综合性。
通过本课程的学习,使学生能够将所学理论知识与实际应用相结合,提高解决实际问题的能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
在教学过程中,需关注学生的个体差异,激发学生的学习兴趣,培养其动手实践能力和团队协作精神,为后续学习打下坚实基础。
二、教学内容本章节教学内容主要包括以下几部分:1. 单片机基本原理:讲解单片机的组成、工作原理和功能特点,使学生了解单片机在秒表设计中的核心作用。
2. 秒表计时原理:介绍秒表的计时原理,分析秒表的启动、停止、复位和计秒功能模块。
3. 编程语言及开发环境:学习单片机编程所需的语言(如C语言),介绍编程软件、下载器和调试工具的使用。
4. 单片机控制秒表设计:根据课程目标,制定以下详细教学大纲:(1)秒表功能需求分析:讨论并明确秒表的各项功能需求。
(2)硬件设计:讲解如何选用合适的单片机、时钟电路、按键、显示屏等硬件设备。
(3)软件设计:指导学生使用C语言编写单片机控制秒表的程序代码。
(4)系统调试:教授学生如何进行硬件和软件的调试,确保秒表的正常工作。
单片机课程设计-秒表
单片机课程设计姓名: 学号: 设计课题: 指导老师: 同组人员: 设计时间: 一、设计目的1.单片机的基本原理及相关的简单应用。
2.掌握用单片机设计系统的一般步骤。
3.了解LED数码管的基本知识和驱动方法。
4•掌握单片机系统各个组成部分的作用以及分布位置5•学会运用单片机的硬件资源。
*********2009 年12 月16二、设计要求1、要求设计一个秒表,精度为00.01秒;2、显示位数为4位;3、有启动、停止、清零功能三、设计工具1.PC机一台2.TDN-MI教学实验系统台(配串行口通讯线)四、元器件4位数码管(1个)、30P瓷片电容(2个)、12M晶振(1个)、12*12键盘(2个)、面包板(1块)、连接线(若干)、10K排阻(1个)五、电路连接1、本系统中“启动/停止”按钮接在外部中断0 口(P3.2);2、本系统中“清零”按钮接在RST脚(第9管教);3、本系统的位选通信号接在P1 口的低四位;4、本系统的LED数据端口使用的是P0口,由于采用了共阴数码管,且面包板上空间有限,未加扩流三极管,只使用了上拉电阻。
5、为使电路工作更加稳定,加了上电复位电路。
详见下图06级电子信息工程单片机课程设计六、设计原理图1、3641数码管脚位图nO1DI01Gco6JGAAiiiiiA Ki i A ii i i ******; l E C D [ f F 帥fi c > r t or ij B C J> F r cDIG*neoA if F ;W*I0 6 61 4 2O O O OI ICM 32、系统电路图19七、程序流程图(1)主函数(2) LED动态扫描(3)外部中断0 (4)定时器0羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊//乂)人羽PIOA诲国庙第工酉&寅易咸诲〃!()Xe|sp piOA 诲国工酉易咸诲//!()Xe|dsip piOA滋国羽券回//:()l!U! P!OA************************* 国羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊Mj9X0'jZX020X0'PZX0'P9X0'99X0hX0'qgxo'90XO‘j£Xo}=[]o|qEl 」Eip psu6isun spoo! 0 = SOBjLU0 = snqsoeix 0 = i^nqsoeix jeqo psu6isunJvbElj = P|OH_se>rs| *qs !0v6e|j = 6e|d _sn;e;s l!qs !6e|j jeqo psu6isun e;epq3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3dD0lzlN00 Nld 羊羊羊羊羊羊羊羊羊羊羊羊羊 *//uM SUUiuj,,spnpuj# ”UN9bai”spnpuj#/羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊91/乙1/60 :晡目妞琴 SLOO:首1糾4視 即磷4》当尊回:#W韋戢 '可劃 '程日 黑44視:來壷44視華矽:@WW羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊,MW 6~o *申 //(冯亠)冯一骂占涯诲轟阴呦44孙爭〃! 0 = l^oeiiu*//单诲\[/孙爭〃 口陳舉滋a3i x 君〃冯园骂易咸诲孙爭// 冯三骂易咸诲孙爭// 冯二骂易咸诲孙爭// 冯一骂易咸诲孙爭// ws 韋戢 m WS 可劃/程日"II08X0 da ou!Qp# 0d a31 ou!Qp#:£vid = LC T IOS *qs 2v ・d = LO_|8S *qsiivid =旧 PS *qs :0vid = LV_|8S *qs!£v£d = JBSIO *qs3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.3f.44探屋削酗月寅屋工冒马£因舵90void key() 〃启动停止按钮释放键盘判断{if(ls_KeyS_Hold)if(Start_Stop){Is_KeyS_Hold = 0 ; EXO = 1 ;〃****************display(void delay() {unsigned int i ; for(i = 0; i<300; i++); }void display() {Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 1; Sel_D1 = 0;LED = table[xiaoshu2];delay();Sel_A1 = 1; Sel_B1 = 1; Sel_C1 = 0;//********************* void main() { init(); while(1){ key(); display 。
单片机秒表课程设计 (3)
单片机秒表课程设计1. 引言秒表是一种常用的计时工具,可以用来测量时间的精确度。
在本课程设计中,我们将使用单片机来设计一个简单的秒表。
本文档将详细介绍该秒表的设计思路、硬件和软件实现以及测试结果。
2. 设计思路我们的设计目标是实现一个简单的秒表,包括计时、暂停和复位功能。
我们将采用基于单片机的设计,使用定时器和中断来实现计时。
具体的设计思路如下:•使用微控制器作为核心控制单元,我们选择XXXX型号的单片机。
•使用定时器模块来计时,通过设置定时器的计数频率来控制计时的精确度。
•使用外部中断按钮来控制计时的开始、暂停和复位操作。
•使用LED显示屏来显示计时结果。
3. 硬件设计3.1 硬件连接在硬件设计方面,我们需要将单片机与其他外部设备进行连接。
具体的连接方式如下:•将定时器模块的输出引脚连接到单片机的计时输入引脚。
•将外部中断按钮连接到单片机的中断输入引脚。
•将LED显示屏的控制引脚连接到单片机的输出引脚。
3.2 硬件组成本设计所需要的硬件组成如下:•单片机:XXXX型号微控制器•定时器模块•外部中断按钮•LED显示屏4. 软件设计4.1 主程序框架主程序的框架如下:#include <reg51.h>// 定义全局变量和标志位// 定时器中断函数// 外部中断中断函数// 主程序入口void main() {// 初始化定时器和中断// 循环检测按钮状态,并执行相应操作}4.2 定时器中断函数定时器中断函数用于实现计时功能,其主要逻辑如下:1.获取当前的计数值,并进行相关处理。
2.更新LED显示屏上的计时数据。
4.3 外部中断函数外部中断函数用于响应按钮的按压操作,其主要逻辑如下:1.判断按钮的按下类型,根据不同的按压类型执行相应的操作(开始、暂停或复位)。
2.根据操作类型更新相应的标志位。
4.4 功能函数除了定时器中断函数和外部中断函数之外,还可以编写一些功能函数来实现计时、暂停和复位等功能。
单片机秒表课程设计
单片机 秒表 课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握秒表编程的基本知识。
2. 学生能描述单片机内部定时器的功能和工作原理。
3. 学生能运用所学知识,编写出功能完整的秒表程序。
技能目标:1. 学生能运用C语言进行单片机程序设计,具备一定的编程能力。
2. 学生能够通过实验,学会使用开发板和编程软件进行程序下载和调试。
3. 学生能够通过团队协作,解决实际编程过程中遇到的问题。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,激发创新意识和实践欲望。
2. 学生在学习过程中,形成积极思考、主动探究的良好学习习惯。
3. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。
课程性质:本课程为实践性课程,以单片机基础知识为背景,结合秒表实例,培养学生的编程能力和实际操作能力。
学生特点:学生已具备一定的单片机基础知识和C语言编程能力,对实际操作感兴趣,喜欢动手实践。
教学要求:教师需结合课程目标,采用任务驱动法,引导学生主动参与,注重培养学生的动手能力和团队协作能力。
教学过程中,关注学生个体差异,给予个性化指导,确保学生能够达到预期的学习成果。
通过课程学习,使学生在知识、技能和情感态度价值观方面得到全面提升。
二、教学内容1. 理论部分:a. 单片机基础知识回顾:主要包括单片机内部结构、工作原理及常用寄存器的作用。
b. 定时器原理讲解:详细介绍单片机内部定时器的工作原理,包括计数器、定时器的设置和使用方法。
c. C语言编程基础:复习C语言在单片机编程中的应用,重点讲解与秒表编程相关的语法和技巧。
2. 实践部分:a. 秒表功能需求分析:明确秒表的功能需求,包括开始、停止、计次、清零等功能。
b. 程序设计:引导学生运用所学知识,编写秒表的程序代码。
c. 程序下载与调试:教授学生如何将编写好的程序下载到开发板上,并进行调试和优化。
3. 教学大纲:a. 第一课时:回顾单片机基础知识,讲解定时器原理,明确秒表功能需求。
单片机秒表课程设计
单片机秒表课程设计目录1 设计课题题目、目旳 ..................................................................... . (4)1.1 设计课题题目 ..................................................................... .. (4)1.2 设计课题目旳 ..................................................................... .................... 4 2 单片机系统设计方案描述...................................................................... .................5 3 硬件原理图...................................................................... .........................................6 4 系统图流程 ..................................................................... .. (8)3.1 .主程序流程图...................................................................... .. (8)3.2 . 修改状态数据操作和数码管显示 (8)3.3 开始状态旳数码管显示 (9)3.4.中断INT0修改时间旳流程图 (10)5程序...................................................................... . (14).................................................................... ..............................................15 6 元件清单参照文献 ..................................................................... ........................................... 17 心得体会 ..................................................................... . (18)摘要51系列单片机是各单片机中最为经典和最有代表性旳一种。
单片机课程设计报告秒表(WORD档)
单片机课程设计报告秒表设计电子科学系班级:姓名:学号:指导老师:实用文档2013.12.01实用文档课程设计任务书实用文档实用文档摘要:在生活中我们常常用到秒表作为计时器,为了更深刻理解它的工作原理。
本次课程设计以STC89S51单片机为控制核心,以2位共阴数码管作为显示器。
并用外部中断0控制秒表的清零和用外部中断1控制秒表的开始/暂停。
利用Altium.Designer 10.0设计原理图和PCB。
设计完成后在面包板上搭建电路进行验证和调试。
实验成功后,利用化学方法进行腐蚀刻板。
通过一个个多次实验修改,最后设计出了一个能从00~99秒计时的秒表。
此外后文还对对本次课程设计进行了归纳与总结。
关键词:单片机、数码管、中断、Altium.Designer、腐蚀刻板实用文档目录一、设计要求: (8)二、方案论证: (9)2.1总方案设计方框图: (9)2.2方案选择: (9)2.2.1显示电路: (9)2.2.2按键控制: (10)三、硬件设计: (10)3.1系统主芯片STC89C51单片机介绍: (10)3.2电源电路: (12)3.3时钟电路: (13)3.4复位电路: (13)3.5显示电路: (14)3.6键盘电路: (14)实用文档3.7扩展电路: (15)3.8硬件总电路图设计: (15)四、软件设计 (17)4.1系统主程序设计 (17)4.2定时器T1中断: (17)4.3 外部中断0流程图: (18)4.4 外部中断1流程图: (18)4.5数码管显示程序: (19)五、设计中遇到的问题及解决方法: (20)5.1设计原理图和画PCB遇到问题及解决方法: (20)5.1.1设计原理图: (20)5.1.2 绘制PCB: (20)5.2 在面包板调试时遇到问题及解决方法: (21)5.3在腐蚀刻板时遇到问题及解决方法: (21)5.3.1打印PCB印菲林纸: (21)5.3.2在涂蓝油过程中: (21)5.3.3在显影过程中: (22)实用文档5.4焊接完成后遇到问题及解决方法: (22)结束语 (22)谢辞 (23)参考文献: (24)附录A:秒表设计的源程序 (24)附录B:元件清单: (30)附录C: 秒表的原理图和PCB图: (32)附录D:成绩评定表: (34)附录E:实物图(已通过验证) (36)秒表设计一、设计要求:1.1用89C51设计一个2位的LED数码作为“秒表”。
单片机课程设计秒表计时器
课程设计名称:单片机原理及接口技术题目:基于单片机的秒表计时器设计学期:2014-2015学年第一学期专业:电气技术班级:姓名:学号:指导教师:辽宁工程技术大学课程设计成绩评定表课程设计任务书一、设计题目秒表计时器二、设计任务本课题以单片机为核心.设计和制作一个秒表计时器。
三、设计计划课程设计一周第1天:查找资料.方案论证。
第2天:各部分方案设计。
第3天:各部分方案设计。
第4天:撰写设计说明书。
第5天:校订修改.上交说明书。
四、设计要求1、绘制软件流程图并利用汇编语言编写软件程序;2、绘制系统硬件原理图;3、形成设计报告。
指导教师:教研室主任:2014年 5月 26 日本设计利用89C51单片机设计秒表计时器.通过LED显示秒十位和个位.在设计过程中用一个存储单元作为秒计数单元.当一秒到来时.就让秒计数单元加一.通过控制使单片机秒表计时.暂停.归零。
设计任务包括控制系统硬件设计和应用程序设计。
关键词:51单片机;74HC573;LED数码管综述 (1)1 程序方案 (2)方案论证 (2)总体方案 (2)2部分设计 (3)89C51单片机 (3)晶体振荡电路 (4)硬件复位电路 (5)显示电路 (6)整体电路图 (7)3程序设计 (8)程序流程框图 (8)显示程序流程图 (9)汇编源程序 (10)4调试说明 (13)概述 (13)电路原理图 (13)心得体会 (15)参考文献 (16)单片机是集定时.计数和多种接口于一体的微控制器。
他体积小.成本低.功能强.广泛应用于智能产品和工业自动化上。
而51单片机是各单片机中最位典型和最有代表性的一种。
中国使用单片机的历史只有短短的30年.在初始的短短五年时间里发展极为迅速。
纵观我们现在生活的各个领域.从导弹的导航装置.到飞机上各种仪表的控制.从计算机的网络通讯与数据传输.到工业自动化过程的实时控制和数据处理.以及我们生活中广泛使用的各种智能IC卡、电子宠物等.这些都离不开单片机。
单片机 秒表计时器 课程设计3
单片机课程设计报告书学院:土木工程学院班级:土木023 设计人:田春杰1设计题目:设计一个电子秒表计时器2总体设计:完成按下按扭启动,开始计时;再次按下该按扭后停止计时。
按下另一个按扭时,秒表清零的功能,计时数值最大为99分59秒99。
用LED数码管显示计时的时间,显示的时间应有百分之一秒为、十分之一秒位、秒个位、秒十位、分个位、分十位;利用单片机的外部中断,某键为低时产生中断开始计时,再一次为低时产生中断停止计时。
当来一外部脉冲时,产生中断使时间清零。
3 硬件系统设计:将P1.2口接到一按钮开关上,作为一个停止或开始计时的中断。
外部中断0的引脚INT0接一按钮开关,作为清零中断。
利用定时器0产生一个百分之一秒的计时中断。
4源程序如下:A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置TEMP EQU 22H ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭CLR F0CLR F1MOV DPTR,#NUMTAB ;指定查表启始地址;等待按键输入;根据按键的输入判断执行什么功能;按键1按下则执行功能1MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭START:JB P3.6,START1;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START;如果是干扰就返回JNB P3.6,$;等待按键松开LJMP GN1;按键2按下则执行功能2START1: JB P3.7,START;循环判断开始按钮K2是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.7,START1;如果是干扰就返回JNB P3.7,$LJMP GN2;数码管显示秒表时间的程序GN1: ;先初始化S1:MOV A,#0MOV TEMP,AGOON1: MOV R2,#2JS1: MOV R3,#250TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BLCALL DPLOP1;插入一段判断定时过程中是否有按键输入的程序段C1: JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开CPL F0ZT1: ; MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT1;如果是干扰就返回JNB P3.6,$;等待按键松开LCALL DPLOP1B1: JB P3.7,LOOP1ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟INC TEMP;满一秒钟对时间加1MOV A,TEMPCLR CSUBB A,#60JNZ GOON1;判断TEMP的数值是否为60?不为60循环ACALL OVERRETGN2: MOV A,#14H ; 设定倒计时的时间20SMOV TEMP,A;数码管显示倒计时时间的程序;初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#14H;使显示时间为设定的倒计时时间GOON2: MOV R2,#2JS2: MOV R3,#250TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BMOV DPTR,#NUMTAB ;指定查表启始地址DPLOP2: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C2: JB P3.6,B2ACALL DELAY10;延时10毫秒消抖JB P3.6,C2JNB P3.6,$;等待按键松开ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT2;如果是干扰就返回JNB P3.6,$;等待按键松开B2: JB P3.7,LOOP2ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP2: DJNZ R3,TIME2 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS2 ;循环执行2次,时间为1 秒钟DEC TEMP;满一秒钟对时间减1MOV A,TEMPJNZ GOON2;判断TEMP的数值是否为0?不为0循环ACALL OVERRET;结束定时OVER: AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1: MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10: MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的两位一体的数码管0~9各数字的显示代码NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H DPLOP1: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影RETEND5自评分和收获体会:通过本次设计让我又一次认识到了单片机应用的广泛性,同时也看到了自己在单片机应用上的不足之处,以后还要加强学习。
单片机简易秒表课程设计
智能家电:通过单片机控制家 电设备,实现远程控制和智能 调节
智能安防:通过单片机实现门 窗、烟雾、燃气等安全监测, 提高家居安全
智能照明:通过单片机控制灯 光亮度和色温,实现节能和舒 适
智能环境:通过单片机监测室 内温度、湿度、空气质量等,
实现智能调节和节能
智能健康:通过单片机监测人 体健康数据,实现健康预警和
控制秒表计时:通过单片机控制秒表开始、暂停、复位等操作 显示时间:单片机通过驱动LCD或LED显示屏显示时间 报警功能:单片机可以设置报警时间,当达到设定时间时发出声音或灯光报警 数据存储:单片机可以存储秒表的运行数据,方便查看和统计 接口扩展:单片机可以扩展其他功能,如无线通信、数据传输等
掌握单片机基础知识和基本操作 提高编程能力和逻辑思维能力 培养团队合作和沟通能力 提高解决问题的能力和创新能力
初始化:设置定时器、中断、显示等参 数
循环:循环读取定时器值,计算时间
判断:判断时间是否达到设定值,如果 达到则停止计时
显示:将计时结果显示在屏幕上
处理中断:处理定时器中断,更新计时 值
结束:结束程序,关闭定时器、中断等 资源
驱动程序功能:控制显示模块的显示状态 驱动程序结构:包括初始化、显示、清除等函数 驱动程序实现:通过调用单片机的I/O接口实现显示模块的控制 驱动程序优化:考虑显示模块的刷新频率和功耗,进行优化设计
优化算法:采用更高效的 算法,提高计算速度
减少延迟:优化程序结构, 减少不必要的延迟
增加缓存:增加缓存大小, 提高数据读取速度
优化硬件:选择更高性能 的硬件,提高整体性能
PART SIX
运动计时:用于 跑步、游泳等运 动项目的计时
烹饪计时:用于烹 饪过程中的计时, 如煮饭、炖汤等
单片机数字秒表课程设计
单片机数字秒表课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握其编程方法;2. 学习并掌握计时器/计数器的原理和使用方法;3. 了解数字秒表的原理,学会设计简单的数字秒表电路。
技能目标:1. 能够运用所学知识,独立完成单片机数字秒表的编程和调试;2. 能够运用电子元件搭建简单的数字秒表电路,并进行功能测试;3. 培养动手实践能力,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发创新意识;2. 培养学生严谨的科学态度,养成细致观察、精益求精的习惯;3. 培养学生团队合作精神,学会相互尊重、相互帮助。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,旨在培养学生的动手实践能力和创新能力。
学生特点:学生已具备一定的单片机基础知识,对编程和电子制作有一定的了解,但对实际应用尚缺乏经验。
教学要求:结合学生特点,注重理论与实践相结合,引导学生通过实践解决问题,提高学生的实际操作能力和创新思维。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
1. 单片机基础理论回顾:主要包括单片机的内部结构、工作原理、指令系统等,为后续编程打下基础。
相关教材章节:第一章 单片机概述。
2. 计时器/计数器原理与使用:详细介绍计时器/计数器的工作原理、编程方法及应用。
相关教材章节:第三章 定时器/计数器。
3. 数字秒表的原理与设计:分析数字秒表的电路原理,学习如何利用单片机和外围元件设计数字秒表。
相关教材章节:第五章 数字电路设计。
4. 单片机编程与调试:学习使用编程软件,编写数字秒表的程序,并进行调试。
相关教材章节:第二章 单片机编程。
5. 实践操作:学生分组进行数字秒表的搭建、编程、调试及功能测试。
教学进度安排:1. 课时1:回顾单片机基础理论;2. 课时2:学习计时器/计数器原理与使用;3. 课时3:讲解数字秒表的原理与设计;4. 课时4:学习单片机编程与调试;5. 课时5-6:实践操作,完成数字秒表的设计与制作。
52单片机秒表课程设计
52单片机秒表课程设计一、课程目标知识目标:1. 学生能理解并掌握52单片机的基本原理和功能;2. 学生能掌握秒表的计时原理,并能运用C语言编程实现对秒表的启动、停止、复位及时间显示功能;3. 学生了解并掌握电子元器件的基本使用方法,如按键、LED等。
技能目标:1. 学生能运用所学知识,完成52单片机的硬件连接及程序编写;2. 学生通过实际操作,提高动手能力,培养解决实际问题的能力;3. 学生能够独立思考,分析并解决程序编写过程中遇到的问题。
情感态度价值观目标:1. 学生在学习过程中,培养对电子技术的兴趣,提高学习积极性;2. 学生通过团队协作,培养沟通、合作能力,增强团队意识;3. 学生在课程实践中,体验科技的魅力,培养创新精神和实践能力;4. 学生认识到知识在实际应用中的价值,增强学习责任感和使命感。
本课程针对高中年级学生,结合课程性质、学生特点和教学要求,明确以上课程目标,旨在让学生在掌握基本知识的同时,提高实践操作能力和团队协作能力,培养创新精神和科技素养。
课程目标具体、可衡量,为后续的教学设计和评估提供依据。
二、教学内容本章节教学内容紧密围绕课程目标,结合教材相关章节,具体安排如下:1. 52单片机基本原理及功能介绍:包括单片机内部结构、工作原理、指令系统等,对应教材第3章;- 硬件连接:介绍单片机与外围电路的连接方法,如按键、LED等,对应教材第4章;- C语言编程基础:回顾并巩固C语言基础知识,为单片机编程打下基础,对应教材第5章。
2. 秒表功能实现:- 计时原理讲解:分析秒表的计时原理,对应教材第6章;- 程序编写:运用C语言编写程序,实现秒表的启动、停止、复位及时间显示功能,对应教材第7章;- 硬件与软件结合:将编写好的程序烧录至单片机,进行实际操作,调试并优化程序,对应教材第8章。
3. 实践操作与团队协作:- 学生分组进行硬件连接、编程、调试等实践活动,培养动手能力;- 鼓励学生相互交流、合作,共同解决问题,提高团队协作能力。
单片机秒表课程设计
单片机秒表课程设计设计目的本文档旨在介绍一个基于单片机的秒表课程设计方案,通过该课程设计,学生可以学习和掌握单片机的基本原理和应用,同时加深对计时器和中断的理解和应用能力。
课程设计内容本课程设计将通过以下几个步骤来实现一个基本的秒表功能:1.硬件准备:准备一个支持单片机编程的开发板、显示屏模块和按钮模块。
2.程序框架:编写程序框架,初始化单片机的引脚和外设,并定义相关的变量和常量。
3.显示模块:编写程序代码,实现显示屏的驱动,在屏幕上显示计时的时间。
4.按钮模块:编写程序代码,实现按钮的驱动,用于开始、停止和复位秒表。
5.计时功能:编写程序代码,实现秒表的计时功能,包括计时开始、计时停止和计时复位等操作。
6.中断处理:利用中断技术,实现定时中断,以精确计时,并实现按钮的中断处理功能。
7.调试和测试:将程序烧录到开发板上,进行调试和测试,确保秒表功能正常运行。
操作流程以下是使用该秒表的基本操作流程:1.程序启动:按下按钮模块上的启动按钮,秒表开始计时并在显示屏上显示计时时间。
2.计时中:显示屏上的时间会实时更新,秒表将一直计时。
3.计时停止:按下按钮模块上的停止按钮,秒表停止计时,但显示屏上的时间保持不变。
4.计时复位:按下按钮模块上的复位按钮,秒表归零,并在显示屏上显示零。
软件设计以下是软件设计的关键部分:程序框架#include <reg51.h>// 定义所使用的引脚和外设sbit startButton = P0^0; // 启动按钮sbit stopButton = P0^1; // 停止按钮sbit resetButton = P0^2; // 复位按钮sbit display = P1; // 显示屏// 定义所使用的变量和常量unsigned char hour; // 时unsigned char minute; // 分unsigned char second; // 秒unsigned int count; // 计数器// 函数声明void init();void displayTime();// 主函数void main(){init();// 主循环while(1){displayTime(); }}// 初始化函数void init(){// 初始化引脚和外设// ...// 初始化变量和常量 hour = 0;minute = 0;second = 0;count = 0;}// 显示时间函数void displayTime(){// 显示时间的代码// ...}显示模块使用该模块可以将计时的时间显示在屏幕上,具体实现需要根据显示屏的驱动方式来编写代码。
51单片机秒表课程设计
51单片机秒表课程设计一、课程目标知识目标:1. 学生能理解51单片机的基本原理,掌握其编程方法。
2. 学生能掌握秒表功能的基本组成部分,如计时、暂停、复位等。
3. 学生能理解并应用中断、定时器等51单片机的相关知识。
技能目标:1. 学生能运用C语言编写51单片机程序,实现秒表功能。
2. 学生能通过实验操作,调试并优化程序,解决实际问题。
3. 学生能熟练使用相关开发工具和调试设备,如编译器、仿真器等。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,激发创新意识和实践欲望。
2. 学生培养良好的团队合作意识,学会互相交流、协作解决问题。
3. 学生培养严谨的科学态度,注重实验数据的真实性,勇于面对和克服困难。
课程性质:本课程为实践性课程,以项目为导向,结合理论知识与实际操作,培养学生的动手能力和编程思维。
学生特点:学生具备一定的电子基础和编程基础,对51单片机有一定了解,但对中断、定时器等高级功能尚不熟悉。
教学要求:教师需引导学生运用已学知识,通过实际操作,逐步掌握51单片机的编程和应用。
在教学过程中,注重培养学生的实际操作能力、问题解决能力和团队协作能力。
课程目标的设定旨在使学生在完成本项目后,能够独立设计并实现简单的单片机应用系统。
二、教学内容1. 理论知识:- 51单片机结构及工作原理- C语言编程基础:数据类型、运算符、控制语句等- 中断和定时器的原理与应用- 键盘输入与数码管显示原理2. 实践操作:- 使用Keil软件编写和编译程序- 使用STC89C52RC单片机进行程序下载和调试- 设计并实现秒表功能,包括计时、暂停、复位等3. 教学大纲:- 第一周:回顾51单片机基本原理,学习C语言编程基础- 第二周:学习中断和定时器知识,分析秒表功能需求- 第三周:设计程序框架,编写中断处理程序和定时器程序- 第四周:编写键盘输入和数码管显示程序,实现秒表功能- 第五周:项目调试、优化和展示4. 教材章节及内容:- 第一章:51单片机概述,了解单片机的发展及其应用- 第二章:C语言编程基础,掌握基本语法和数据类型- 第三章:中断和定时器,学习中断处理和定时器编程方法- 第四章:输入输出接口,学习键盘输入和数码管显示技术教学内容的选择和组织旨在保证学生能够系统地掌握51单片机编程及应用,注重理论与实践相结合,培养学生的实际操作能力。
单片机课程设计秒表
单片机课程设计 秒表一、课程目标知识目标:1. 让学生掌握单片机的基本原理和功能,理解单片机在秒表设计中的应用。
2. 使学生了解秒表的计时原理,掌握秒表的程序设计方法。
3. 帮助学生掌握单片机I/O口的使用,定时器/计数器的工作原理及其编程方法。
技能目标:1. 培养学生运用C语言进行单片机程序设计的能力,能够编写简单的秒表程序。
2. 培养学生动手实践能力,能够独立完成单片机秒表的硬件连接和程序下载。
3. 提高学生分析问题、解决问题的能力,能够对程序进行调试和优化。
情感态度价值观目标:1. 培养学生对单片机及嵌入式系统的兴趣,激发学生学习主动性和创新精神。
2. 培养学生团队合作意识,学会在团队中分享观点、沟通协作。
3. 培养学生严谨的科学态度和良好的学习习惯,注重实践与理论相结合。
课程性质分析:本课程为单片机原理与应用课程的一部分,以实践操作为主,理论讲解为辅。
针对学生特点,注重培养学生的学习兴趣和动手能力。
学生特点分析:学生为高中二年级学生,具备一定的电子基础和编程能力,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合课程性质和学生特点,将课程目标分解为具体的学习成果,注重理论与实践相结合,确保学生能够掌握单片机秒表设计的相关知识和技能。
在教学过程中,关注学生的个体差异,提供个性化指导,以促进全体学生的全面发展。
二、教学内容1. 单片机基础理论:- 单片机原理与结构- 单片机的I/O口操作- 定时器/计数器原理与应用2. C语言编程基础:- 数据类型与运算符- 控制结构(循环、分支)- 函数的定义与调用3. 秒表程序设计:- 秒表的计时原理- 程序流程图设计- 编程实现秒表功能(启动、停止、复位、计次等)4. 硬件连接与调试:- 单片机与按键、显示器的连接方法- 程序下载与调试方法- 故障分析与排查技巧教学大纲安排:第一课时:单片机基础理论,介绍单片机原理、结构及I/O口操作第二课时:C语言编程基础,讲解数据类型、运算符、控制结构等第三课时:定时器/计数器原理与应用,分析秒表的计时原理第四课时:秒表程序设计,学习程序流程图设计及编程实现第五课时:硬件连接与调试,动手实践单片机秒表的硬件连接和程序下载,进行调试与优化教材章节关联:《单片机原理与应用》第三章:单片机I/O口编程《单片机原理与应用》第四章:定时器/计数器《C语言程序设计》第二章:数据类型与运算符《C语言程序设计》第三章:控制结构《C语言程序设计》第五章:函数教学内容确保科学性和系统性,结合课程目标和教学大纲,按照以上进度进行教学,使学生能够全面掌握单片机秒表设计与实现的相关知识与技能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计名称:单片机原理及接口技术题目:基于单片机的秒表计时器设计学期:2014-2015学年第一学期专业:电气技术班级:姓名:学号:指导教师:辽宁工程技术大学课程设计成绩评定表课程设计任务书一、设计题目秒表计时器二、设计任务本课题以单片机为核心,设计和制作一个秒表计时器。
三、设计计划课程设计一周第1天:查找资料,方案论证。
第2天:各部分方案设计。
第3天:各部分方案设计。
第4天:撰写设计说明书。
第5天:校订修改,上交说明书。
四、设计要求1、绘制软件流程图并利用汇编语言编写软件程序;2、绘制系统硬件原理图;3、形成设计报告。
指导教师:教研室主任:2014年5月26 日本设计利用89C51单片机设计秒表计时器,通过LED显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒到来时,就让秒计数单元加一,通过控制使单片机秒表计时,暂停,归零。
设计任务包括控制系统硬件设计和应用程序设计。
关键词:51单片机;74HC573;LED数码管综述 (1)1 程序方案 (2)1.1方案论证 (2)1.2总体方案 (2)2部分设计 (3)2.1 89C51单片机 (3)2.2晶体振荡电路 (4)2.3硬件复位电路 (5)2.4显示电路 (6)2.5整体电路图 (7)3程序设计 (8)3.1程序流程框图 (8)3.2显示程序流程图 (9)3.3汇编源程序 (10)4调试说明 (13)4.1概述 (13)4.2电路原理图 (13)心得体会 (15)参考文献 (16)单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
而51单片机是各单片机中最位典型和最有代表性的一种。
中国使用单片机的历史只有短短的30年,在初始的短短五年时间里发展极为迅速。
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
本课题以单片机为核心,设计和制作一个秒表,开始时,显示“00”,第1次按下按钮后就开始计时;第2次按按钮后,计时停止;第3次按按钮后,计时归零。
根据设计要求设计出了符合要求的秒表计时器。
1 程序方案1.1方案论证时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。
按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路。
但根据显示方式的不同选择,我们可以有几种方案:方案一:使用静态显示方式。
静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。
因而此设计中使用的显示位数使用了三个8位并行I/O口。
如果另外想扩展单片机功能,则能使用的输出管脚很是有限。
方案二:使用动态显示方式。
这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。
这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。
1.2总体方案由课程设计的要求和任务,采用的汇编语言编程,设计秒表要求一秒定时,采用了定时器T0和(存储单元NTA)扩展来定时,即用单片机内部的定时器T0。
先将时钟初始化,赋入初值25ms定时,循环40次来进行1秒定时。
然后由R3来进行加一运算,然后将其值通过P1(段显示),P2口(位显示)在数码管上进行显示时,在程序中首先定义一个关于数码管显示的字形码定义,以便在显示时调用即可。
编写秒表程序,使其通过I/O的输出在数码管上显示秒表的计时情况,通过I/O口的输入与中断程序级按键程序实现INT中断功能和控制秒表的“停”与“走”。
图1-12部分设计2.1 89C51单片机MCS—51系列单片机是8位单片机产品,89C51是其中的代表,基本模块包括以下几个部分:(1)CPU:89C51的CPU是8位的,另外的89C51内部有1个处理器(2)ROM:4KB的片内程序存储器,存放开发调试完成的应用程序(3)I/O口:P0—P3,共4个口32条内部中断,2个外部中断(4)RAM:256B的片内数据存储器,容量小,但作用大(5)中断系统:共5个中断源,3个内部中断,2个外部中断(6)定时器/计数器:2个16位的可编程计数器/定时器(7)通用串口: 全双工通用异步接收器/发送器(8)振荡器:89C51的外接晶振与内部时钟振荡器位CPU提供时钟信号(9)总线控制:89C51对外提供若干控制总线,便于系统扩展。
AT89C51 管脚图如下:图2-12.2晶体振荡电路89C51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反相振荡放大器的输入及内部时钟工作电路的输入和来自反相振荡器的输出,该反相放大器可以配置为片内振荡器。
这里选用51单片机的内部振荡方式,电路图如下:C2,C3起稳定振荡频率,快速起振的作用。
其中晶振采用12兆赫兹的,一个机器周期是1微秒。
方便计算初值等。
图2-32.4显示电路采用一个两位的LED数码管,LED是八段显示器,内部有7个条形发光二极管和1个小圆点发光二极管,根据各管的亮暗组成字符。
在用数码管显示时,有静态和动态两种选择,这里选用LED动态显示,用P0,P2,P2口位驱动显示,由于P0口没有上拉电阻,因此P0口需要外接上拉电阻才能输出高电平,这里使用8个240欧的电阻作为上拉电阻。
电路图如下:位控端用74HC573来驱动18 1930 3129912345678图2-42.5整体电路图图2-53程序设计3.1程序流程框图图3-13.2显示程序流程图图3-23.3汇编源程序NTA EQU 30HNTB EQU 31HKEY EQU 32HBUT BIT P1.6FLAG BIT P3.0ORG 00HLJMP STARTORG 0BHLJMP INTT0START:MOV KEY ,#00H MOV R3,#00HMOV P2,#10HMOV A, R3MOV B,#10DIV ABMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AACALL DELAY10MS MOV A,BMOV P2,#20HMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AMOV TMOD,#01HSETB ET0SETB EAWT: JB BUT,DKNJB FLAG,DKNLCALL DELAY10MSJB BUT,DKNINC KEYSETB FLAGMOV A,KEYCJNE A,#01,KN1SETB TR0MOV TH0,#9EHMOV TL0,#58HMOV NTA,#00HMOV NTB,#00HLJMP DKNKN1:CJNE A,#02H,KN2 CLR TR0LJMP DKNKN2:CJNE A,#03H,DKN MOV R3,#00HMOV P2,#10HMOV A, R3MOV B,#10DIV ABDA AMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AACALL DELAY10MS MOV A,BDA AMOV P2,#20HMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AMOV KEY,#00HDKN:JB BUT,WT2LJMP DONEWT2:CLR FLAGLJMP DONEDONE:MOV P2,#10H MOV A,R3MOV B,#10DIV ABMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AACALL DELAY10MS MOV A,BMOV P2,#20HMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,AACALL DELAY10MS LJMP WTDELAY10MS:MOV R6,#20 D1:MOV R7,#20DJNZ R7,$DJNZ R6,D1RETINTT0: MOV TH0,#9EHMOV TL0,#58HINC NTAMOV A,NTACJNE A,#40,NEXTMOV NTA,#00HINC R3MOV A,R3CJNE A,#100,NEXTMOV R3,#00HNEXT: RETITABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END4调试说明4.1 概述上电开始时,显示“00”,第1次按下BUT(按键)后单片机秒表就开始计时。
第2次按BUT后,计时停止。
第3次按BUT后,计时归零。
4.2 电路原理图1)显示清零图4-12)计数停止图4-2心得体会在这次单片机课程设计中,我收获不少。
此次课程设计巩固了我的基础知识,提高了我的实际应用水平,锻炼了我的实际操作和动手能力,了解了51单片机的工作原理,学会使用有关仿真和汇编的软件;学会用软件调试与找出问题和解决问题;培养用多思维来思考解决问题。
合理运用所学知识培养动手实践能力。
然而,在这次设计中,我也发现了我许多的不足。
特别是在编程,仿真方面走了不少弯路。
功能扩展方面有阻碍。
但是,正因为这样让我更加勤奋的探索和专研,从而很多方面都已经有所提高,知识也掌握的更加全面。
在这次的课程设计中,我在数码管动态显示方面出现了一些阻碍,用汇编语言编程思维有点乱,导致写出来的程序仿真有些问题,后来通过查找资料和同学的帮助、老师的精心指导,我顺利完成了课程设计。
通过这次课程设计,我们获得了丰富的理论知识,极大地提高了实践能力,这将对我们以后的进一步学习这方面的知识有极大的帮助。
在以后的学习实践中,我将继续努力,完善自己,提高自己,更加严格要求自己,争取在学术上获得更大的进步。
同时我懂得在日常生活中增加知识储备的重要性,冰冻三次非一日之寒,好好积累知识,学以致用。
参考文献[1]王迎旭. 单片机原理与应用. 机械工业出版社,2009[2]张毅刚,彭喜元,彭宇.单片机原理及应用.高等教育出版社,2010[3]楼然苗. 51系列单片机设计实例. 北京航空航天大学出版社,2009[4]黄勤.计算机硬件技术基础实验教程.重庆大学出版社,2006[5]刘乐善.微型计算机接口技术及应用.华中科技大学出版社,2001[6]陈光东.单片微型计算机原理及接口技术.华中科技大学出版社,201116。