单片机秒表实训报告
关于单片机实训报告万能【六篇】
![关于单片机实训报告万能【六篇】](https://img.taocdn.com/s3/m/92928a53fe00bed5b9f3f90f76c66137ee064fc2.png)
关于单片机实训报告万能【六篇】【篇1】单片机实训报告万能通过今次单片机实训,使我对单片机的认识有了更深刻的理解。
系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
希望这次的经历能让我在以后学习中激励我继续进步。
【篇2】单片机实训报告万能通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。
了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。
通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。
有段选码和和位选码。
当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA 电流;位线的电流应选择40-80MA。
LED显示器的显示方式有动态和静态两种。
7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。
秒表实训报告
![秒表实训报告](https://img.taocdn.com/s3/m/1fa506d328ea81c758f5782d.png)
一.实训目的:1、熟悉89c52单片机键盘以及1602LED显示器外部引脚接线方式;2、学习基本I\O口德使用方法以及编程方法;3、进一步掌握单片机全系统调试的过程以及方法。
二、实训内容:用89c52设计一个控制1602LED数码显示“秒表”,显示时间为00~99,每秒自动加1,记满显示“FF”.另外设计一个“开始”按钮S1和一个“停止”按钮S2,按“开始”按钮,显示秒数从00开始;按“停止”按钮,保持实时时间,停止计时。
三、实训接线图:四、元件清单:五、实训程序:#include <reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define DelayNOP() {_nop_();_nop_();_nop_();_nop_();}void LCD_Initialize();void LCD_Set_POS(uchar);void LCD_Write_Data(uchar);void Display_String(uchar *, uchar);sbit K1=P1^0;sbit K2=P1^1;sbit BEEP=P3^0;sbit LCD_RS=P2^0;sbit LCD_RW=P2^1;sbit LCD_EN=P2^2;uchar KeyCount=0;uchar code msg1[]={"Second Watch 0 "};uchar code msg2[]={">>>> "};uchar code Prompts[][16]={{":: 1 ----> "},{":: 1 ----> ::2 "},{":: 1->2 ::3--> "},{":: 1->2 ::3-->4 "}};uchar Time_Buffer[] ={0,0,0,0};uchar LCD_Display_Buffer[] = {"00:00:00:00"};void Beep(){uchar i,j=70;for (i=0;i<180;i++){while(--j);BEEP=~BEEP;}BEEP=0;}void DelayX(uint ms){uchar i;while(ms--) for(i=0;i<120;i++);}void Show_Second(){uchar i;LCD_Set_POS(0X45);for(i=3; i!=0Xff;i--){LCD_Display_Buffer[2*i+1]=Time_Buffer[i]/10+'0';LCD_Display_Buffer[2*i ]=Time_Buffer[i]%10+'0';LCD_Write_Data(LCD_Display_Buffer[2*i+1]);LCD_Write_Data(LCD_Display_Buffer[2*i]);LCD_Write_Data(':');}}void Time0() interrupt 1 using 0{TH0=-10000/256;TL0=-10000%256;Time_Buffer[0]++;if(Time_Buffer[0]==100){Time_Buffer[0]=0;Time_Buffer[1]++; }if(Time_Buffer[1]==60){Time_Buffer[1]=0;Time_Buffer[2]++; }if(Time_Buffer[2]==60){Time_Buffer[2]=0;Time_Buffer[3]++; if(Time_Buffer[3]==24)Time_Buffer[3]=0;}}void main(){uchar i;IE=0X82;TMOD=0X01;TH0=-10000/256;TL0=-10000%256;LCD_Initialize();Display_String(msg1,0X00);Display_String(msg2,0X40);while(1){if(K1==0){DelayX(100);i=++KeyCount;switch(i){case 1:case 3:TR0=1;Display_String(Prompts[i-1],0);break;case 2:case 4 :TR0=0;Display_String(Prompts[i-1],0);break;default:TR0=0;break;}while(K1==0);Beep();}elseif(K2==0){TR0=0;KeyCount=0;for(i=0;i<4;i++)Time_Buffer[i]=0;Display_String(msg1,0);Beep();DelayX(100);while (K2==0);}Show_Second();}}#include <reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define DelayNOP() {_nop_();_nop_();_nop_();_nop_();}bit LCD_Busy_Check();void LCD_Initialize();void LCD_Set_POS(uchar);void LCD_Write_Command(uchar);void LCD_Write_Data(uchar);void DelayMS(uint ms){uchar t;while(ms--)for (t=0;t<120;t++);}bit LCD_Busy_Check(){bit Result;LCD_RS=0; LCD_RW=1; LCD_EN=1;DelayNOP(); Result=(bit)(P0&0X80);LCD_EN=0;return Result;}void LCD_Write_Command(uchar cmd){while(LCD_Busy_Check());LCD_RS=0; LCD_RW=0; LCD_EN=0;_nop_(); _nop_();P0=cmd; DelayNOP();LCD_EN=1; DelayNOP();LCD_EN=0;}void LCD_Write_Data(uchar str){while(LCD_Busy_Check());LCD_RS=1; LCD_RW=0; LCD_EN=0;P0=str; DelayNOP();LCD_EN=1; DelayNOP();LCD_EN=0;}void LCD_Initialize(){DelayMS(5);LCD_Write_Command(0X38);DelayMS(5);LCD_Write_Command(0X0c);DelayMS(5);LCD_Write_Command(0X06);DelayMS(5);LCD_Write_Command(0X01);DelayMS(5);}void LCD_Set_POS(uchar Position){LCD_Write_Command(Position | 0X80);}void Display_String(uchar * str, uchar LineNo) {uchar K;LCD_Set_POS(LineNo);for(K=0;K<16;K++) LCD_Write_Data(str[K]);}六、实训步骤:1、根据实训要求,完成程序编写;2、根据实训程序,使用PROTUES完成秒表仿真;3、结合KEIL和PROTUES软件进行单步仿真,检查错误并改正;4、检查无误后,将程序下载至单片机中;5、将各元件按硬件接线图焊接到万能板上;6、检查电路板无误后,启动开关,完成实训要求;7、观察运行结果,分别按下秒表的开始和停止按钮,观察秒表功能。
单片机原理与应用实验报告5——秒表定时器实验
![单片机原理与应用实验报告5——秒表定时器实验](https://img.taocdn.com/s3/m/841e40082f60ddccda38a07f.png)
大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。
2. 学习74HC595、74HC138使用及与51单片机的控制方法。
实验要求1.通过按键控制,完成数码管的显示计数控制。
2. 用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。
2.使用定时器进行计时。
根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。
3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。
4.使用key1,key2两个按键,按下key1,开始计时。
按下key2,计时停止。
5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。
6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。
并进行循环上电,保证数字的亮度。
三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。
单片机51十秒以内的秒表实验心得
![单片机51十秒以内的秒表实验心得](https://img.taocdn.com/s3/m/8c0ea56dcec789eb172ded630b1c59eef8c79a04.png)
实验目的:1.了解单片机51的基本功能和编程方法;2.掌握单片机定时器的使用方法;3.实现一个十秒以内的秒表功能。
实验器材和材料:1.单片机51开发板;B数据线;3.LED灯;4.导线。
实验原理:1.单片机51是一种常见的微控制器,具有较强的数据处理和控制能力;2.单片机51内部包含定时器/计数器模块,可以实现定时功能;3.利用单片机的IO口和定时器功能,可以实现基本的计时功能。
实验步骤:1.将单片机51开发板连接至电脑,利用Keil编译器新建一个工程;2.在工程中编写程序,包括初始化单片机的IO口和定时器模块;3.利用定时器模块设置定时时间为十秒;4.将LED灯连接至单片机的IO口,利用程序控制LED灯的亮灭;5.下载程序至单片机,进行实际测试。
实验结果与分析:1.经过编译和下载,程序顺利运行,LED灯在开始计时时亮起,十秒后熄灭;2.通过示波器观察定时信号的波形,可以发现定时器的计时精度较高;3.实验过程中,需注意系统时钟频率和定时器的工作原理,以确保定时功能的准确性。
实验心得与体会:1.单片机51的定时器模块功能丰富,可以实现各种定时、计数功能;2.通过本次实验,我对单片机的资源管理和编程方法有了更深入的了解;3.在实际应用中,单片机的定时功能可以用于计时、控制、触发等多种场景,具有广泛的应用前景。
实验小结:本次实验通过单片机51实现了一个十秒以内的秒表功能,通过编程和实际操作,加深了对单片机的理解和熟练程度。
同时也为今后的单片机应用打下了良好的基础。
单片机(Microcontroller Unit,MCU)是一种集成了微处理器核心、存储器、定时器、串行通信接口等多种功能模块的微型计算机系统,常用于控制和嵌入式系统中。
单片机51系列是Intel推出的8位微控制器,功能强大,广泛应用于各种电子设备中。
本次实验旨在通过单片机51实现一个简单的十秒以内的秒表功能,以加深对单片机定时器、编程和IO口控制的理解。
单片机实训工作报告【三篇】
![单片机实训工作报告【三篇】](https://img.taocdn.com/s3/m/00ee1d90ed3a87c24028915f804d2b160b4e86a8.png)
【导语】在单⽚机实训教学过程中采⽤教师引导,学⽣主导的教学⽅式,让学⽣掌握技巧,⿎励学⽣独⽴思考。
以下是⽆忧考整理的单⽚机实训⼯作报告,仅供参考! 篇⼀ 1.课程设计⽬的 1)巩固单⽚机基础知识,串联知识点。
2)学会绘制PCB板,学会⼿⼯制板的⼀般⽅法。
3)使⽤Protel等EDA⼯具进⾏单⽚机硬件系统设计的能⼒。
4)基于KeilIDE开发单⽚机应⽤程序的能⼒。
5)写技术报告和编制技术资料的能⼒。
6)独⽴⼯作能⼒和创造⼒。
7)综合运⽤专业及基础知识,解决实际⼯程技术问题的能⼒。
2.课程设计题⽬描述和要求 旋转电⼦时钟的设计与制作 实现的功能要求:(1)实现单⽚机最⼩系统;(2)四只LED数码管显⽰当前时分;(3)每隔⼀秒钟周边的60只LED发光管旋转⼀格,装饰⽤的LED每隔⼀秒旋转⼀次;(4)实现整点报时;(5)实现按键调整;(6)停(掉)电保护,年计时误差⼩于30秒;(7)其他功能。
3.课程设计报告内容 3.1⽅案论证 3.1.1单⽚机定时器做电⼦时钟 优点:考虑到单⽚机货源充⾜、价格低廉,可软硬件结合使⽤,能够⽅便的实现系统的多功能性,故采⽤单⽚机作为本设计的硬件基础。
故其优点是外围电路简单,只需要⼀个单⽚机最⼩系统,和⼀个显⽰模块。
缺点:定时不是很准确,计时误差较⼤,并且程序的编写较繁琐。
3.1.2数字电路做电⼦时钟 优点:具有⾛时准确、显⽰直观、⽆机械传动装置。
与传统的机械钟先⽐,电⼦钟具有更优异的优点。
由于电⼦钟采⽤数字集成电路的发展和采⽤了先进的⽯英技术,使电⼦钟具有⾛时准确、性能稳定、携带⽅便等优点,电⼦钟⽤于定时⾃动报警、按时⾃动打铃、时间程序⾃动控制、定时⼴播及⾃动控制等各个领域。
缺点:因为电⼦钟毕竟是电⼦产品,电⼦产品都有辐射,不过电⼦钟危害极低,对⼈体够不成任何危害,不象⼿机的辐射那么⼤。
应⽤:⽬前,在国内,电⼦钟因数码管数字显⽰效⽤直接有效,所以⼤多运⽤在城市的主要营业场所,以及车站、码头等公共场所。
单片机电子实训报告-秒表的制作及其功能的实现
![单片机电子实训报告-秒表的制作及其功能的实现](https://img.taocdn.com/s3/m/172f00f604a1b0717fd5ddc9.png)
单片机电子实训报告目录第一章:前言1.1 单片机的基本概况 (3)第二章:设计目的及其思路2.1 设计目的 (4)2.2 设计思路 (4)2.3 设计思路总结 (6)第三章:电路图及其解释3.1秒表的完整电路图 (7)3.2电路图的原理解释 (8)第四章:程序功能实现4.1秒表的完整C语言源程序 (9)4.2 C语言源程序的分析 (10)第五章:总结第一章前言第一节单片机的基本概况随着技术的飞速发展,国民经济各个领域对自动化的要求越来越迫切。
计算机在自动化技术中发挥着及其重要的作用。
从计算机外围设备、民用电器、医用仪器设备、机电一体化产品到航空航天技术,从人工智能、工业机器人到人体工程等领域中,开发计算机应用系统成为一个热门技术。
目前,8位、16位、32位单片机以及具有各种优异性能、特殊功能类型的单片机,如信号处理单片机、USB接口控制单片机、网络通信控制单片机等,可作为广大科技工作者的开发工具。
与通用计算机不同,单片机是专为智能仪器仪表与自动化领域设计开发的专用计算机,在一芯片上集成了组成了一个计算机所需的五个主要部件:运算器、控制器、存储器、输入接口和输出接口,具有体积小、功能强、可靠性好、容易扩展、使用方便、价格便宜等特点。
有两种结构的单片机体系。
一种是单总线结构,如Intel公司,Motorola公司和Zilog公司的系列产品。
另一种是双总线哈佛结构,如Microchip公司的PIC 系列产品和Atmel公司的AVR系列产品,单总线结构的单片机大多是复杂指令集计算机,而双总线哈佛结构的单片机大多是精简指令集计算机。
在国内,主流产品是Intel公司的MCS—51系列单片机。
PIC单片机和AVR 单片机由于速度快、功耗低、采用精简指令集,收到许多开发者的重视。
从20年纪70年代初期开始,Intel公司开始开发单片机产品。
MCS—48和MCS—51系列产品奠定了Intel公司在单片机领域的主导地位。
单片机实训报告
![单片机实训报告](https://img.taocdn.com/s3/m/f48b61c0951ea76e58fafab069dc5022aaea46fb.png)
单片机实训报告单片机实训报告「篇一」为了锻炼学生的动手能力及激发学生的创新能力,我们班于第十五周在单片机实验室行了单片机实训。
在实训过程中首先我们要明确实训目的:1、熟悉单片机应用系统的开发、研制过程。
2、能运用MCS-51单片机行简单的单片机应用系统的硬件设计。
3、能采用MCS-51单片机汇编语言行简单的单片机应用系统的软件设计。
4、掌握单片机应用系统的硬件、软件调试方法。
5、熟悉单片机仿真开发系统的作用,基本掌握运用单片机仿真开发系统行在线仿真、调试和目标程序固化的方法。
6、为今后从事单片机应用系统的开发、生产和维护工作奠定基础。
在实训的第一天我们经过指导老师,XX老师和xx老师详细的为我们讲解了实训指导书,让我们了解实训当中所学的内容与一些元器件和我们要实验的课题。
在实验中主要有三个课题。
第一是十字路口交通信号灯的设计与制作。
课题2、比赛用秒表的设计与制作。
课题3、模拟霓虹灯控制系统的设计与制作。
为了能让我们更好的掌握知识我们把全班31人分成10组,我们在小组里也分工合作,也可以培养我们同学之间的合作能力。
在此有做硬件的,有做软件的,这样能够更好的加强自己的动手操作能力。
第一个课题是我们必须做的,在做完的第一个的基础下才能选择第二个或底三个,第一个课题在同学们的认真操作下很快就完成了,几乎在第二天大部分小组都可以完成。
这也证明同学们是很认真的投入到实训当中和知识的牢固性。
在第三天,正是实训的高潮,每个同学都投入到这种氛围当中,在实训操作中把不懂的记下,然后问指导老师,在老师的细心指导及时的解决问题。
看到我们的不足之处。
理论与实践相结合是最好的效果。
时光飞逝,一转眼,一个周又尾声了,实训就这样过去了,但真正的实训还未开始,我将要继续努力,继续奋斗。
俗话说“好的开始是成功的一半”。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。
单片机秒表实训报告
![单片机秒表实训报告](https://img.taocdn.com/s3/m/b5cae99b76a20029bd642d90.png)
目录一、设计题目 (2)二、方案设计 (2)三、硬件设计 (2)1电路图 (2)2.I/O口的分配 (3)3、电路的工作原理 (3)4原件明细 (3)四、软件设计 (4)1、软件设计的思路 (4)2、程序流程图 (4)3、总体结构框架介绍 (6)4、程序清单 (6)五、制作和调试 (8)六、心得体会 (8)七、参考文献 (9)一、设计题目利用AT89C51单片机设计并制作秒表电路。
要求如下:通过LED显示器(数码管)显示秒的十位和个位;设计一个按键,使按键按下去时秒表开始计时,即秒表开始键;设计一个按键,按键按下去时秒表暂停计时,使秒表停留在原先的计时,即计时停止键;设计一个按键,作为秒表的清零按钮,使秒表计数结束后可以清零。
二、方案设计1、该秒表主要由51系列单片机及开关控制数码显示管的显示情况,此秒表可现实显示两位数从00到99的计数,即开始计数、停止计数和清零三种,由手动控制三个开关K1、K2、K3来实现。
2、当接通电源时数码管显示00,然后按动K1使秒表开始计时,在0秒到99秒之间的任何时间均可;若要定时,如只需计时到32秒则在显示器显示到32时按下定时键K2即可;在计时过程中若需要清零,则需按下K3键。
3、设计过程中除了向老师请教外,还通过上网查阅资料及翻阅书籍。
上单片机课程时我曾做过关于数码显示器的实验,所以在焊接电路板时可参照实验报告书上的连接方式。
要特别注意两数码管引脚的连接及com端和三极管的连接,其决定了共阴极和共阳极,此处涉及到编程中初值的写入,为在焊接电路时简洁,因此我采用下面的com端,即数码管采用共阴极方式。
主要设计思路是编写相应程序后由单片机的P0口输出到数码管上,实现数据的显示。
P2.6口控制个位的显示和P2.7口控制十位的显示,P3.5、P3.6、P3.7口分别控制秒表的开始、停止和清零。
三、硬件设计1电路图使用Proteus工程软件制图,如下图所示:2.I/O口的分配P0口是一个漏极开路8位准双向复用I/O端口,它的P0.0~P0.7口分别接电阻R1~R8,但因为该设计中不需要小数点的显示,即dp端不用接,所以只用接7个阻值为100欧的电阻。
单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
![单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位](https://img.taocdn.com/s3/m/0576cbe676c66137ef06196b.png)
9创新实践实训报告学院信息电子技术学院专业电子信息工程班级14学籍号姓名指导教师蒋野2017年06月29日单片机控制秒表电路一、电路工作原理1.工作原理用STC89C52设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“暂停”键S2和一个“继续”键S3。
为使本设计系统更加完善,可以引入一个“复位”键S1,以方便对系统的控制。
如图。
本系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时计数的原理,结合硬件电路如电源电路,晶振电路,复位电路和显示电路,以及一些按键电路等来设计计数器,将软硬件有机结合起来,其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,硬件系统利用Protues强大的功能来实现,简单易于观察,在仿真中就可以观察到实际的工作状态。
2.元器件作用(1)STC89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
(2)时钟电路作用是为电路提供唯一的时钟信号。
(3)复位电路外接一个开关,控制电路复位,接通电源电路直接复位,如果没有开关亦可将复位电路引出导线接电源后断开。
(4)本设计要求使用共阳极的数码管,如下是共阳极的数码管的0-9编码:0xc0,0x92,0x82,0xf8,0x80,0x90,0xf9,0xa4,0xb0,0x99.(5)控制电路:S2按下电路停止计时,S3按下电路恢复计时。
二、程序流程图主程序流程图三、检测安装与调试1.元件检测序号名称型号(标称值)测量值误差备注1 电阻1K 780 22%2 电阻10K 10.78 0.07%3 电容33pF 32 3%4 电容10uF 9 10%5 晶振12M 12M 0共阳极数码管检测管脚序号利用万用表二极管档红表笔接一个抵住两个管脚,利用另一个接触其他,找出1,2两个管脚,继续分别找出A,D,C,D,E,F,G,Dp管脚。
单片机秒表实训报告
![单片机秒表实训报告](https://img.taocdn.com/s3/m/b5cae99b76a20029bd642d90.png)
目录一、设计题目 (2)二、方案设计 (2)三、硬件设计 (2)1电路图 (2)2.I/O口的分配 (3)3、电路的工作原理 (3)4原件明细 (3)四、软件设计 (4)1、软件设计的思路 (4)2、程序流程图 (4)3、总体结构框架介绍 (6)4、程序清单 (6)五、制作和调试 (8)六、心得体会 (8)七、参考文献 (9)一、设计题目利用AT89C51单片机设计并制作秒表电路。
要求如下:通过LED显示器(数码管)显示秒的十位和个位;设计一个按键,使按键按下去时秒表开始计时,即秒表开始键;设计一个按键,按键按下去时秒表暂停计时,使秒表停留在原先的计时,即计时停止键;设计一个按键,作为秒表的清零按钮,使秒表计数结束后可以清零。
二、方案设计1、该秒表主要由51系列单片机及开关控制数码显示管的显示情况,此秒表可现实显示两位数从00到99的计数,即开始计数、停止计数和清零三种,由手动控制三个开关K1、K2、K3来实现。
2、当接通电源时数码管显示00,然后按动K1使秒表开始计时,在0秒到99秒之间的任何时间均可;若要定时,如只需计时到32秒则在显示器显示到32时按下定时键K2即可;在计时过程中若需要清零,则需按下K3键。
3、设计过程中除了向老师请教外,还通过上网查阅资料及翻阅书籍。
上单片机课程时我曾做过关于数码显示器的实验,所以在焊接电路板时可参照实验报告书上的连接方式。
要特别注意两数码管引脚的连接及com端和三极管的连接,其决定了共阴极和共阳极,此处涉及到编程中初值的写入,为在焊接电路时简洁,因此我采用下面的com端,即数码管采用共阴极方式。
主要设计思路是编写相应程序后由单片机的P0口输出到数码管上,实现数据的显示。
P2.6口控制个位的显示和P2.7口控制十位的显示,P3.5、P3.6、P3.7口分别控制秒表的开始、停止和清零。
三、硬件设计1电路图使用Proteus工程软件制图,如下图所示:2.I/O口的分配P0口是一个漏极开路8位准双向复用I/O端口,它的P0.0~P0.7口分别接电阻R1~R8,但因为该设计中不需要小数点的显示,即dp端不用接,所以只用接7个阻值为100欧的电阻。
单片机实训报告
![单片机实训报告](https://img.taocdn.com/s3/m/cf0c32e881c758f5f61f67de.png)
单片机实训报告秒表设计一:实验器材89S51单片机外接12MHz晶振复位电路4个数码管4个按键二:实验目的做一个电子秒表,了解设计要求及设计需要的技术,通过这次课程实验,一方面使我们课堂学的单片机知识进一步巩固和验证,另一方面也增加了我们的感性认识,有助于加深我们对所学知识的理解,同时也锻炼了我们实际动手能力和分析问题能力。
三:课程设计任务利用89S51单片机定时器,中断,串行口,内存等内部资源,扩展外部四个按键,四位LED8段数码管,实现电子秒表功能的多样化。
四:实验设计要求1 有上电指示灯2 能够正确手动复位3 能产生12MHz的振荡信号供单片机使用4 四位LED显示:动态方式扫描显示,要求无闪烁,能正确显示程序送显的数据5 能正确显示秒表的进制6外扩2*2按键,能够正确识别键值,当某些键按下时,能够正确调试LED显示,能够实现记时秒表功能,能够精确到0.01五:实验原理本设计为电子计时器综合系统,主控芯片采用89S51单片机。
配合软件延时实现秒的计时。
本系统设计采用此种软件控制方法来实现计时,通过定时器定时中断,使时间缓存单元数据加一,提供系统时间。
同时可以通过键盘对时间缓存单元数据进行修改,以达到修改时间的目的。
单片机内的数据通过并行I/O接口输入输出。
并驱动四位LED数码管,动态显示数据。
晶振及复位电路为单片机提供工作脉冲及复位信号。
在单片机应用系统中,键盘和显示往往需要同时使用,为节省I/O口线,可将键盘和显示电路做在一起,构成实用的键盘、显示电路。
图一中,是采用8155的I/O口线。
8155芯片不仅具有两个8位的I/O端口(A口和B口)和一个6位的I/O端口(C口),而且还可以提供256B的静态RAM存储器和一个14 位的定时/计数器,它和单片机的接口非常简单。
由于键盘与显示共用一个接口电路,因此,在软件设计中要综合考虑键盘查询与动态显示,编程比较复杂。
硬件电路图如下图(一)所示六:硬件设计1 芯片介绍AT89S51单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。
单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位
![单片机控制秒表显示时间为00—99(每秒自动加1),暂停,复位](https://img.taocdn.com/s3/m/4f16075a4a7302768f99393d.png)
(4)复查电路:重新检测电路,利用万用表电流档,检测电路电流,发现电路无电流,检查40引脚VCC,发现单片机40引脚与插座短路,接触不良导致,陆续检查其他引脚。发现还有部分引脚短路。
(5)继续检查电路,直至数码管显示数字为止。
结果显示,秒表运行正常。按照预期实现了99s计时、暂停以及继续的功能。
附件
1.利用单片机完成一定的任务,你的创意(创新)是什么?
我的创意就是电路的布局,实验操作起来与仿真不同,需要注意很多细节,例如原件检测。我的电路布局既节省空间,又不影响电路结构。
2.程序
#include<reg52.h>
sbit W=P1^4;
sbit H=P1^6;
unsigned char msec,sec;
void delay(unsigned char i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void To_INT(void) interrupt 1
2.元器件作用
(1)STC89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,STC89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
9
创新实践实训报告
学院
信息电子技术学院
专业
电子信息工程
单片机秒表设计实验报告(1)
![单片机秒表设计实验报告(1)](https://img.taocdn.com/s3/m/3a644c5baf1ffc4ffe47ac88.png)
本科学生设计性实验报告
学号姓名
学院物理与电子专业、班级
实验课程名称简易秒表设计
教师及职称
开课学期2013 至2014 学年下学期
填报时间2014 年 6 月 5 日
云南师范大学教务处编印
摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
本次设计内容为以 89C51 单片机为核心的秒表,它采用键盘输入,单片机技术控制。
设计内容以硬件电路设计,软件设计和PCB 板制作三部分来设计。
利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。
单片机秒表实验报告(一)
![单片机秒表实验报告(一)](https://img.taocdn.com/s3/m/73d0c3a2dc88d0d233d4b14e852458fb770b3823.png)
单片机秒表实验报告(一)单片机秒表实验报告实验目的通过本次实验,掌握单片机外部中断的使用方法,并实现一个简单的秒表功能。
实验材料•STC89C52单片机开发板•12864液晶屏•面包板、杜邦线若干•USB转串口模块及数据线•电脑实验原理本次实验的主要原理是单片机外部中断。
当按下按键时,引脚的电平会发生变化,从而触发外部中断。
单片机在中断服务程序中可以对计数器进行增加或减少等操作,从而实现秒表的功能。
实验步骤1.将按键连接至单片机的外部中断引脚(如P3.2)。
2.在程序中配置外部中断,使单片机可以正确响应按键。
3.编写程序,在中断服务程序中对计数器进行增加或减少,并将计数值显示在LCD液晶屏上。
程序设计#include <reg52.h>sbit sw = P3 ^2;// 定义按键接口sbit rs = P0 ^0;sbit rw = P0 ^1;sbit en = P0 ^2;void delay(unsigned int i){while(i--);}void write_command(unsigned char tt){P2 = tt;rs =0;rw =0;en =1;delay(5);en =0;delay(100);}void write_data(unsigned char tt){P2 = tt;rs =1;rw =0;en =1;delay(5);en =0;delay(100);}void init(){write_command(0x38);// 8位数据口,双行显示,5x7字符 write_command(0x0c);// 关闭光标显示write_command(0x06);// 清屏后光标移动方向设为右write_command(0x01);// 显示开启}void display(unsigned int num){unsigned int i, j, k;i = num /100;j = num %100/10;k = num %10;write_command(0x80);write_data(i +'0');write_data(j +'0');write_data(k +'0');}void main(){unsigned int num =0;init();display(num);IE =0x88;// 打开中断允许while(1){}}void int0() interrupt 0{if(sw ==0){delay(100);if(sw ==0){num ++;display(num);}while(!sw);}}实验结果经过调试,成功实现了秒表实验功能。
单片机秒表实验报告
![单片机秒表实验报告](https://img.taocdn.com/s3/m/8f51b2e5250c844769eae009581b6bd97f19bc3a.png)
单片机秒表实验报告实验目的:本实验旨在通过使用单片机搭建一个简单的秒表,掌握单片机的基本输入输出方法和定时器的使用,提高对单片机的编程能力。
实验器材:1. STC89C52单片机开发板2. 4位共阳数码管3. 74HC595移位寄存器4. 按钮开关5. 连接线实验原理:秒表是一种测量时间的工具,通常用于计时。
在本实验中,我们将使用单片机来实现一个简单的秒表功能。
通过使用定时器中断,每隔一定的时间更新数码管上显示的时间,实现秒表的计时功能。
同时,通过按下按钮开关,可以控制秒表的启动、暂停和复位。
实验步骤:1. 将STC89C52单片机开发板与4位共阳数码管、74HC595移位寄存器和按钮开关连接。
2. 将开发板上的相应引脚与数码管和移位寄存器的引脚连接,确保连接正确。
3. 在单片机的主函数中初始化定时器和外部中断,并设置定时器的中断时间为1秒。
4. 在定时器中断函数中,每隔1秒更新数码管上的显示时间。
可以使用循环方式实现时间的累加和更新。
5. 在外部中断函数中,根据按钮开关的状态,实现秒表的启动、暂停和复位功能。
6. 编译、下载程序到单片机开发板,并将开发板上电。
7. 按下按钮开关开始计时,再次按下暂停计时,再次按下继续计时,再次按下复位计时。
8. 观察数码管上显示的时间是否正确,并测试秒表功能是否正常。
实验结果:经过测试,本实验搭建的单片机秒表功能正常,能够准确计时,并可以通过按钮开关实现启动、暂停和复位功能。
结论:通过本实验,我们成功地使用单片机搭建了一个简单的秒表,并实现了基本的计时功能。
同时,通过掌握单片机的定时器和外部中断的使用,我们提高了对单片机的编程能力。
这对于进一步深入学习和应用单片机具有重要的意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、设计题目ﻩ错误!未定义书签。
二、ﻩ方案设计ﻩ错误!未定义书签。
三、硬件设计................................................................................ 错误!未定义书签。
1电路图.................................................................................. 错误!未定义书签。
2.I/O口得分配 ................................................................. 错误!未定义书签。
3、电路得工作原理ﻩ错误!未定义书签。
4原件明细ﻩ错误!未定义书签。
四、软件设计3ﻩ1、软件设计得思路............................................................... 错误!未定义书签。
2、程序流程图....................................................................... 错误!未定义书签。
3、总体结构框架介绍ﻩ错误!未定义书签。
4、程序清单........................................................................... 错误!未定义书签。
五、制作与调试............................................................................ 错误!未定义书签。
六、心得体会ﻩ错误!未定义书签。
七、参考文献ﻩ错误!未定义书签。
一、设计题目利用AT89C51单片机设计并制作秒表电路.要求如下:通过LED显示器(数码管)显示秒得十位与个位;设计一个按键,使按键按下去时秒表开始计时,即秒表开始键;设计一个按键,按键按下去时秒表暂停计时,使秒表停留在原先得计时,即计时停止键;设计一个按键,作为秒表得清零按钮,使秒表计数结束后可以清零。
二、方案设计1、该秒表主要由51系列单片机及开关控制数码显示管得显示情况,此秒表可现实显示两位数从00到99得计数,即开始计数、停止计数与清零三种,由手动控制三个开关K1、K2、K3来实现。
2、当接通电源时数码管显示00,然后按动K1使秒表开始计时,在0秒到99秒之间得任何时间均可;若要定时,如只需计时到32秒则在显示器显示到32时按下定时键K2即可;在计时过程中若需要清零,则需按下K3键.3、设计过程中除了向老师请教外,还通过上网查阅资料及翻阅书籍。
上单片机课程时我曾做过关于数码显示器得实验,所以在焊接电路板时可参照实验报告书上得连接方式.要特别注意两数码管引脚得连接及端与三极管得连接,其决定了共阴极与共阳极,此处涉及到编程中初值得写入,为在焊接电路时简洁,因此我采用下面得端,即数码管采用共阴极方式。
主要设计思路就是编写相应程序后由单片机得P0口输出到数码管上,实现数据得显示。
P2、6口控制个位得显示与P2、7口控制十位得显示,P3、5、P3、6、P3、7口分别控制秒表得开始、停止与清零.三、硬件设计1电路图使用Proteus工程软件制图,如下图所示:2。
I/O口得分配P0口就是一个漏极开路8位准双向复用I/O端口,它得P0、0~P0、7口分别接电阻R1~R8,但因为该设计中不需要小数点得显示,即dp端不用接,所以只用接7个阻值为100欧得电阻。
P2口就是一个内部带上拉电阻得8位准双向复用I/O端口,只用其P2、6口与P2、7口输出字位码。
P3口就是一个内部带上拉电阻得8位多功能双向I/O端口,它得每一条引脚均可独立定义为第一功能得输入输出(其主要功能就是它得第二功能,在此不做详细解释).3、电路得工作原理本系统采用模块化设计,以AT89C51单片机为核心,与秒表显示接口电路组成控制系统。
该系统硬件主要包括以下几个模块:AT89C51主控模块、秒表显示模块等。
其中AT89C5主要完成外围硬件得控制以及一些运算功能,秒表显示模块完成时间得显示功能。
4原件明细开关:三个分别用于显示器得开始、停止与清零。
电容:用于单片机得最小系统中。
晶振:提供内部时钟.电阻:用来限制电流。
单片机芯片:实现软件得编程与烧写。
数码管:显示秒表计时数据。
电源插头:用于接外接电源。
四、软件设计1、软件设计得思路在硬件电路中,由于硬件电路中显示灯就是接在P2口得两个端口,用于输出,且二极管为共阴极得接法,则单片机得程序设计中要就是灯亮必须为高电平有效,由于程序中用到中断源,所以要打开中断源;模块设计时可用查询方式检测开始按键就是否被按下,若按下开始键数码管开始显示00,开始计数后,再用查询方式检测这个按键就是否被按下,如果按下则检测跳转到下一个按键检测程序继续检测,一次检测各个按键得情况,数码管得初值显示设置为0.2、程序流程图3、总体结构框架介绍初始化模块:对系统进行初始化,由于程序中有中断源,因此打开相应得中断也放在程序得初始化模块中;检测开始按键:检测开始按键就是否被按下,按下则开始执行循环为消除按键抖动,此处应调用延时程序;循环检测停止、清零按键:循环检测停止、清零按键就是否被按下,同时等待中断到来;延时程序:用于小穿件得机器抖动,调用得延时程序为0、5s;中断处理:当中断源到来,首先停止计数,从开始计数得数在数码管中显示出来。
4、程序清单STRT EQU P3、5STPﻩEQUﻩP3、6CLRR EQUﻩP3、7ORG 00HAJMPﻩMAINORG 0BHAJMPﻩT0INT30HORGﻩMAIN:MOVﻩSP,#60HMOVDPTR,#TABMOV TMOD,#01Hﻩ;T0定时方式1SETBﻩEASETBET050ms定时常数MOVﻩTH0,#3CHﻩ;MOV TL0,#0B0HMOVR0,#20 ﻩ;20x50mS=1Sk1:ﻩLCALL DISPJB STRT,K2ACALL DISPJNB STRT,$-2AJMP STARTk2:ﻩJBﻩSTP,K3LCALL DISPJNBﻩSTP,$-3AJMPﻩSTOPK3:ﻩJBﻩCLRR,K1LCALLﻩDISPJNBﻩCLRR,$-3ﻩAJMP CLEARSTART:ﻩSETBﻩTR0AJMPﻩK1STOP:CLRTR0AJMP K2CLEAR:ﻩCLRTR0MOVﻩR4,#0AJMP K1T0INT:ﻩMOVTH0,#03CH;ﻩ;定时中断子程序。
重装定时常数MOV TL0,#0B0H;DJNZ R0,T0INTRﻩ;50msX20=1S,未满20次,跳出中断子程序MOVﻩR0,#20INCﻩR4CJNEﻩR4,#100,T0INTRMOVﻩR4,#0CLR TR0T0INTR:RETIDISP:MOV A,R4MOVB,#10DIV AB ;当前值除以10MOV20H,A;得出得商送给十位MOV21H,B ;得出得余数送给个位MOV A,20H ;十位显示MOVC A,A+DPTRMOVP0,ACLR P2、7LCALLDELAYSETB P2、7MOV A,21H;个位显示MOVCA,A+DPTRMOV P0,ACLR P2、6LCALL DELAYSETB P2、6RETDELAY: ;误差0usMOVR6,#10DL0:MOV R5,#50DJNZ R5,$DJNZR6,DL0RETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND五、制作与调试将所设计得硬件电路焊接好,然后根据硬件电力路得今本要求画出软件编程得流程图,然后根据流程图中得各个模块编写相应得模块程序,最后将各个模块综合起来构成所设计得程序。
应当注意当按下开关时,接得就是低电平,因此在编辑程序时不要弄反以免出现错误.六、心得体会通过此单片机课题得选定,编程,调试,仿真到最后完成论文,心情就是喜悦并且激动得,觉得做好一件事情并不就是那么容易,关键就是要瞧您对这件事情得态度问题,通过这次课题实验,我也对单片机这门课有了更加深刻得认识,它得用途,它得功能,它得方便之处,都通过这几天得研究得到了体会,而且对知识得巩固也起到了一定得作用。
这次论文课题得编写,还有一个重要得认识就就是,要学好一门课很容易,但就是要真正能把它运动到实际中就难了,掌握一定得理论知识并且会做题还不够,关键就是要怎么样去利用,所以,在今后得学习生活中,我要学会学以致用。
另外,单片机就是建立在C语言得基础之上,因此可知大学所学得课程时相互关联得,学好每一门课就是非常重要得,作为物理专业得同学,我们更应该熟练操作并且掌握好这门功课,这对以后得不管就是毕业论文还就是所学知识都就是很有帮助得。
七、参考文献《单片机原理及接口技术》胡键主编机械工程出版社《51系列单片机》实验指导书编者杜礼霞、。