51单片机论文

2025-01-27 版权声明 我要投稿

51单片机论文

51单片机论文 篇1

课程设计名称:智能控制避障小车 学生姓名: 班

级: 学

号: 成 绩: 指导教师:

开课时间:2016-2017学年第 一学期

I

独 创 声 明

本人声明所呈交的课程设计是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含未获得(注:如没有其他需要特别声明的,本栏可空)或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在设计报告中作了明确的说明并表示谢意。

作者签名: 日期:年月日

II

摘 要

介绍一种基于stc89c51单片机实现的智能避障小车设计。该系统前方采用两个红外反射式光传感器fc-51检测障碍物,控制系统通过检测信号识别障碍物并发出指令使小车绕行。

关键词:智能 控制 避障 单片机III

传感器

目录

(以下内容仅供参考).系统功能………………………………… 系统工作原理

2.设计方案……………………………………………………………… 2.1车体设计………………………………………………………………… 2.2电源模块………………………………………………………………… 2.3 避障模块………………………………………………………………… 2.4电机模块………………………………………………………………… 2.5电机驱动模块…………………………………………………………… 2.6 最终方案………………………………………………………………… 3 系统程序……………………………………………………………………….总结………………….参考文献…………………

IV.系统功能

系统工作原理:

系统主要由控制单元、电机驱动、外部输出、红外发射、红外接收等单元组成。

图1 系统机构图

智能控制避障小车的设计采用现在较为流行的8位单片机作为系统大脑。以8051系列家族中AT89C51为主芯片。4个端口引脚控制信号输入电路,控制电路,执行电路共同完成避障行驶控制。

2.设计方案 1车体设计:

智能控制小车采用中间轮驱动,中间轮左右两边各一个电机驱动,控制中间面两个大轮子的停走从而控制小车的方向;前后轮是换向轮起支撑作用。将两个避障模块放在车子的左前方和右前方。如下图所示:

小车底盘,可以清楚的看到小车电机控制车轮,以及换向轮所在位置。

上图可以看出小车电源最小系统板还有排针以及开关的位置。

从小车正面看出内部驱动,前方的避障模块。(超声波检测,寻迹模块)

2电源模块:

电源模块即电池与电池盒,通过电池盒接通电路,输送电源来驱动小车跑。避障模块:

传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。

4电机模块:

电机模块主要控制小车的中间两轮,从而控制小车的前进与后退。

控制电机的转速也能控制小车的前进速度。电机驱动模块:

电机驱动模块使用ST公司的L298N作为主驱动芯片,具有驱动能力强,发热量低,抗干扰能力强的特点。

电机驱动模块可以使用内置的78M05通过驱动电源部分取电工作,但是为了避免稳压芯片损坏,当使用

大于12V驱动电压的时候,我们使用外置的5V逻辑供电。

电机驱动模块使用大容量滤波电容,续流保护二极管,可以提高可靠性

原理图 最终方案:

利用驱动模块降压,接通51单片机,通过程序控制小车运动,通过避障改变运动轨迹,从而实现避障。.系统程序

程序: #include #define uchar unsigned char

#define uint unsigned int //定义全局变量

sbit IN1=P1^0;sbit IN2=P1^1;sbit IN3=P1^2;sbit IN4=P1^3;//定义驱动引脚

sbit out1=P2^5;sbit out2=P2^6;//定义避障引脚

void run()

//小车跑

{

if(out1==0&&out2==1)//小车右转

{

IN1=1;

IN2=0;

IN3=0;

IN4=0;

}

else if(out1==1&&out2==1)//小车前进

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

}

else if(out1==1&&out2==0)//小车左转

{

IN1=0;

IN2=0;

IN3=1;

IN4=0;

} else if(out1==0&&out2==0)//小车左后转

{

IN1=0;

IN2=1;

IN3=0;

IN4=0;

} } void main()

//主函数

{ while(1)

{

run();

} } 改程序是利用避障模块检测,若左边避障检测到,小车右转,右边检测到,小车左转,都没检测到,前进,都检测到,小车左后退。.总结

智能避障小车软硬件配合要紧密,在硬件中,要把各个零件配合时要连接正确,否则有烧坏的可能,写程序时要注意步骤,要有思路,程序代码要记清,写程序时要认真,避免出现小失误。从做这辆小车以来,我学到了很多知识,也碰到了很多困难,但最终都克服了,只要有一颗不服输的心,我想信,困难只是暂时的,最后都会解决。.参考文献

51单片机论文 篇2

长江工程职业技术学院的电气自动化的专业每年招生有近200个学生, 其中专业课单片机的学习在控制领域显得尤为重要, 人才培养方案中单片机课程的学习是96个课时, 96课时包括48理论和48实践, 另外还安排了一个星期的综合实训。可见单片机的教学所占课时多, 重要性不言而喻。

led灯是整齐排列的, 被镶嵌到一块塑料板上, 可以显示汉字和图形, 用来介绍商品, 吸引顾客。点阵led显示屏作为一种现代电子媒体, 具有灵活的显示面积 (可分割、任意拼装) 、高亮度、长寿命、大容量、数字化、实时性的特点。点阵显示的教学设计和教学思路要细致而又有趣, 才可让学生通过动手做来学习。这里我设计的是学习任务:点阵显示“王桂兰”三个字。

二、首先需要的设备

KST-51单片机开发板1块、STC89C52RC芯片一块、USB线缆一根、电脑一台。要说明的是KST-51单片机开发板1块、STC89C52RC芯片一块、USB线缆一根, 这些设备是我在金沙滩工作室买的, 关于单片机的教学, 必须要有配套的设备和配套的书, 并且所编的项目全都是非常典型实用的项目。我们做教师的, 为了更好地教学, 必须要寻找到好的资源或自己做设备开发与项目设定而编写教材。

三、学习安装软件

首先要声明的是一定要自己装软件, 安装的过程是需要调试的, 还可以培养学生发现问题的能力与解决问题的能力。

在你的电脑上安装上三个软件:一个软件是编写程序的Kei L-C51-9.02a, 一个软件是下载软件STC-ISP-v4.80。STC-ISP-v4.80是把程序下载到单片机, 单片机运行显示结果。注意安装下载软件时点右键以管理员身份运行一次, 再来安装。第三个软件是单片机驱动软件CH341SER的X64或X86, 装哪一个根据操作系统是32位还是16位来选择使用。还有一个字模提取软件V2.1。

