51单片机课程设计秒表

合集下载

51电子秒表课程设计

51电子秒表课程设计

51电子秒表课程设计一、课程目标知识目标:1. 学生理解电子秒表的基本原理,掌握其计时功能的工作机制。

2. 学生掌握51单片机的编程基础,能够运用C语言进行简单的程序编写。

3. 学生了解电子秒表中涉及到的电子元器件,如晶振、电容、按键等,并理解它们在电路中的作用。

技能目标:1. 学生能够运用所学知识,独立完成51电子秒表的硬件电路搭建。

2. 学生能够编写程序,实现电子秒表的启动、停止、清零及计时功能。

3. 学生能够通过实际操作,解决电子秒表中遇到的问题,提高动手能力和故障排查能力。

情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发学习热情,养成积极探索和主动学习的良好习惯。

2. 学生通过合作完成项目,培养团队协作能力和沟通能力,增强集体荣誉感。

3. 学生在课程学习中,树立正确的价值观,认识到科技对生活的影响,增强社会责任感。

课程性质:本课程为实践性课程,结合理论知识与动手实践,旨在提高学生的实际操作能力和创新能力。

学生特点:学生具备一定的物理和数学基础,对电子技术有较高的兴趣,喜欢动手操作,但编程能力可能较弱。

教学要求:结合学生特点,注重理论与实践相结合,循序渐进,由浅入深地引导学生掌握电子秒表的设计与制作。

在教学过程中,关注学生的个体差异,鼓励学生积极参与,充分调动学生的主观能动性。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的学习成果。

二、教学内容本课程教学内容主要包括以下几部分:1. 电子秒表原理:介绍电子秒表的工作原理,分析计时功能的实现过程,探讨51单片机在电子秒表中的应用。

2. 硬件电路设计:学习51单片机的基本电路,掌握晶振、电容、按键等电子元器件的选择和使用方法,学会搭建电子秒表的硬件电路。

3. 软件编程:学习C语言编程基础,掌握51单片机的编程技巧,编写电子秒表的程序,实现启动、停止、清零及计时功能。

4. 实践操作:学生分组进行硬件电路搭建,编程调试,实际操作电子秒表,解决过程中遇到的问题。

C51单片机秒表计时(C语言)

C51单片机秒表计时(C语言)

南开大学滨海学院C51嵌入式软件设计(C语言)题目:计时秒表●功能描述:本设计实现在99秒内的秒表计时,一个按键实现开始、暂停、复位。

●原理概述:P1接四位七段数码管,P3。

2接一按键产生外部中断0,P3。

4-P3。

7控制扫描显示。

计时使用定时器0产生10ms中断累计。

按键不同次序决定了对应的控制功能,因为第一次按键必定为开始计时,所以第二次按键判断为暂停,依次第三次为置零.主程序调用显示程序,显示程序实时显示计时时间.●效果显示●图一(电路总图)●图二(效果显示)注:第四位显示为单位:S●程序清单#include<reg51。

h>#include〈stdio.h>unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };sbit P37=P3^7;sbit P36=P3^6;sbit P35=P3^5;sbit P34=P3^4;unsigned int a=0,cout=0,mm=0;x,y,p,q;/*********延时*********************/void delay(){int g;for(g=70;g>0;g—-);}/*********显示程序*****************/void display(){x=cout/10;//秒十位P34=0;P1=Tab[x];delay();P34=1;y=cout—x*10; //秒各位P35=0;P1=Tab[y]; delay();P1=0x80;delay();P35=1;p=mm/10; //ms的高位P36=0;P1=Tab[p];delay();P36=1;P37=0; //显示单位:SP1=Tab[5]; delay();P37=1;}/*********主程序********************/ void main(){IT0=1;EX0=1;ET0=1;TMOD=0x01;TH0=0xD8;//装初值,10msTL0=0xF0;EA=1;while(1){display(); };}/*********外部按键中断子程序*********/ void int0 ()interrupt 0{if(a==0)//开始计时{ TR0=1;mm=0;a++;}else if(a==1)//暂停计时{TR0=0;a++;}else//置零{ a=0;mm=0;cout=0;}}/*********定时器子程序****************/ void time0()interrupt 1{TH0=0xD8;TL0=0xF0;mm++;if(mm==80)//考虑其它损耗,调整后约为1S {cout++;mm=0;}}。

c51数字秒表课程设计

