智能仪器仪表综合设计与实训报告书.docx

上传人:b****2 文档编号:18573769 上传时间:2023-08-19 格式:DOCX 页数:36 大小:926.54KB
下载 相关 举报
智能仪器仪表综合设计与实训报告书.docx_第1页
第1页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第2页
第2页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第3页
第3页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第4页
第4页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第5页
第5页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第6页
第6页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第7页
第7页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第8页
第8页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第9页
第9页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第10页
第10页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第11页
第11页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第12页
第12页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第13页
第13页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第14页
第14页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第15页
第15页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第16页
第16页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第17页
第17页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第18页
第18页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第19页
第19页 / 共36页
智能仪器仪表综合设计与实训报告书.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能仪器仪表综合设计与实训报告书.docx

《智能仪器仪表综合设计与实训报告书.docx》由会员分享,可在线阅读,更多相关《智能仪器仪表综合设计与实训报告书.docx(36页珍藏版)》请在冰点文库上搜索。

智能仪器仪表综合设计与实训报告书.docx

智能仪器仪表综合设计与实训报告书

成绩:

 

课程设计报告书

 

所属课程名称智能仪器仪表综合设计与实训

题目作息时间控制器的设计

分院机电学院

专业、班级测控技术与仪器B1003

学号0614100328

学生姓名张思琪

指导教师杨亮周春明赵娜

 

2013年12月06日

 

 

辽东学院

1课程设计任务书

课程设计题目:

作息时间控制器的设计

课程设计时间:

自2013年11月15日起至2013年12月6日

课程设计要求:

(1)通过按键设定上下课作息时间;

(2)根据已设定作息时间表进行到时提示;

(3)设定广播时间,并播放一小段音乐;

(4)利用数码管或液晶块显示上下课状态。

 

学生签名:

2013年12月06日

课程设计评阅意见

项目

课程设计态度评价

10%

出勤情况评价10%

任务难度

、量评价10%

创新性评价

10%

综合设计

能力评价20%

报告书写规范评价20%

答辩

20%

成绩

综合评定等级

评阅教师:

2013年月日

 

2总体设计方案

2.1总体设计方案框图

设计实现的功能主要有:

使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED小数点闪动作为秒计数表示。

可以设定作息时间,并进行到时提示。

能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。

由按键输入控制设置年月日以及当前时间、并可设置闹钟定时,时间到由蜂鸣器发出响声并作出相应动作:

二极管闪亮,同时播放音乐。

2.2芯片介绍

2.2.1AT89C51芯片

1.特性概述

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.管脚说明

VCC:

供电电压。

  GND:

接地。

  P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

3.管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(计时器0外部输入)

  P3.5T1(计时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

  P3口同时为闪烁编程和编程校验接收一些控制信号。

  RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

  PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

  XTAL2:

来自反向振荡器的输出。

2.2.28051简介

  单片微型计算机简称为单片机,又称为微型控制器,是微型计算机的一个重要分支。

单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统于同一硅片的器件。

80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。

1.管脚说明

VCC - 芯片电源,接+5V;

VSS - 接地端;

XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

   

2.控制线

控制线共有4根;  

ALE/PROG:

地址锁存允许/片内EPROM编程脉冲;        

①ALE功能:

用来锁存P0口送出的低8位地址 ;

 ②PROG功能:

片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

  

PSEN:

外ROM读选通信号; 

RST/VPD:

复位/备用电源。

  

① RST(Reset)功能:

复位信号输入端;          

② VPD功能:

在Vcc掉电情况下,接备用电源。

  

EA/Vpp:

内外ROM选择/片内EPROM编程电源。

       

① EA功能:

内外ROM选择端;  

  ② Vpp功能:

片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

  

3.I/O线  

80C51共有4个8位并行I/O端口:

P0、P1、P2、P3口,共32个引脚。

P0口有三个功能:

   

①外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口); 

②外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口) ;

③不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

   

P1口只做I/O口使用:

其内部有上拉电阻。

   