四、项目:点阵显示“王桂兰”的电路介绍

点阵8×8=64个点, 或16×16=256个点, 16×16相当于4个8×8, 而64个点就是64个LED小灯, 再大也有规律可循, 万变不离其宗。比如要点亮左下角的小灯, LEDC7必须为高电平, DB0必须为低电平。而控制LEDC7的是U4 74HC138, 输入端口是ADDR0, AD-DR1, ADDR2, ADDR3, ENLED。

五、项目:点阵显示“王桂兰”的程序编写

打开Kei L-C51-9.02a界面, 找到工程Project菜单, 建立新工程, 文件名取:WGL, 保存, 这时会让你选择单片机型号, 选Intel公司的51内核的就可以了。这时注意界面左边的工程显示。接下来建立新文件, 文件名:.c, 保存, 接下来要把文件加到工程上去, 点开左边界面工程下的Add file to group……将文件加到工程内, 就可以正式编写代码了, 即编写C语言程序。

编写程序注意第一点:

六、字模提取

字模提取软件的应用说明如下:

打开字模提取软件, 点击新建图像, 选择高度与宽度, 在选择区域输入“王桂兰”三个字, 点击黑白反写, 点击取模方式C51, 然后把“0x FF, 0x FF, 0x83, 0x EF, 0x83, 0x EF, 0x83, 0x FF, 0x F F, 0x FF, 0x BB, 0x00, 0x B1, 0x12, 0x B2, 0x1A, 0x BB, 0x1B, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x DB, 0x FF, 0x81, 0x FF, 0x81, 0x FF, 0x81, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF, 0x FF”提取出来放到程序相应位置就可以了。

七、下载, 单片机运行, 显示结果

打开STC-ISP-v4.80界面, 打开程序文件, 找到相应的.hex文件, 选择COM口, 选择与下载无关, 其他不动, 然后开始下载, 下载时单片机开关关上, 下载完后打开开关, 就有显示了, 点阵上出来“王桂兰”三个字, 是移动的效果。

摘要:点阵led显示屏作为一种现代电子媒体, 具有灵活的显示面积 (可分割、任意拼装) 、高亮度、长寿命、大容量、数字化、实时性的特点。点阵显示的教学设计和教学思路要细致而又有趣, 才能把单片机教学做得生动而又能让学生获得专业能力。

关键词:点阵,软件,单片机

参考文献

[1]宋雪松, 等.手把手教你学51单片机[M].北京:清华大学出版社, 2014.

51单片机论文 篇3

关键词:电容式传感器;频率-电压转换器;MCS-51;ADC0809

中图分类号:TD713文献标识码:A文章编号:1007-9599 (2010) 03-0074-02

Grain Moisture Testing Based on MCS-51 Microcontroller

Xu liangliang,Liang Gaige,Wang Jiajia

(China University of Mining Information and Electrical Engineering,Xuzhou100000,China)

Abstract:In this paper,If grain moisture compliance with standards,propose a real-time,reliable based on MCS-51 microcontroller new detection system.The system is based on a capacitive sensor,the core for the 8031 microprocessor.The paper first discusses the the working theory of capacitive sensors,and under the principles propose improve detection sensitivity method;secondly gives the capacitance - frequency - voltage linear conversion circuit is a collection ADC809 input signal;Finally grain moisture required to give a SCM approach.

Keywords:Capacitive sensor;frequency - voltage converter; MCS-51;ADC0809

一、引言

谷物在人们日常生活中是必不可少的,如果谷物太湿,就会加速谷物的霉变,所以检测谷物湿度并及时采取措施是将谷物仓储的前提。而在常规的环境参数中,湿度是最难准确测量的一个参数。这是因为测量湿度要比测量温度复杂得多,温度是个独立的被测量,而湿度却受其他因素(如大气压强、温度等)的综合影响。因而,如何实时、准确地在线测定仓储谷物的水分含量具有重要意义。长期以来,人们仅仅靠主观感觉来检测谷物湿度,缺乏一定的科学依据,就使谷物湿度检测科学化、标准化这一点来讲,设计一套谷物水分快速检测仪也是十分必要的。

二、电容式传感器的工作原理

电容式传感器具有结构简单、灵敏度高、动态响应好、价格便宜等优点,可以实现非接触测量,且具有平均效应。电容传感器可以用来检测压力、力、位移、物位以及振动等方面的参量,是一种应用广泛和有发展前途的传感器。

电容式传感器是把被测的非电量转换为自身电容量变化的一种传感器。这些被测量是用于改变组成电容器的可变参数而实现其转换的。下面以用最普通的平行极板电容器来说明电容式传感器的基本工作原理。两块相互平行的金属极板,当不考虑其边缘效应(两个极板边缘处的电力线分布不均匀引起电容量的变化)时,其电容量为:

显然,C是S、d、 的函数,如果保持其中两个参数不变,只改变另一个参数,就可将参数变化转换成电容量的变化,构成电容式传感器。因此,电容式传感器可分为变极距型、变面积型、变介质型三种类型。

三、谷物湿度检测传感器的工作原理

传感器采用同心柱型电容器,可减小边缘效应对电容值的影响,因为当 ,可忽略圆柱两端的边缘效应影响。圆柱形电容式传感器

由此可得放入谷物前后电容C的变化量 ,令 ,为使有较高的灵敏度,需满足 ,故当 时,有较高的灵敏度。在做电容器时应予以考虑。不难理解,谷物中的含水量 必定与相对介电常数常数呈正相关,而 ,所以电容量C亦将与 呈正相关。由此检测的C的值,便可知谷物的湿度。

四、测量与转换电路

一般情况下非电量难以测量,应该把非电量转化为电压电流的变化,以便于测量和处理。

根据电路知识可得: ,将频率f通过频率—电压转换器后,其输出电压: 将(1)式代入(2)式得 ,电压U1经过倒数电路后,其输出电压: ,将(3)式代入(4)式得 电压U2经过放大电路,其输出电压