c51数字秒表课程设计

c51数字秒表课程设计一、课程目标知识目标:1. 学生能理解C51单片机的基本原理,掌握数字秒表的硬件设计及编程方法。

2. 学生能够运用C语言编写程序,实现秒表的启动、停止、计时的功能。

3. 学生了解数字秒表在实际应用中的重要性,如时间测量、实验数据记录等。

技能目标:1. 学生能够运用所学的C51知识,设计并实现一个具有基本功能的数字秒表。

2. 学生通过实际操作,提高动手实践能力,培养解决实际问题的能力。

3. 学生能够运用所学知识,对数字秒表进行调试和优化,提高程序运行效率。

情感态度价值观目标:1. 学生培养对单片机编程的兴趣,提高学习主动性和积极性。

2. 学生通过合作完成任务,培养团队协作能力和沟通能力。

3. 学生在解决问题的过程中,培养坚持不懈、勇于探索的精神。

本课程针对高年级学生,结合C51单片机课程内容,注重理论与实践相结合。

课程设计旨在帮助学生巩固所学知识,提高动手实践能力,培养解决实际问题的能力。

通过数字秒表的设计与实现,让学生充分体会单片机编程的乐趣,激发学生的学习兴趣,为后续课程学习打下坚实基础。

同时,课程强调团队协作和情感态度的培养,使学生在学习过程中形成积极向上的人生态度。

本章节教学内容主要包括以下几部分:1. C51单片机原理回顾:复习C51单片机的硬件结构、工作原理及编程基础,重点掌握I/O口编程、定时器/计数器等知识点。

2. 数字秒表的硬件设计:介绍数字秒表的硬件组成,包括单片机、时钟电路、显示电路等,分析各部分功能及相互关系。

3. 数字秒表的编程实现:学习如何使用C语言编写程序,实现数字秒表的功能。

内容包括:- 定时器/计数器的配置与使用;- 按键扫描程序编写;- 数码管显示程序编写;- 秒表功能模块设计(启动、停止、计时)。

4. 教学案例分析与实践:结合教材案例,分析数字秒表的设计过程,引导学生动手实践,完成一个具有基本功能的数字秒表设计。

5. 调试与优化:介绍程序调试方法,指导学生运用调试工具,对数字秒表程序进行调试和优化,提高程序运行效率。

51单片机实验 秒表设计

51单片机实验 秒表设计

实验报告一、实验名称10秒计时的秒表设计二、实验内容精确到0.1秒的秒表三、相关模块led数码管、usb、独立键盘四、实验代码#include "reg52.h"typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;sbit k1=P3^1;sbit k2=P3^0;sbit k3=P3^2;sbit k4=P3^3;u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};u16 s,sec;unsigned int i;unsigned int j;unsigned int a,b,c,d;u8 mb[2];void Timer0Init(){TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。

TH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;TR0=0;//打开定时器}void delay(u16 n){while(n--);}void DigDisplay1(u16 i){switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==1){P0=smgduan[mb[i]]+0x80;//发送段码}else{P0=smgduan[mb[i]];}delay(1); //间隔一段时间扫描P0=0x00;//消隐}void DigDisplay2(u16 i){i=i+3;switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==4){P0=smgduan[a]+0x80;}else{P0=smgduan[b];}delay(1);P0=0x00;}void DigDisplay3(u16 i){i=i+6;switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;}if (i==7){P0=smgduan[c]+0x80;}else{P0=smgduan[d];}delay(1);P0=0x00;}void key1(){delay(10);if(k1==0){TR0=!TR0;while(!k1);}}void key2(){delay(10);if(k2==0){s=0;sec=0;while(!k2);}}void key3(){delay(10);if(k3==0){if (j==0) j=1;else j=0;if (j==1){a=mb[1];b=mb[0];}if (j==0){c=mb[1];d=mb[0];}while(!k3);}}void key4(){delay(10);if(k4==0){s=0;sec=0;a=0;b=0;c=0;d=0;while(!k2);}}void main(){Timer0Init();i=0;j=0;while(1){delay(10);key1();if(TF0==1){TF0=0;TH0=0XFC; //给定时器赋初值,定时1msTL0=0X18;s++;}if(s==60){s=0;sec++;if(sec==100)sec=100;}key2();mb[0]=sec%10;mb[1]=(sec/10)%10;key3();DigDisplay1(i);DigDisplay2(i);DigDisplay3(i);i++;i=i%2;key4();}}五、实验效果K1作用:启动、开始或暂停计时K2作用:计数位清零K3作用:记录当前时间并显示K4作用:清零所有的数码管六、实验遇到的问题经过前几次的实验,0到10秒的计数已经不成问题,本次实验的难点主要在几个按键的功能实现上。