P2口有两个功能:

  

①扩展外部存储器时,当作地址总线使用; 

②做一般I/O口使用,其内部有上拉电阻。

 

P3口有两个功能:

   

除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。

 

 

3硬件电路设计

3.1复位电路

位电路采用上电+按钮电平复位,其中电阻的选取R1约为0.2k左右R2约为1k左右。

保证加载RST引脚上的高电平持续两个机器周期,才能使单片机有效地复位如图3-1所示。

图3-

1复位电路

3.2时钟电路

单片机内部有一个用于构成振荡器的高增益反响放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上接外接时钟源即可构成时钟电路,如图3-2所示。

图3-2时钟电路

参数选取:

C2,C3对频率有微调作用,当外接晶振时,C2和C3通常选取10~30pF,当外接陶瓷振荡器时,C2和C3的典型值约为20~50pF。

振荡频率范围一般是1.2~12MHz。

3.3数码管显示模块

图3-3显示模块

时间显示模块主要由四位七段数码管来显示,配合按键控制模块的校正与设定时间,相应的显示。

时间正常显示时,LED每闪动60次,分钟自动加一;每六十分钟小时自动加一;每24小时天自动加一。

3.4闹钟模块

图3-4闹钟模块

闹钟模块快的主要功能即闹铃。

当设定时间与当前时间一致时,则闹钟自动闹铃进行提示,同时二极管闪亮一分钟后,自动退出响铃状态,若按K3键,闹钟退出响铃状态。

3.5按键控制模块

图3-5按键控制

按键设定部分比较简单,因为本系统按键少,所以在设计上采用了独立按键方式,程序的编制上也采用了简单的扫描方式。

按键控制模块主要有由四个按键组成:

K1、K2、K3、K4、。

其中K1的功能是模式切换键;K2的作用是加一;K3的作用是闹钟使能;K4的作用是减一。

闹钟设定:

当我们需要闹钟提醒时即可使用此功能,连续按三下K1键即可进入闹钟小时设定状态,通过K2键加一或K4键减一,进行小时设定,再按一次K1键即可进行分钟设定,其设定原理与小时设定原理相同,按一下K3键,则时间设定完毕,到时会自动响铃。

闹钟响铃:

当我们设定的时间与当前时间一致时,则闹钟就会自动响铃提示,与此同时发光二极管闪亮,一分钟后响铃停止,发光二极管熄灭,若在此期间按下闹钟使能键K3同样能使响铃停止,发光二极管熄灭。

日期校正:

当我们需要与当前日期保持一致时,则可以使用日期校正功能,连续按动五次K1键,则进入月份校正状态,通过K2加一键或K4减一键进行校正月份,再按一次K1键,则可进行日期校正,校正原理同月份校正原理相同。

时间校正:

当我们需要正确的显示时间即可进行时间校正,按一下K1即进入小时校正状态,通过K2加一或K4减一来进行小时校正,再按一次K1键即可进行分钟校正,校正原理同小时校正相同

年份校正:

当我们需要保持年份与当前年份一一致时,则可以进行年份校正。

连续按动七次K1键,即进入年份校正状态,通过K2加一键或K4减一键进行校正。

 

4程序设计

本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在T1方式下,定时50微妙,则连续中断20次即为一秒,得到了我们所需时间的最小单位

该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。

许多子函数都可以直接移植过去。

在程序中除了有主函数外还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、设定日期显示函数、设定年份显示函数、月份选择函数、年份显示辅助函数。

4.1主程序设计

在主控程序循环中主要工作为扫描是否有按键,若有按键则应做相应的功能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了,时间计时处理程序是等过了1S后,则更新时间数据,将最新的时,分,秒的数据转换为数字数据并显示在七段显示器上。

程序中是这样判断是否过了1S的:

设一旧秒数变量,当新旧秒数变量不一样时,则表示已过了1S,要做相关程序时间处理了。

图4-1主程序流程图

4.2中断子程序

中断子程序的主要功能:

提供时间基准。

