单片机课程设计 秒表计时器(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 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。