基于51单片机的数字秒表课程设计

基于51单片机的数字秒表课程设计

电气与自动化工程学院卓越工程师培养计划暑期实训报告题目秒表系统的设计年级11级专业自动化班级卓越班学号*********姓名俞雷地点大学生创新实验室日期2012年8月12日~2012年8月20日目录一、单片机简介............................................................................- 2 -二、设计目标................................................................................- 3 -1、设计目的: (3)2、具体操作: (3)三、硬件设计................................................................................- 4 -原理图:. (4)四、系统的软件设计....................................................................- 5 -1、软件整体设计思路: (5)2、软件流程图: (5)3、程序: (6)(1)数码管秒表显示程序: ...................................................- 6 -(2)1602液晶秒表显示程序:............................................ - 13 -五、系统的调试及设计结果..................................................... - 18 -1602液晶——秒表显示效果图:. (18)LED数码管——秒表显示效果图: (18)六、创新实验室课程设计小结................................................. - 19 -一、单片机简介单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。

51单片机秒表课程设计

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单片机基础知识学习;第二课时:秒表功能需求分析与电路设计;第三课时:定时器/计数器的应用;第四课时:程序编写与调试;第五课时:教学案例与实战。

(完整版)基于51单片机的秒表设计1

(完整版)基于51单片机的秒表设计1

实训报告题目秒表系统的设计年级专业班级学号姓名地点日期目录一,目⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 3 二,系硬件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 4 三,系件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7 四,系与果⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12 五,片机小⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13设计目标最近几年来跟着科学技术的发展,单片机的应用范围愈来愈广,也成为好多专业的必修课。

本文简单论述了鉴于单片机的秒表设计。

本设计的主要特色是计时精度达到 0.01 秒,能够用来为各样体育比赛计时等。

本设计的数字秒表采纳AT89才 51 单片机为主要器件,利用其准时器的原理,结LED数码管以及外面中止电路来设计计时器。

将软硬件联合起来,使得系统能实现 0~99.99 秒的计时,计时精度位 0.01 秒。

当按下一个键 1 时,开始显示数字,即计时开始,再按下键 2 时,暂停计时并显示方才的结果,这个时候假如再按键 1,则持续计时,也就是显示的数字包含方才的数据。

按下键 3 时,数据清零。

系统硬件设计1 、1整体方案的设计数字秒表拥有显示直观、读取方便、精度高等长处,在计时中宽泛应用。

本设计顶用单片机和数码管构成数字秒,力争构造简单。

设计中包含硬件电路的设计和系统程序的设计。

硬件电路主要有主控制器、控制按钮与显示电路构成。

主控制器采纳单片机AT89才 51,显示电路采纳四位共阴极数码管显示计不时间。

本设计利用 AT89才 51 单片机的准时器,使其能精准计时。

利用键盘上的独立按键实现开始计时和暂停以及清零。

P0口输出段码数据, P2.0~P2.2 连上译码器作为位选。

设计的基本要求是正确性。

计时器采纳 T0 中止实现,准时溢出中止周期为1ms,当溢出中止后向CPU 发出溢出中止恳求,每发出10 次中止恳求就对 10ms位(即最后一位)加一,达到 100 次就对 100ms位加一,以此类推,直到99.99s 为止。

c51电子秒表课程设计

c51电子秒表课程设计

c51电子秒表课程设计一、课程目标知识目标:1. 学生能够理解C51单片机的基础知识,掌握其编程方法。

2. 学生能够掌握电子秒表的基本原理,包括计时、暂停、清零等功能。

3. 学生能够了解并掌握电子秒表中的中断处理、定时器/计数器等硬件资源的使用。

技能目标:1. 学生能够运用C语言编写C51单片机程序,实现电子秒表的计时功能。

2. 学生能够通过实验操作,学会使用开发板、编译器等工具进行程序编写和调试。

3. 学生能够培养实际动手能力,独立完成电子秒表的搭建和调试。