当连续中断20次时,即为一秒,此时秒加一;当秒值为60时,分钟加一,同时秒清零;当分钟值为60时,小时加一,同时分钟值清零;当小时为24时,天值加一,同时小时清零;由于每月天数不定,1、3、5、7、8、10、12月为31天,当计数到此类月份时,天值为32时,月值加一,同时天值为1;4、6、9、11月为30天,当计数到此类月份时,天值为31时,月值加一,同时天值为1;如果是闰年,则2月为29天,当计数到此类月份时,天值为30时,月值加一,同时天值为一;如果不是闰年,则2月为28天,当计数此类月份时,天值为29时,月值加一,同时天值为一;当月值为13时,则年值加一,同时月值为一。

图4-2定时器中断函数

4.3按键扫描子程序

按键扫描子程序是程序计中相当重要的一部分。

按键扫描子程序的功能是:

扫描是否有按键按下,若有键按下,则执行相应功能。

图4-3按键扫描子程序

5结果验证

5.1装置调试

1.设定的初始时间如图5-1-1所示

图5-1-1时间显示

2.设定闹钟时间图5-1-2所示

图5-1-2闹钟设定时间

3.设定的闹钟时间与当前时间相同,闹钟音乐播放图5-1-3

图5-1-3闹钟音乐播放

5.2Proteus软件仿真

初始界面:

启动Proteus进行仿真时显示的初始化时间。

设定时间初始值是20:

05:

59仿真时时间跳转到20:

06。

初始界面仿真图如图5-2-1所示。

图5-2-1时间显示仿真图

时间校正:

当我们需要正确的显示时间即可进行时间校正,按一下K1即进入小时校正状态,通过K2加一或K4减一来进行小时校正,再按一次K1键即可进行分钟校正,校正原理同小时校正相同。

其仿真图如图5-2-2所示。

图5-2-2时间校正仿真图

闹钟设定:

当我们需要闹钟提醒时即可使用此功能,连续按三下K1键即可进入闹钟小时设定状态,通过K2键加一或K4键减一,进行小时设定,再按一次K1键即可进行分钟设定,其设定原理与小时设定原理相同,按一下K3键,则时间设定完毕,到时会自动响铃。

调试时将时间设定为20.08。

其仿真图如图5-2-3所示。

图5-2-3闹钟设定仿真图

日期校正:

当我们需要与当前日期保持一致时,则可以使用日期校正功能,连续按动五次K1键,则进入月份校正状态,通过K2加一键或K4减一键进行校正月份,再按一次K1键,则可进行日期校正,校正原理同月份校正原理相同。

其仿真图如图5-2-4所示

图5-2-4日期显示仿真图

年份校正:

当我们需要保持年份与当前年份一一致时,则可以进行年份校正。

连续按动七次K1键,即进入年份校正状态,通过K2加一键或K4减一键进行校正。

其仿真图如图5-2-5所示

图5-2-5年份显示仿真图

闹钟响铃:

当我们设定的时间与当前时间一致时,则闹钟就会自动响铃提示,与此同时发光二极管闪亮,一分钟后响铃停止,发光二极管熄灭,若在此期间按下闹钟使能键K3同样能使响铃停止,发光二极管熄灭。

其仿真图如图5-2-6所示。

图5-2-6闹钟音乐播放仿真图

6结论

两个星期的课程设计结束了,从中我们学到了很多东西且感悟良多,体会到了课本联系实际,学以至用,设计思想,实际动手能力都有所提高。

作为一名大四学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。

要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。

这次课程设计使我懂得了同学间的团结合作,懂得了理论联系实际,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是正确的理论,从而提高自己实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,并决心在以后的学习中加以改正,努力练习,提高自己的动手能力。

7参考文献

1.余发山,王福忠,徐州,中国矿业大学出版2008年

2.彭为,黄科,雷道仲,单片机典型系统设计实例讲解,2006年

3.王法能,单片机原理及应用,科学出版,2004