从上式可以看出输出电压U3与电容量Cx成正比,而Cx又决定于谷物的湿度 ,这样就在电压和谷物湿度之间建立了函数关系。从以上分析可知, 越大,电容量Cx就越大,那么输出电压U3也就越大,虽然U3与 之间存在一定的非线性,但正相关的规律不会改变,通过国家标准给定 的上限,经实验也就能得出相应电压的上限。

五、硬件电路设计

(一)硬件系统构成

为了能实现简单、快速、准确地现场测定谷物湿度,同时考虑到设计的性能和价格等因素,将选用MCS-51系列的单片机8031,这样就建立了以单片机为核心的便携式快速智能湿度监测仪。它具有体积小、质量轻、能耗低、操作简单等特点,而且可以大大提高工作效率和事故的预见性,有效地降低粮食储藏过程中的损失。硬件电路流程图如下:

图1硬件系统流程

从图中可以看出,该硬件系统由四部分组成,采集电路、接口电路、8031处理器和显示电路。图中的扩展输入包括看门狗、键盘等。扩展输出包括LED显示,继电器等等。

(二)MCS-51对ADC809的接口

因ADC809内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身即可看做一种输入设备,也可认为是并行I/O接口芯片。因此,ADC0809可以直接和MCS-51接口,当然也可通过8155这样的其他接口芯片连接,这里采用8031和ADC0809直接相连,START和ALE互连可使ADC0809在接收模拟量路数地址时启动工作。START启动信号由8031 和P2.3经或门产生。复位后因P2.3为高电平而封锁。

图2 8031和ADC809接口电路

六、结论

该系统能够实时监测谷物的湿度,并配有越限报警装置,以便工作人员能及时响应做好防范措施。具有一定的实用价值。从文中我们也可以看到,由于忽略了电容的边缘效应以及谷粒间距之间的差别而认为应用的对象是理想的,这本身会存在一定的误差。但采取适当的措施,例如使电容式传感器筒高度远大于其外径也是可以减小甚至是忽略这些非主要因素影响的。另外,这种监控系统这对提高工作效率、减轻劳动强度、节省人力、实现粮库管理自动化也同样具有重要意义。

参考文献:

[1]胡汉才.单片机原理及接口技术(第2版).北京:清华大学出版社,2006

[2]童敏明,唐守峰.检测与转换技术.徐州:中国矿业大学出版社,2008

[3]卢文科.电子检测技术.北京:国防工业出版社,2002

[4]翟宝峰,梁清华.检测粮食水分用的电容式传感器,2003

《51单片机》学之感想 篇4

材料一班

罗时礼

2011301360023

《51单片机》学之感想

时间过得飞快,转眼又是开学之际,转眼自己已经从新生变成了学长了。回想刚刚过去的暑假生活,自己做了什么。是充实还是空虚?

回想,是真的充实了一个暑假。白天的辛苦暑期实习工作让身体近乎疲惫,但还是不舍得那夜晚的宁静,不打开电脑,不播放音乐,宁静自然是需要宁静的事物来相衬,这样,夜的美才会更加宜人。

手捧着自己从图书馆借来的《51单片机》的书。打开,犹如天书。没有一点基础,根本看不懂。但是凭着自己对电子知识的渴望,凭着自己对电子制作的热爱,我开始了漫长的自学过程。

我没有像其他同学那样阅读文学类的作品,或许我学这种书也谈不上读书,而是应该说学书。《51单片机》这本书是介绍一门现实社会需要的一门技术,在现实社会中很多涉及到自动化及智能化的应用领域都大量使用单片机技术。值得高兴的是,这两个月的自学,这个过程让我收获很大,让曾经看似很高深的技术真正掌握在自己的手里。

在书中,开始就和其他书籍一样,介绍简单的知识,如汇编语言的基本语句,算法,C语言编写的方法,以及单片机相关的,特有的语句以及芯片等等知识。其知识涵盖面甚广,灵活性甚高。在这样情况下,要掌握得好,实际操作很重要。所以,在这个过程中,我就是购买了一块单片机实验开发板。每学一点东西,就自己编写程序,通过开发板来检测自己写的程序正确与否。而在后续的学习过程中,所介绍的知识更多,技术难度更加大,这就需要多问为什么,要积极思考,勤奋查资料,不断的积累小知识,从而来解决后续的大问题。在这里,我想说,每一个学习过程都是渐变的过程,不要去畏惧,难的东西是因为它把很多简单的东西结合在一起,所以做起来花时间,花精力。这也可以算是我在这个过程中的一个很深的体会。

我想说,在自学的过程中,我并没有花很多的时间去学,我想的是,收货不应该用大量的时间去交换,而是应该去领悟,这样才记得深,掌握得好。

51单片机论文 篇5

51单片机课程设计报告

学院:

专业班级:姓名:

指导教师:

设计时间:

51单片机课程设计

一、设计任务与要求

1.任务:制作并调试51单片机学习板 2.要求:

(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会看电路原理图;

(3)制作51单片机学习板;

(4)学会使用Keil C软件下载调试程序;

用调试程序将51单片机学习板调试成功。

二、总原理图及元器件清单

1.总原理图

要求:用铅笔在A4纸整页绘制

2.元件清单

三、模块电路分析

1.最小系统:

单片机最小系统电路分为振荡电路和复位电路,振荡电路选用 12MHz 高精度晶振, 振荡电容选用 22p和30p 独石电容;

晶振为单片机提供时钟激励,保证单片机内部和外部电路的时序逻辑电路协调动作,课程中使用的是12M的晶振,可以产生每秒12M频率的激

励。而构成振荡回路的俩个电容为负载电容,可以影响晶振的谐振频率和振荡幅度。

图 1图

2复位电路使用 RC 电路,使用普通的电解电容与金属膜电阻即可;

3当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST为低电平。正常工作为低电平,高电平复位。(分析振荡电路:测振荡频率; 分析复位电路:高或低电平复位?)

2.显示模块:

发光二极管显示电路:

Usb的为系统加电时,power的发光二极管处于高电位,发光。当程序控制其余四个脚的电位为低电位,输出端口为高电位,剩下的四个发光二极管发光

4数码管显示电路

本课程使用数码管显示状态为静态显示。静态显示就是显示驱动电路具有

输出锁存功能。单片机将所要显示的数据输出后,数码管显示数据不变。Cpu不再控制led。静态显示的接口电路采用一个并行口接一个数码管。数码管的公共端按共阴极或共阳极分别接地或

VCC

5四、硬件调试

1、是否短路

用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。

2、焊接顺序

焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。

3、器件功能

1)检查原理图连接是否正确