情感态度价值观目标:1. 学生能够培养对电子制作的兴趣和热情,提高学习积极性。

2. 学生能够培养团队协作意识,学会与他人共同解决问题。

3. 学生能够认识到科技发展对社会进步的重要性,增强科技创新意识。

课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的C语言基础,对单片机有一定了解,但实践经验不足。

教学要求:教师需引导学生通过实际操作,掌握C51单片机编程和电子秒表制作技能,同时注重培养学生的情感态度价值观。

将课程目标分解为具体学习成果,以便在教学设计和评估中逐一实现。

二、教学内容1. 理论部分:- C51单片机基础知识:介绍C51单片机的结构、工作原理和编程环境。

- 中断处理和定时器/计数器:讲解中断的概念、中断处理过程,以及定时器/计数器的使用方法。

- 电子秒表原理:阐述电子秒表的计时原理、功能模块及其相互关系。

2. 实践部分:- C51编程实践:指导学生使用C语言编写电子秒表程序,掌握程序结构、函数调用等。

- 硬件搭建与调试:学生动手搭建电子秒表电路,学习电路连接、元件识别等,并进行程序下载和调试。

- 综合应用:结合所学知识,学生独立完成一个具有计时、暂停、清零等功能的电子秒表项目。

3. 教学大纲安排:- 第一课时:C51单片机基础知识学习,介绍教材相关章节内容。

- 第二课时:中断处理和定时器/计数器原理学习,结合教材实例进行讲解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微控制器技术课程设计报告设计题目:秒表专业:供用电技术班级:供电141学号:*********姓名:***指导教师:**设计时间:2016.6.21微控制器技术课程设计任务书设计题目:秒表设计时间:2016.6.20设计任务:在单片机开发板或软件仿真,编制程序,实现以下功能1、利用定时器实现秒表功能,精确到0.1S;2、数码管显示当前计时时间;3、设定三个键,计时开始,停止计时和复位清零。

背景资料:1、单片机原理与应用2、检测技术3、计算机原理与接口技术进度安排:1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务;2、第3天,规划设计软硬件,编制程序流程、绘制硬件电路。

3、第5天,动手制作硬件电路,或编写软件,并调试。

4、第7天,中期检查。

5、第9天,完善设计内容,书写设计报告。

6、第13天,提交设计报告,整理设计实物,等待答辩。

7、第14天,设计答辩。

目录一、设计任务和要求 (3)(1)设计任务 (3)(2)设计要求 (3)二、设计方案与论证 (3)三、单元电路设计与参数计算 (4)(1)时钟电路 (4)(2)按钮电路 (4)(3)显示电路 (5)(4)单片机 (5)四、原理图及器件清单 (6)( 1 )总原理图 (6)(2)PCB图 (7)(3)Proteus仿真图 (7)(4)元器件清单 (8)五、安装与调试 (8)(1)安装 (8)(2)调试 (8)六、性能测试和分析 (9)七、结论和心得 (9)八、参考文献 (9)题目:秒表二、方案设计与论证本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。

其模块电路如图2-1所示。

时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。

按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。

显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。

另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。

为了使电路简单化,本设计选用共阳数码管。

但根据显示方式的不同选择,我们可以有几种方案:方案一:使用静态显示方式。

静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。

因而此设计中使用的显示位数使用了三个8位并行I/0口。

如果另外想扩展单片机功能,则能使用的输出管脚很是有限。

方案二:使用动态显示方式。

这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。

这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。

本小组尝试了各种方案,在此报告中以静态显示方式为例说明。

(动态显示方式省略)三、单元电路设计与参数计算注://单元电路设计中的网络标号的数字即为单片机的管脚//(1)时钟电路图3-1时钟电路如图3-1所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。

晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。

该电容的的大少会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。

(2)按钮电路图3-2a 图3-2bA、复位按钮根据计算容抗的公式1Xjwc以及并联电阻变小的性质,可以知道,当S13断开时,C3的容抗大,管脚9处的电位U9为电阻R3上的压降,因而U9为低电平,复位键无效。

当S13按下时,R2与C3的并联阻抗变小,R3上的压降增大,U9为高电平,复位键有效,实现复位功能。

本设计中C3取值22uF,电阻R2取值100欧姆,R3取值1K欧姆。

具体电路如图3-2a所示。