4.张友德、赵志英等编单片微型机原理、应用与实验,上海:

复旦大学出版2003,第四版

5.钱晓揭.16/32位微机原理、汇编语言及接口技术[M].机械工程出版社2005年

6.吴金,8051单片机实践与应用[M],清华大学出版社,2002年

7.谢自美,电子线路设计试验测试(第二版),华中科技出版社2002年

8.张疑坤,陈善久,裘雪红,单片微型计算机原理及应用,西安电子科技大出版社,2003年

9.马忠梅编著《单片机的C语言应用程序设计》北京航空航天大学出版社,1999年

附一:

源程序代码

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodea[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//*************************************************************************************

sbitK1=P1^4;

sbitK2=P1^5;

sbitK3=P1^6;

sbitK4=P1^7;

sbitsd=P1^0;

sbitBEEP=P3^6;

ucharm=5,h=20,sec=58,cnt=0,x,y,qian,bai,shi,ge;

ucharset_h=12;

ucharset_m=58;

ucharmonth=7;

ucharday=5;

ucharth0_f;

uchartl0_f;

uintyear=2010;

voiddelay(uchart);//延时函数

voidscankey(void);//按键扫描函数

voidinit(void);//初始化函数

voiddisplay(void);//显示函数

voidset_time(void);//设定时间显示辅助函数

voidset_day(void);//设定日期显示辅助函数

voidm_choose(void);//月份选择函数

voidbianhuan(void);//年份显示辅助函数

voidbianhuan1(void);//时间显示辅助函数

changedata(uchar*song,uchar*diao,uchar*jie);

voidplay(uchar*songdata);//奏乐函数

//世上只有妈妈好

ucharcodemamahao[]={

"6.5_35|`16_5_6-|35_6_53_2_|1_,6_5_3_2-|"

"2.3_55_6_|321-|5.3_2_1_,6_1_|,5--"

};

ucharcodefreq[36*2]={

0xA9,0xEF,//00220HZ,1//0

0x93,0xF0,//00233HZ,1#

0x73,0xF1,//00247HZ,2

0x49,0xF2,//00262HZ,2#

0x07,0xF3,//00277HZ,3

0xC8,0xF3,//00294HZ,4

0x73,0xF4,//00311HZ,4#

0x1E,0xF5,//00330HZ,5

0xB6,0xF5,//00349HZ,5#

0x4C,0xF6,//00370HZ,6

0xD7,0xF6,//00392HZ,6#

0x5A,0xF7,//00415HZ,7

0xD8,0xF7,//00440HZ1//12

0x4D,0xF8,//00466HZ1#//13

0xBD,0xF8,//00494HZ2//14

0x24,0xF9,//00523HZ2#//15

0x87,0xF9,//00554HZ3//16

0xE4,0xF9,//00587HZ4//17

0x3D,0xFA,//00622HZ4#//18

0x90,0xFA,//00659HZ5//19

0xDE,0xFA,//00698HZ5#//20

0x29,0xFB,//00740HZ6//21

0x6F,0xFB,//00784HZ6#//22

0xB1,0xFB,//00831HZ7//23

0xEF,0xFB,//00880HZ`1

0x2A,0xFC,//00932HZ`1#

0x62,0xFC,//00988HZ`2

0x95,0xFC,//01046HZ`2#

0xC7,0xFC,//01109HZ`3

0xF6,0xFC,//01175HZ`4

0x22,0xFD,//01244HZ`4#

0x4B,0xFD,//01318HZ`5

0x73,0xFD,//01397HZ`5#

0x98,0xFD,//01480HZ`6

0xBB,0xFD,//01568HZ`6#

0xDC,0xFD,//01661HZ`7//35

};

//******************************

//音乐符号串解释函数

changedata(uchar*song,uchar*diao,uchar*jie)

{

uchari,i1,j;

chargaodi;

ucharbanyin;

ucharyinchang;//

ucharcodejie7[8]={0,12,14,16,17,19,21,23};

*diao=*song;

for(i=0,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2