2)检查原理图与PCB图是否一致

3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象

5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确

6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。

六、软件调试

1、设置硬件仿真环境

单片机应用系统程序的编译和仿真在KeilμVision环境下进行,在调试程序之前,需要对工程进行Debug设置,选择软件仿真或硬件仿真。软件仿真使用计算机来模拟程序的运行,不需要建立硬件平台就可以快速得到某些运行结果;硬件仿真是最准确的仿真方法,必须建立硬件平台,通过PC机→硬件仿真器→用户目标系统进行系统调试。采用硬件仿真的方法,硬件平台即为带有图1所示接口电路的单片机应用系统,设置硬件仿真环境的具体操作步骤如下:

首先,点击所建工程:Project菜单中的Options for Target„Targer 1‟,出现工程的配置窗口,点击Debug设置,选择KeilMcmitor-51 Driver,具体参数设置如图6所示。

图 6

然后,设置仿真器参数。建议波特率设置范围300~38 400。为避免程序中的中断和Keil硬件仿真环境中的中断互相冲突,不选择“Stop ProgramExecution with SerialInterrupt”。仿真器参数的设置如图7所示。

图7

完成51单片机在Keil μVision环境中的硬件仿真环境设置后,可以进行程序的调试仿真。

2、调试仿真

1)导入测试代码:文件→打开→key and display.Uv2 2)重建全部工程:工程→重建全部目标文件

重建结果为,“DA_5615” – 0 Error(s), 0 Warning(s).3)调试:调试→Start/Stop Debug session(Ctrl + F5)

调试结果为:Connected to Monitor_51 V3.4Load “C:......DA_56511、详细描述软件调试步骤。及各模块调试结果。

2、详细描述调试过程中出现的故障现象,并作故障分析,及解决方法

七、心得

51单片机与三菱PLC通讯实例 篇6

我用了两个晚上的时间查阅一些资料,利用三菱PLC的扩展RS485通讯板与其51单片机连接通讯,可写PLC任意的地址。长度可达1000米,看见网上写的都很烦且对三菱和单片机不是很熟的朋友来说有一定的阅读难度,今天将它与大家分享。希望在此基础上大家能扩展出自己想要的功能,过些时间有空我在写个半双工的程序。硬件部分:

我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工通讯,须将P3.0口到下载程序的RS232芯片的线断开可用一个跳线,用RS485的时候断开RS232,用RS232的时候插上跳线帽。硬件连接如图

PLC程序:

通讯我用单片机做主机(只发送指令),PLC做从机(只接收指令),单工单向,以便初学着掌握。

格式:1位启始,8位数据,一位停止。所以PLC寄存器D8120:0C81.plc程序很简单不懂的可以看下三菱PLC的通讯手册。如下图:

三:单片机程序:

#include

/*单片机的头文件*/ unsigned char code tab[]={0x17,0xff};/*PLC输出的Y点数,PLC输出Y灯0125678亮*/ sbit led=P1^1;

/*将RS485置为发送数据模式*/ unsigned char i;void init(){ SCON=0x50;

/*串口中断开*/ TMOD=0x20;

/*定时器设置*/

TH1=0xfd;

/*定时时间的高位*/ TL1=0xfd;

/*定时时间的低位,速度为9600BPS*/ TR1=1;

/*定时器开*/ EA=1;

/*开总中断*/ TI=0;

/*复位串口中断*/ led=1;

/*将RS485置为发送数据模式*/ } void main(){ init();

/*调用子程序*/ for(i=0;i<2;i++){ SBUF=tab[i];

/*将数据发送到串口*/ while(!TI);

/*等待串口数据发送结束*/ TI=0;

/*复位串口中断*/ } } 四:注意点。

1:RS485的线不能接反,否则数据将不正确。

2:单片机的晶振要选择11.0592MHZ,否则PLC接收到数据也不正确。

3:RS485芯片的电源不能接反,否则要烧坏芯片。

今天要去山东调试机器,现在正在高铁上,刚好有空把这篇心得写好,有错误的地方还请大家指正,也希望有共同爱好的一起交流心得。

QQ:79814563 注明时工控交友

电话:***

基于51单片机的坐姿提醒仪 篇7

1 系统总体设计

根据人体坐姿不同,所有情况基本上都包含,后背弯曲程度不同,远离椅子靠背程度也相应不同,可根据后背远离椅子距离检测坐姿,可大致算出人体坐姿,此检测方法存在一定误差,但对于大部分情况来说,完全可满足人体基本坐姿检测要求[3]。超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离,s=Ct/2,式中的C为超声波波速,图1 为设计系统整体结构框图。

由于超声波也是一种声波,其声速C与温度有关。在使用时,如果温度变化不大,则可以认为声速是基本不变的。如果测距精度要求很高,则需通过温度补偿的方法加以校正,但对于本体系统而言,可以认为其不变。声速确定后,只要测得超声波往返的时间,即可求得距离,这就是超声波测距原理[4]。

2 坐姿提醒仪功能说明

随着社会现代化,工业化的发展,人们对电子产品的要求也越来越高,因此坐姿提醒仪功能设计如下。

测量功能:利用超声波测量人后背与座椅距离,并计算出人体目前坐姿。利用CPU测量用户持续学习时间。

修改功能:通过功能按键,可修改坐姿阈值和持续学习时间阈值参数。

提醒功能:用户可直接通过数码管查看坐姿值和持续学习时间,当坐姿不正确或持续学习时间超过设定阈值,系统便会声光报警提醒。

3 系统硬件设计

3.1 CPU处理器

89C51 是一种带4K字节闪烁可编程可擦除只读存储器,它的低电压、高性能CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100 次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51 是一种高效微控制器,89C2051 是它的一种精简版本。89 系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

3.2 超声波传感器

作品使用超声波传感器来测量学生后背与椅靠的距离。使用的是US-100 超声波传感器模块。US-100 超声波测距模块可实现2 ~ 450 cm的非接触测距功能,拥有2.4 ~ 5.5 V的宽电压输入范围,静态功耗低于2 m A,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。

3.3 数码管显示