B、开始,停止、翻页按钮电路如图3-2b所示(3)显示电路P1口控制显示的是十位,p0口控制显示的是个位,P2口控制显示的是十分位。

不同的数码管显示方式,对应的最适合的共阴或者共阳级的数码管也不同。

静态显示的适宜选共阳的数码管,动态显示的适宜选共阴的数码管。

如果动态显示方式下选择共阳的数码管,位选端直接用单片机驱动则数码管的亮度不够,因而应该在位选端使用上拉电阻以提高数码管的驱动电流,但因为显示那个的数据段选的数目不同,故而需要用电阻对各段进行限流,以保证显示的每个数据亮度相同。

相同情况下,静态显示的数码管的亮度要比动态的亮。

(4)单片机单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言了编写程序主程序流程图如下所示,具体程序见电子档。

主程序流程图:四、总原理图及元器件清单 (1)总原理图程序开始程序初始化P1.7=?0开各中断P3.3=?0计五次?翻页调用显示子程序关定时器复位(2)PCB图(3)Proteus仿真图(4)元器件清单1) AT89C51的引脚图和数码管5101BS的引脚图图4-3a AT89C51引脚图图4-3b 5101引脚图2)元器件总清单五、安装与调试(1)安装制板的顺序依次是:画原理图、做封装、在原理图中添加元器件对应的封装、布PCB 板、改焊盘大少、打印PCB图、用快速制板机将PCB图烤制到铜板上、腐蚀铜板、钻孔、放置元器件、烙铁焊好器件。

一块电路板就安装完毕了。

(2)调试将外部电源接至电路板上,检验电路板是否完全实现设计要求。

本设计中,发现按钮功能完全符合设计要求,但是数码管的显示中有些段码不亮,从而显示的数据乱码,用万用表检测对应的管脚是否有电压,发现焊盘有虚焊,引脚与引脚之间有短路,排查后电路板实现设计要求。

六、性能测试与分析所制电路板虽然能实现设计中要求的功能,但是在实际使用中还是存在着许多缺陷。

这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。

七、结论与心得单片机是我所学专业的主要课程之一,不仅培养了我综合运用所学知识,发现,提出,分析和解决实际问题的能力,而且提高了我实际动手操作能力.现实生活中,单片机在应用可以说得是无处不在。

因此在大学中说掌握单片机的开发技术是十分重要的,也是十分必要的。

我在刚刚拿到课程设计题目时有点迷惘,毕竟在前八周的理论学习中没有扎实的掌握单片机的理论知识,面对一块块的芯片和五颜六色的导线,不知道如何下手,好在通过上网和图书馆查阅相关资料,自己认真钻研以及虚心询问同学,终于咸鱼大翻身,游逆而上,解决了一个又一个的困难和障碍,成功完成了任务。

通过本次的单片机课程设计,不仅丰富了我的理论知识,而且在实践过程中更令我学会了坚持、耐心和努力。

此次单片机课程设计需要运用到许多之前所学过的知识,令我认识到自己以前学习的一些不足之处,例如对以前所学知识的理解不够深刻,掌握得不够牢固,运用不够灵活。

这让我懂得了认真学习的重要性,以及要孜孜不倦地钻研所学过的知识,做得融会贯通,不能一览而过,不求甚解。

在边学习边动手的过程中,我对89C51单片机的构造以及原理有了进一步的了解,同时也加深和巩固了我对单片机汇编语言的认识。

除此之外,由于是第一次做单片机,因此在此次课程设计的过程中,无论是电路绘制还是汇编语言编写都难免遇到了不少困难和障碍,例如汇编语言编写出错、电路元件无从入手等。

在面对困难和障碍时,我庆幸自己没有选择退缩和逃避,而是通过各种方法,迎难而上,以坚持、耐心和努力勇敢无畏地面对困难,克服困难,解决困难。

让我发现问题、分析问题、解决问题以及动手实践的能力都有了很大的提高,并了解到理论知识与实践相结合的重要意义。

从这次的课程设计中,我才真正明白理论结合实际的道理,在以后的学习中,更要把理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机即是如此,出色的程序最终用实际操作来实现才是完美。

十分庆幸拥有这次课程设计,让我受益匪浅。