这里为了节省成本,采用4 位数码管做距离显示,同时显示报警设置环节。我们运用的是共阳数码管。位控制端是P2^4 到P2^7. 段控制为P0 口。

3.4 按键修改模块

按键接口采用P2^0 到P2^3. 采用低电平检测。为了方便使用者根据实际情况修改安全距离,采用4 个按键做修改平台。简单,方便。

3.5 蜂鸣器报警部分

蜂鸣器接口采用P1^0. 由于蜂鸣器的廉价和其优秀的音质,再加上它的外围电路简单,于是我们采用这款最简单的报警控制电路。

4 应用程序的设计

根据题目要求,软件系统基本设计思路是:利用US-100超声波传感器将距离信息监测回来,然后送给51 单片机系统。单片机系统接受到信息后,将距离信息处理,然后显示在数码管上。首先,系统上电后,初始化定时器0 和1. 定时器0用于超声波数据传输,定时器1 用于定时刷新数码管,设置刷新时间为1s。初始化定时器后,进入大循环,开始扫描按键和处理报警及数码管显示。当检测到有按键按下时,开始判别按键,如果是设置按键,则此时关掉定时器0,也就是说停止采集。同时数码管显示为报警的安全距离。接着如果接下来按键是加减按键,则根据按下的次数,增减安全距离。当安全距离大于30 时,回到0. 当安全距离小于0 时,回到30. 接下来再检测是否按下确定键。当确定键按下时,系统存储安全距离,同时定时器0 开始工作。数码管显示内容为实际距离, 如图2 所示为系统软件流程图。

5 统调试及结果分析

5.1 系统调试

为检验各模块是否按要求进行正常工作,借助万用表、示波器来进行检测,通过测试结果完成对各个模块完成功能的评估,对整体联调是一种很好的促进手段,如图3 所示为系统外观实物图。

当硬件电路正常工作后,我们使用串口调试助手、J-Link进行在线调试。串口调试工具是通过串行通信接口与主控芯片的进行信息交互,其输出波特率与数据帧的格式都可以进行设置,具有使用灵活、操作简便的特点。J-Link是调试ARM嵌入式系统的常用工具[5]。在每一部分程序调试通过后,对所有子程序进行整合编写出完的主程序。在开发环境中完成程序编译之后,通过J-Link工具把程序代码下载到STM32处理器中,然后通过程序的调试功能来进行程序的调试。使用J-Link工具的优点是:入门简单、可以全面的观察程序中的参数和微处理器中各个寄存器的值和状态,特别适合软硬件联调阶段。

5.2 结果分析

通过多次的软硬件联调,以及对系统数据的观测证明系统基本满足设计要求,能够实现实时报警和距离显示。并且能够正确及时的提醒学生正确坐姿。

综上所述,课题设计的测试结果证明了系统设计的合理性和可靠性。

摘要:本项目是基于51单片机和超声波模块而制作的坐姿报警系统。利用STC公司的89C51单片机做主控制系统,利用US-100超声波测距传感器做距离检测,用4位数码管做距离实时显示,完成了学生坐姿提醒功能。

51单片机论文 篇8

摘要:本文介绍了一款基于红外遥控技术与单片机控制技术的遥控温度检测报警小车的设计。采用C语言编程控制单片机核心,设计和完成了能够遥控测温并在显示器上实时显示温度的小车。文章阐述了项目背景、模块设计、业务流程以及模块功能实现的分析;经测试达到功能目的,配合相关的电路设计图,可做为在校学生的实践项目进行使用。

关键词:单片机 无线遥控 温度检测小车

现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用,数量高居各种传感器之首。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,而单片机微处理器越来越丰富的外围功能模块,更加方便了数字式温度传感器输出信号的处理。将单片机控制的小车和数字温度传感器结合起来,形成一个遥控的实时测温平台,对于在学院学习单片机控制专业课的学生来讲是一个好的研究项目。

1 总体设计思路及分析

本设计主要包括以下部分:主控制器STC89C52,红外收发,温度采集与显示,蜂鸣器报警,红外遥控,小车装置。为求的系统的稳定,且有较大的灵活性,其中温度采集采用高精度的数字温度传感器DS18B20,蜂鸣器进行报警,实测温度值通过数码管显示。同时为增加系统绝对可控性,自动化性,红外遥控发射遥控小车做大范围的测控无人化测控。如图1所示。

2 项目实现

2.1 单片机控制模块。STC89C52控制器是增强型的51微型控制器,本系统的软件程序用C语言编写,主要分为主程序,外部中断解码子程序,定时器1中断程序,显示子程序,小车行进子程序。主程序完成系统的硬件初始化,子程序调用的功能。关于定时器和外部中断初始化的部分设置如下:

TMOD=0x02;

TH0=0x00;

TL0=0x00;

EA=1;

ET0=1;

TR0=1;

IT0=1;

EX0=1;

......

2.2 温度检测模块。温度报警器采用DALLAS公司生产的单线数字温度传感器DS18B20,可以把温度信号直接转换成串行数字信号供微机处理;其测温范围-55℃~+125℃,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,且硬件电路十分简单。

本测温系统只有一个从机DS18B20,所以进行温度转换时先初始化,然后直接向ds18B20发温度转换命令进行温度转换,其过程如下所示:①初始化DS18B20:init();②紧接着发送温度转化指令write_byte(0xcc);write_byte(0x44);③再次初始化温感init();④发送温度读取指令write_byte(0xcc) ;write_byte(0xbe);⑤定义一个整形或字符型内存变量接受温度数据的高低位low=read_byte() ;high=read_byte();⑥合并温度数据的高低位使温度数据的二进制表示,转化后可得十进制温度。

2.3 红外遥控模块。TC9012作为红外遥控器控制核心,遥控编码脉冲信号是由引导码、系统码、系统反码、功能码、功能反码等信号组成。以PPM码(脉冲位置调制码)对红外数据调制在38KHz的载波上对外进行发射信号。

HS1838是用于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0kHz。

2.4 小车电机驱动模块。L9110直流电机的驱动芯片是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC 之中,使外围器件成本降低,整机可靠性提高。

Cargo()子程序完成从主程序接受从遥控器传递的参数,实现对应的小车控制操作:

void cargo(uchar right1,uchar right2,uchar left1 ,uchar left2)

{

youdj1=right1 ;

youdj2=right2 ;

zuodj1=left1 ;

zuodj2=left2 ;

}

其中youdj1,youdj2,zuodj1,zuodj2对应单片机P10,P11,P12,P13端口,对应的电机端分别是右电机负极,右电机正极,左电机正极,左电机负极。

传递参数对应小车控制为:

cargo(0,1,1,0) 左右电机全部正转,小车前进

cargo(0,0,1,0) 左电机停止,右电机正转,小车左拐

cargo(0,1,0,0) 右电机停止,左电机正转,小车右拐

cargo(0,1,1,0) 左右电机全部反转,小车后退

cargo(0,0,0,0) 左右电机全部停止,小车停止

3 结束语

设计采用STC89C52单片机作为控制器,使用C语言编写相关程序,调试完成了无线小车自动测温功能。电源部分应用轻便的锂电池材料使得动力得到保障,由于红外遥控下的电机灵敏度略低,故在小车行进控制上略显不足,后期将主要改进小车温度远程传送的问题,总体上满足在校大学生初级阶段的学习需要。

参考文献:

[1]吴健,侯文,郑宾.基于STC89C52单片机的温度控制系统[J]. 电脑知识与技术,2011(04).

[2]周鹏.基于STC89C52单片机的多功能测温仪设计[J].微型机与应用,2013(01).

51单片机的C语言程序结构 篇9

2、c语言是由函数构成的,一个c语言程序可以包含多个函数,但是有且只能有一个主函数(函数名为main),主函数没有返回值和参数(void main(void))。c语言程序的执行总是从主函数main开始执行的,在主函数中,对各种子函数进行调用。

3、C语言中的函数必须遵循先声明后调用的方式。具体实现有两种方法:

  在主函数之前先声明一个函数,然后在主函数之后定义该函数的具体内容 在主函数之前直接定义函数。

4、文件包含处理

#include 这是一个预处理命令,在所有51单片机的C语言程序里都可以看到这个语句。这个预处理命令实现的功能是:把reg51.h这个文件里面的全部内容复制并包含到这个C语言程序中。所以这里的预处理命令虽然只是简单的一行,但C编译器在处理的时候却可能要处理几十乃至上百行的代码。头文件reg51.h文件里定义了各种端口、寄存器的符号,这样包含了该文件后,我们就可以直接使用P0这样的符号了(我们可以试着不包含这个文件,则编译的时候,会提示我们P0这些符号未被定义)。

该文件可以在kei c51的安装目录下的KeilC51INC文件夹里可以找到,用记事本或写字板可以打开该文件)。

5、在上一个实例中,在程序文件中,我们使用的程序结构并不是标准的程序结构。标准的程序结构应该如下:

预处理命令 #include

子函数声明 void delay(void);

主函数 void main(void){ 函数体...whlie(1){ 函数体...} }

51单片机论文 篇10

频率测量是电子学测量中最为基本的测量之一。由于频率信号抗干扰性强,易于传输,因此可以获得较高的测量精度。随着数字电子技术的发展,频率测量成为一项越来越普遍的工作,测频原理和测频方法的研究正受到越来越多的关注。

1.1频率计概述

数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。传统的频率计采用测频法测量频率,通常由组合电路和时序电路等大量的硬件电路组成,产品不但体积大,运行速度慢而且测量低频信号不准确。本次采用单片机技术设计一种数字显示的频率计,测量准确度高,响应速度快,体积小等优点。

1.2频率计发展与应用

在我国,单片机已不是一个陌生的名词,它的出现是近代计算机技术的里程碑事件。单片机作为最为典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。单片机已成为电子系统的中最普遍的应用。单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,它已成为在现代电子技术、计算机应用、网络、通信、自动控制与计量测试、数据采集与信号处理等技术中日益普及的一项新兴技术,应用范围十分广泛。其中以AT89S52为内核的单片机系列目前在世界上生产量最大,派生产品最多,基本可以满足大多数用户的需要。

武汉理工大学《单片机原理与应用》课程设计说明书 系统总体设计

2.1测频的原理

测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端。由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进行直接计数和显示。若在一定的时间间隔T内累计周期性的重复变化次数N,则频率的表达式为式:

Nfx=

TN频率计数器严格地按照f=公式进行测频。由于数字测量的离散性,被测频率在计数

T器中所记进的脉冲数可有正一个或负一个脉冲的1量化误差,在不计其他误差影响的情况下,测量精度将为:

(fA)1N

应当指出,测量频率时所产生的误差是由N和T俩个参数所决定的,一方面是单位时间内计数脉冲个数越多时,精度越高,另一方面T越稳定时,精度越高。为了增加单位时间内计数脉冲的个数,一方面可在输入端将被测信号倍频,另一方面可增加T来满足,为了增加T的稳定度,只需提高晶体振荡器的稳定度和分频电路的可靠性就能达到。

上述表明,在频率测量时,被测信号频率越高,测量精度越高。

2.2总体思路

频率计是我们经常会用到的实验仪器之一,频率的测量实际上就是在单位时间内对信号进行计数,计数值就是信号频率。本文介绍了一种基于单片机AT89S52 制作的频率计的设计方法,所制作的频率计测量比较高的频率采用外部十分频,测量较低频率值时采用单片机直接计数,不进行外部分频。该频率计实现10HZ~2MHZ的频率测量,而且可以实现量程自动切换功能,四位共阳极动态显示测量结果,可以测量正弦波、三角波及方波等各种波形的频率值。

2.3具体模块

根据上述系统分析,频率计系统设计共包括五大模块:单片机控制模块、电源模块、放大整形模块、分频模块及显示模块。各模块作用如下:

1、单片机控制模块:以AT89C51单片机为控制核心,来完成它待测信号的计数,译

武汉理工大学《单片机原理与应用》课程设计说明书

码,和显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。

2、电源模块:为整个系统提供合适又稳定的电源,主要为单片机、信号调理电路以及分频电路提供电源,电压要求稳定、噪声小及性价高的电源。

3、放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。

4、分频模块:考虑单片机外部计数,使用12 MHz时钟时,最大计数速率为500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。

5、显示模块:显示电路采用四位共阳极数码管动态显示,为了加大数码管的亮度,使用4个PNP三极管进行驱动,便于观测。