八、参考文献(1)单片机原理及接口技术张毅刚彭喜元著人民邮电出版社(2)单片机课程设计实例指导李光飞等编著北京航空航天大学出版社(3)51系列单片机原理、开发与应用实例孙进平等编著(4)单片机程序设计实例先锋工作室编著清华大学出版社(5)电子工程师之家、豆丁网、百度、搜狗、电子工程专辑等等附程序如下:D EQU 60HE EQU 61HF EQU 62HG EQU 63HH EQU 64HI EQU 65HORG 0000HLJMP MAINORG 000BH ;定时器T0的入口地址LJMP DINGSHIORG 0013H ;外部中断1的入口地址LJMP STOP1ORG 0030H ;主程序入口地址MAIN: MOV P0,#0C0H ;置初值MOV P2,#0C0HMOV P1,#0C0HMOV DPTR,#TABLE ;数据指针指向表头地址SETB EA ;开中断SETB EX0SETB EX1SETB ET0SETB PX0 ;设中断优先级SETB PX1MOV TMOD,#01H ;工作方式为方式1 START: MOV R0,#40HMOV R1,#50HMOV R2,#00HCLR P1.0MOV TH0,#0D8H ;置计数初始值MOV TL0,#0F0HMOV R3,#00HMOV R4,#00HMOV R7,#00HMOV B,#10MOV SP,#30HMOV D,#60HMOV E,#61HMOV F,#62HMOV G,#63HMOV I,#65HMOV R5,#05XUNHUAN: JB P1.7,START1 ;p1.7=0是开始 LCALL DELAY10 ;按键消抖JB P1.7,XUNHUANJNB P1.7,$LJMP GN1LJMP XUNHUANSTART1: JB P3.0,XUNHUANLCALL DELAY10JB P3.0,XUNHUANJNB P3.0,$LCALL FANYELJMP XUNHUANFANYE: MOV A,@R0MOV R3,AMOV A,@R1MOV R4,ADEC R5CJNE R5,#04,LOP1MOV A,DMOV R7,ALJMP L1LOP1: CJNE R5,#03,LOP2MOV A,EMOV R7,ALJMP L1LOP2: CJNE R5,#02,LOP3MOV A,FMOV R7,ALJMP L1LOP3: CJNE R5,#01,LOP4MOV A,GMOV R7,ALJMP L1LOP4: CJNE R5,#00,FANYEMOV A,IMOV R7,ALJMP L1L1: INC R0INC R1INC R2CJNE R2,#5,LOOP2MOV R0,#40HMOV R1,#50HMOV R2,#00HLOOP2:LCALL XIANSHIRETGN1: SETB TR0 LOOP: CJNE R2,#05H,LOOPMOV R0,#40HMOV R1,#50HMOV R2,#00HCLR EAAJMP XUNHUAN DELAY1: MOV R6,#2DL1: MOV H,#248DJNZ H,$DJNZ R6,DL1RETDELAY10: MOV R6,#20DL2: MOV H,#248DJNZ H,$DJNZ R6,DL2RETSTOP1 : PUSH ACCPUSH PSWLCALL DELAY10 ;延时10毫秒消抖 JB P3.3, FAN1JNB P3.3,$MOV A, R3MOV @R0 , AMOV A, R4MOV @R1, ADEC R5CJNE R5, #04, LOP5MOV A, R7MOV D, ALJMP L4LOP5: CJNE R5, #03, LOP6MOV A, R7MOV E, ALJMP L4LOP6: CJNE R5, #02, LOP7MOV A, R7MOV F, ALJMP L4LOP7: CJNE R5, #01, LOP8MOV A, R7MOV G, ALJMP L4LOP8: CJNE R5, #00, STOP1MOV A, R7MOV I,ALJMP L4L4: INC R0INC R1INC R2FAN1: POP PSWPOP ACCRETIXIANSHI:MOV A ,R3 ;扫描十分位上的数字 MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P2 ,AMOV A ,R4 ;扫描个位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P0 ,AMOV A ,R7 ;扫描十位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P1 ,ARETDINGSHI:PUSH ACCPUSH PSWDJNZ B,DH1MOV B,#10AJMP COUNTCOUNT: INC R3CJNE R3,#0AH,DH2MOV R3,#00HINC R4CJNE R4,#0AH,DH2MOV R4,#00HINC R7CJNE R7,#0AH,DH2MOV R7,#00HDH1: MOV TH0,#0D8HMOV TL0,#0F0HSETB TR0DH2: POP PSWPOP ACCLCALL XIANSHIRETITABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END。

相关文档
最新文档