综合以上频率计系统设计有单片机控制模块、电源模块、放大整形模块、分频模块及显示模块等组成,频率计的总体设计框图如图2所示。

信号放大整形分频电路微控制器AT89S52数码管显示驱动电路5V电源

图2.1 频率计总体设计框图

武汉理工大学《单片机原理与应用》课程设计说明书 系统硬件设计

3.1 AT89C51主控制器模块

3.1.1 AT89C51的介绍

AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51引脚如下图所示。

图3.1 AT89C51引脚图

3.1.2 复位电路

复位电路是维持单片机最小系统运行的基本模块。复位电路如下图所示。

武汉理工大学《单片机原理与应用》课程设计说明书

图3.2 复位电路

高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计单片机实物具有11.0592M的晶振频率。AT89C51单片机最小系统如下图所示。

图3.3 单片机最小系统原理图

3.2 分频设计模块

分频电路用于扩展单片机频率测量范围,并实现单片机频率和周期测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。

本频率计的设计以AT89C51单片机为核心,利用他内部的定时/计数器完成待测信号

武汉理工大学《单片机原理与应用》课程设计说明书

周期/频率的测量。单片机AT89C51内部具有2个16位定时计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用12 MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最大计数速率为时钟频率的1/24(使用12 MHz时钟时,最大计数速率为500 kHz),因此采用74LS161进行外部十分频使测频范围达到2MHz。为了测量提高精度,当被测信号频率值较低时,直接使用单片机计数器计数测得频率值;当被测信号频率值较高时采用外部十分频后再计数测得频率值。这两种情况使用74LS151进行通道选择,由单片机先简单测得被测信号是高频信号还是低频信号,然后根据信号频率值的高低进行通道的相应导通,继而测得相应频率值。

3.3 显示模块

显示模块由频率值显示电路和量程转换指示电路组成。频率值显示电路采用四位共阳极数码管动态显示频率计被测数值,使用三极管8550进行驱动,使数码管亮度变亮,便于观察测量。量程转换指示电路由红、黄、绿三个LED分别指示Hz、KHz及MHz档,使读数简单可观。

3.3.1 数码管介绍

常见的数码管由七个条状和一个点状发光二极管管芯制成,叫七段数码管,根据其结构的不同,可分为共阳极数码管和共阴极数码管两种。根据管脚资料,可以判断使用的是何种接口类型。

LED数码管中各段发光二极管的伏安特性和普通二极管类似,只是正向压降较大,正向电阻也较大。在一定范围内,其正向电流与发光亮度成正比。由于常规的数码管起辉电流只有1~2 mA,最大极限电流也只有10~30 mA,所以它的输入端在5 V电源或高于TTL高电平(3.5 V)的电路信号相接时,一定要串加限流电阻,以免损坏器件。

3.3.2 频率值显示电路

数码管电路设计不加三极管驱动时,数码管显示数值看不清,不便于频率值的测量与调试。因此加入三极管8550进行驱动数码管。使用4位数码管进行频率值显示,如果选择共阴极数码管显示,则需要8个三极管进行驱动,而采用共阳极数码管则需要4个三极

武汉理工大学《单片机原理与应用》课程设计说明书

管驱动,为了节约成本,因此选用共阳极数码管进行动态显示,具体数码管设计电路如图所示。

图3.4 数码管显示电路

3.3.3 档位转换指示电路

根据设计要求,采用红、黄、绿三个LED分别指示Hz、KHz及MHz档,根据被测信号的频率值大小,可以自动切换量程单位,无需手动切换,便于测量和读数,简单方便。具体设计的档位转换LED指示电路如图所示。

图3.5 LED档位指示电路

武汉理工大学《单片机原理与应用》课程设计说明书 系统软件设计

系统软件设计主要采用模块化设计,叙述了各个模块的程序流程图,并介绍了软件Keil和Proteus的使用方法和调试仿真。

4.1 软件模块设计

系统软件设计采用模块化设计方法。整个系统由初始化模块,信号频率测量模块,自动量程转换和显示模块等模块组成。系统软件流程如图所示。

频率计开始工作或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP)、工作寄存器、中断控制和定时/计数器的工作方式。定时/计数器的工作首先被设置为计数器方式,即用来测量信号频率。

开始系统初始化频率测量频率是否超过1KHzY硬件十分频N计数器计数测频率值测量数据显示

图4.1 系统软件流程总图

首先定时/计数器的计数寄存器清0,运行控制位TR置1,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值(即测量频率的高量程)开始测量,计数闸门结束时TR清0,停止计数。计数寄存器中的数值经过数制转换程序从十六进制数转换为十进制数。判断该数的最高位,若该位不为0,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。定时/计数器的工作被设置为定时器方式,定时/计数器的计数寄存器清0,在判断待测信号的上跳沿到来后,运行控制位TR

武汉理工大学《单片机原理与应用》课程设计说明书

置为1,以单片机工作周期为单位进行计数,直至信号的下跳沿到来,运行控制位TR清0,停止计数。16位定时/计数器的最高计数值为65535,当待测信号的频率较低时,定时/计数器可以对被测信号直接计数,当被测信号的频率较高时,先由硬件十分频后再有定时/计数器对被测信号计数,加大测量的精度和范围。

4.2 应用软件简介

此设计需要在Keil软件平台上完成程序的调试,在Proteus软件平台上完成仿真显示。因此介绍如何使用Keil和Proteus进行软件的仿真。

4.2.1 Keil简介

Keil软件是目前最流行开发系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。而Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象[16]。

4.2.2 protues简介

protues是Labcenter公司出品的电路分析、实物仿真系统,而KEIL是目前世界上最好的51单片机汇编和C语言的集成开发环境。他支持汇编和C的混合编程,同时具备强大的软件仿真和硬件仿真功能[17]。Protues能够很方便的和KEIL、Matlab IDE等编译模拟软件结合。Proteus提供了大量的元件库有RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,它可以仿真单片机和周边设备,可以仿真51系列、AVR,PIC等常用的MCU,与keil和MPLAB不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真。

武汉理工大学《单片机原理与应用》课程设计说明书 系统仿真

5.1 系统总电路图

根据课程设计任务书的要求,本次课设设计的系统总电路图如下图所示。

图5.1 系统总电路图

5.2 系统仿真结果

系统仿真结果图如下图所示,由图中可以看出,LCD显示的值为900Hz,LED显示的值为886Hz,在误差允许的范围内,二者近似相等,符合课设任务书要求。

图5.2 系统仿真结果图

武汉理工大学《单片机原理与应用》课程设计说明书 系统硬件调试

6.1频率计的测试 如图6.1为频率计的测试实物拍摄图。其中函数信号发生器输出频率为1000Hz、幅值为5V的方波信号时,数字频率计测得的频率为996Hz,在误差允许的范围内,二者相等,符合课设任务书要求。

图6.1 频率计测试的实物拍摄图

6.2 低频方波信号发生器的测试

图6.2 低频信号发生器测试的实物拍摄图

武汉理工大学《单片机原理与应用》课程设计说明书

如图6.2为低频信号发生器测试的实物拍摄图。其中低频方波信号发生器输出频率的LED显示值为400Hz,经过示波器检测得到幅值为4.88V,频率为396.2Hz,在误差允许的范围内,二者相等,符合课设任务书要求。

6.3 低频方波信号发生器、数字频率计的综合测试

如图6.3为低频方波信号发生器检测频率计的实物拍摄图。其中低频方波信号发生器输出频率的LED显示值为300Hz,经过数字频率计检测得到频率的LCD显示值为297Hz,在误差允许的范围内,二者相等,符合课设任务书要求。

图6.3 低频方波信号发生器检测频率计的实物拍摄图

武汉理工大学《单片机原理与应用》课程设计说明书 心得体会

本次设计的过程和结果都给了我很多感触。初次拿到课程设计的题目时,只是对频率有一定的理解,至于怎么设计,几乎没有什么想法。在同学的指导和讲解下,对频率计的介绍有了一定的了解。后来通过不断的学习和查阅资料,终于清楚的知道了频率计的基本情况和设计的方案有了一定的理解。通过对各种性能的比较和所学知识能实现的状况,对本次课程设计进行了设计,最后进行的是课设报告的撰写。

通过本次设计,让我学会了从系统的高度来考虑设计的方方面面,对电路的设计和研究有了更深刻的体会;让我了解到软件的设计是建立在对硬件了解的基础上的,特别是对单片机的功能,引脚定义和内部结构要有较为详细的了解,此外对电路板中所用到的各个芯片的引脚和功能,也要进行了解;在编写程序时,进行模块化设计,以严谨的态度进行编程,避免出现低级错误,养成为程序添加注释和说明的好习惯,以便自己的修改和阅读者轻松的了解程序的各部分及整体的功能。

武汉理工大学《单片机原理与应用》课程设计说明书

参考文献

[1]李华.单片机实用接口技术[M].航空航天大学出版社.2006.[2]张鹏.王雪梅.单片机原理与应用实例教程[M].海军出版社.2007.[3]赫建国等.单片机在电子电路设计中的应用[M].清华大学出版社.2005.[4]康华光.电子技术基础(模拟部分)[M].高等教育出版社.1998. [5]吴清平.单片机原理与应用实例教程[M].海军出版社.2008.武汉理工大学《单片机原理与应用》课程设计说明书

#include #define uint unsigned int #define uchar unsigned char signed long count=0;int i=0, x=0;sbit RS=P1^0;sbit RW=P1^1;sbit E=P2^5;sbit dula=P2^6;sbit wela=P2^7;unsigned int shu[]={0x30,0x31,0x32,0x33,0x34,0X35,0x36,0x37,0x38,0x39};//数字的ASCII码放在数组中

uchar code table[]=“made by Li Houmin”;uchar num;

void delay(int count){ int p;

//延时

while(count--)for(p=0;p<110;p++);}

void write_com(unsigned int n){

RS=0;P0=n;delay(5);

//写指令

E=1;delay(5);

武汉理工大学《单片机原理与应用》课程设计说明书

E=0;}

void write_data(unsigned char t){ RS=1;P0=t;delay(5);

//写数据

E=1;delay(5);E=0;}

void time1_int(void)interrupt 3 { TH1=TL1=0;TR1=1;x++;}

void time0_int(void)interrupt 1 { TH0=(65535-50000)/256;//装初值,定时50ms TL0=(65535-50000)%256;i++;

if(i==20){ i=0;//1s时间已到

武汉理工大学《单片机原理与应用》课程设计说明书

TR1=0;//关闭计数器1 count=65536*x+256*TH1+TL1;x=0;//重新装初值 //重新启动计数器器1 TH1=TL1=0;TR1=1;} }

void show(){

write_com(0x85);write_data(shu[count/100000]);delay(5);

//在第一行第五列显示十万位

write_com(0x86);write_data(shu[(count/10000)%10]);delay(5);write_com(0x87);write_data(shu[(count/1000)%10]);delay(5);write_com(0x88);write_data(shu[(count/100)%10]);delay(5);write_com(0x89);write_data(shu[(count/10)%10]);delay(5);write_com(0x8a);write_data(shu[count%10]);delay(5);

//显示万位 //显示千位 //显示百位

//显示十位

//显示个位

write_com(0x83);write_data(0x66);delay(5);//显示频率表示的字符f write_com(0x84);write_data(0x3d);delay(5);//显示字符= write_com(0x8b);write_data(0x48);delay(5);//显示字母H write_com(0x8c);write_data(0x7a);delay(5);//显示字母z write_com(0x80+0x40);

}

void main()

//第二行显示

for(num=0;num<17;num++){ write_data(table[num]);delay(5);}

武汉理工大学《单片机原理与应用》课程设计说明书

{ TMOD=0x51;

//T1计数、T2定时,且都工作在方式1 TH1=0x00;TL1=0x00;TH0=(65535-50000)/256;//装初值,定时50ms TL0=(65535-50000)%256;EA=1;

ET0=1;ET1=1;

TR0=1;TR1=1;

dula=0;wela=0;RW=0;E=0;write_com(0x01);write_com(0x38);write_com(0x0c);write_com(0x06);while(1){ show();

delay(5);} }

//开总中断

//中断允许

//启动定时器

//显示清零,数据指针清零

//设置16X2显示5X7点阵,8位数据口

//设置开显示,显示光标且闪烁

上一篇:三方合伙购买合作协议书下一篇:老干部政治待遇包括