文档库 最新最全的文档下载
当前位置:文档库 › 基于某单片机的压力传感器实验

基于某单片机的压力传感器实验

基于某单片机的压力传感器实验
基于某单片机的压力传感器实验

湖南理工学院课程设计说明书

课程设计说明书题目:压力传感器设计

学院(系):

年级专业:电子信息科学与技术

学号:

学生姓名:

指导教师:

目录

摘要---------------------------- -------------------------------------------------------------------------2 关键字---------------- ----------------------------------------------------------------------------------2 第一章总体设计方案及模块划分---------------------------------------------------------------2

1.1总体设计方案--------------------------------------------------------------------------------3

1.2模块划分--------------------------------------------------------------------------------------4

1.3设计框图如下图所示-----------------------------------------------------------------------5 第二章各模块设计参数-------------------------------------------------------------------------------5

2.1传感器元件模块------------------------------------------------------------------------------5

2.2 A/D转换模块---------------------------------------------------------------------------------8

2.3控制器处理模块-----------------------------------------------------------------------------12 2.4 AD0809接口电路及LED接口电路------------------------------------------------------14

第三章压力传感器实验数据采集、显示及程序---------------------------------------------14

3.1数据采集及显示-----------------------------------------------------------------------------14

第四章心得体会--------------------------------------------------------------------------------------15

附录-----------------------------------------------------------------------------------------------------16 程序设计--------------------------------------------------------------------------------------16 参考文献资料---------------------------------------------------------------------------------25 实物图--------------------------------------------------------------------------------------25

摘要

此次设计是基于8051单片机的压力检测系统,简要介绍了压力传感器电路的工作原理和弱信号传感器电路以及A/D变换电路的工作原理,通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至8位A/D转换器ADC0808,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。

关键词:单片机压力传感器A/D变换电路LED显示器

第一章总体设计方案及模块划分

1.1 总体设计方案

本次设计是基于8051单片机的测量与显示。电路采用ADC0809模数转换电路,ADC0809是CMOS工艺,采用逐次逼近法的8位A/D转换芯片,片内有带锁存功能的8路模拟电子开关,先用ADC0809的转换器对各路电压值进行采样,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。本次设计是以单片机组成的压力测量,系统中必须有前向通道作为电信号的输入通道,用来采集输入信息。压力的测量,需要传感器,利用传感器将压力转换成电信号后,再经放大

并经A/D转换为数字量后才能由计算机进行有效处理。然后用LED进行显示。本设计的最终结果是,将软件下载到硬件上调试出来了需要显示的数据,当输入的模拟信号发生变化的时候,通过A/D转换后,LED将显示不同的数值。

1.2 模块划分

(1)传感器元件模块

传感器元件主要是对压力这样的物理量转变成电信号。

(2) A/D转换电路模块

A/D转换电路是将模拟量转换为数字量,便于单片机的处理。

(3)控制器处理模块

控制器是通过51系列单片机对数字信号,按照预定目的进行处理。

(4)显示与报告模块

显示与报告是对于最终输出结果进行直观的表达。

1.3设计框图如下图所示:

图1.3.1 设计框图

第二章各模块设计参数

2.1传感器元件模块

压力传感器是压力检测系统中的重要组成部分,由各种压力敏感元件将被测压力信号转换成容易测量的电信号作输出,给显示仪表显示压力值,或供控制和报警使用。力学传感器的种类繁多,如电阻应变片压力传感器、半导体应变片压力传感器、压阻式压力传感器、电感式压力传感器、电容式压力传感器谐振式压力传感器及电容式加速度传感器等。而电阻应变式传感器具有悠久的历史。由于它具有结构简单、体积小、使用方便、性能稳定、可靠、灵敏度高动态响应快、适合静态及动态测量、测量精度高等诸多优点,因此是目前应用最广泛的传感器之一,本实验采用电阻应变式传感器作为压力传感器。

压力传感器构成:

电阻应变式传感器由弹性元件和电阻应变片构成,当弹性元件感受到物理量时,其表面产生应变,粘贴在弹性元件表面的电阻应变片的电阻值将随着弹性元件的应变而相应变化。通过测量电阻应变片的电阻值变化,可以用来测量位移加速度、力、力矩、压力等各种参数。

压力传感器的工作原理:

本质上是惠斯通电桥,这里采用的是最常见的电阻应变片式的压力传感器。它得到广泛应用的原因是温度特性好,减小温度变化带来的误差。膜片上的压力使得电桥不平衡,从而产生一个差动的输出信号,这种结构的基本特性之一是它的差动输出电压U与偏置电压 U成正比关系,这种关系隐含压力测量精度直接决定偏置电源的容限值,当四个桥臂电阻达到相应的关系时,电桥输出为零,或则就有电压输出同时,它也能提供一种温度补偿最通用的方法。本实验研究压力传感器电路如图2.1.1所示,为压力传感器的电路,其由三部分组成(1)电源电路部分;(2)电桥电路部分;(3)放大电路部分。

图2.1.1压力传感器电路

如图示,传感器采用恒压源供电,CC V 为+15V ,经过23R 与40R 分压(电容

起滤波作用),点5、6、7三点处有相同电压1U :

)/(4023231R R V R U CC += (2.1.1)

根据上式,带入数据K R 123= ,K R 440= ,V V CC 15=,求得V U 31=。

经过电路电桥部分,简化如下图2.1.2

1U

UO

图2.1.2压力传感器电桥电路

设桥臂电阻分别为4321,,,R R R R ,

Ω=++===118))/(1/1/(112111031R R R R R R ,Ω===120'42R R R ,则当压

力传感器受力时,电阻变化对应的输出电压值为

()()

''11''O R

R U U R R R R R R ?=??+++,由于R ?<<1,则上式可化简为

()()'

'11'O R R U U R R R R ?=?++ (2.1.2)

带入电阻、电压值得

0.75'

O R U R ?=. (2.1.3) 最后经过放大部分,如图2.1.3,为压力传感器的微弱电压输

出的放大电路。分析它是一个差分放大电路,其放大倍数为

32200025002.43

R A R === ,那么放大后的电压值为 250'0.756253''O R R U R R ??=?=又SF R

R =?',选定材料,这里取410-=S ,代入式(4.1.3)得0.0625O U F =.因为A ∕D 转换器的最大输入电压

为5v ,所以该压力传感器的测量范围为0~80N 。

UO

UO

图2.1.3放大电路

2.2. A/D转换模块

模拟量输入通道的任务是将模拟量转换成数字量。能够完成这一任务的器件称之为模数转换器,简称A/D转换器。本次设计的中A/D转换器的任务是将放大器输出的模拟信号转换位数字量进行输出。

A/D转换电路的核心元件是ADC0808芯片

ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。2.2.1 ADC0809的内部逻辑结构

由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

图2.2.1

2.2.2 ADC0809的引脚结构

ADC0809各脚功能如下:

D7-D0:8位数字量输出引脚

IN0-IN7:8位模拟量输入引脚VCC:+5V工作电压

GND:地REF(+):参考电压正端

REF(-):参考电压负端

START:A/D转换启动信号输入端。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

ALE:地址锁存允许信号输入端,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。EOC:转换结束信号输出引脚。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。

A、B、C:地址输入线,用于选通IN0-IN7上的一路模拟量输入。

ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

2.2.3 ADC0809应用说明

1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。2)初始化时,使ST和OE信号全为低电平。

3)送要转换的哪一通道的地址到A,B,C端口上。

4)在ST端给出一个至少有100ns宽的正脉冲信号。

5)是否转换完毕,我们根据EOC信号来判断。

6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

(4)ADC0809工作时序图

在ALE=1期间,模拟开关的地址(ADDC、ADDB和ADDA)存入地址锁存。输入启动信号START的上升沿复位ADC0809,下降沿启动A/D转换。EOC为输出的转换结束信号,正在转换时为0,转换结束时为1。OE为输出允许控制端,在转换完成后用来打开输出三态门,以便从ADC0809输出这次转换的结果。

ADC0809的时序图如下图

2.2.4.接口电路的设计

实验电路及接线如下图示:

连线连接孔1 连接孔2

1 IN0 压力传感器输出

2 AD_CS CS2

图2.2.3 接线框图

图2.2.4 实验电路连线图

A/D转换器的结构及连线图如上图所示,AD0809的工作过程如下:首先用指令选择0809的一个模拟输入通道,当执行MOVX @DPTR,A时,产生一个启动信号给START引脚送入脉冲,开始对选中通道转换。当转换结束后发出结束信号,置EOC引脚信号为高电平,该信号可以作为中断申请信号,当读允许信号到,OE端有高电平,则可以读出转换的数字量,利用MOVX A,@DPTR把该通道转换结果读到累加器A中。转换电压为0—5V,调节桥路中的电位器,使其输出电压为0—5V,可以在较小范围内波动,当满量程输出时对应八个1的输出,由于前边计算的电压变化和电阻变化成正比关系,而且电阻变化和应变成正比,进而得出的压力和电压是成正比的。传感器桥路输出的电压经过比例变换后转换成二进制码的形式送入P0口。

其程序框图如下:

图五 主程序流程图

图六 中断子程序

2.3控制器处理模块

本实验采用8051单片机,其管脚图如下:

图4.4.1 8051管脚图

其管脚功能如下:

1.电源

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

(2)VSS - 接地端;

2.时钟

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

3.控制线(4根)

(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。

① ALE功能:用来锁存P0口送出的低8位地址。

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

(2)PSEN:外ROM读选通信号。

(3)RST/VPD:复位/备用电源。

① RST(Reset)功能:复位信号输入端。

② VPD功能:在Vcc掉电情况下,接备用电源。

(4)EA/Vpp:内外ROM选择/片内EPROM编程电源。

① EA功能:内外ROM选择端。

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

4.I/O线

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

2.4 AD0809接口电路及LED接口电路

第三章压力传感器实验数据采集及显示

3.1数据采集及显示

数据处理子程序是整个程序的核心。主要用来调整输入值系数,使输出满足量程要

求。另外完成A/D的采样结果从十六进制数向十进制数形式转化。系数转换在IN0输入的数最大为5V,要求压力200pa对应的是5V,将系数进行一定倍数的变换,并用小数点位置的变化体现这一过程。数制之间的转换:在二进制数制中,每向左移一位表示数增加两倍。要求压力80N对应的是5V,而压力与电压的变换是线性关系,对应AD转换器的输出为八个1,当有一定的压力值输入时,对应这个关系转化成相应的二进制代码送入P0口。然后再反过来应用这个变化关系,经最终得到的数值进行二进制到BCD码转化,然后逐位在LED数码管上显示。

数据采集用A/D0809芯片来完成,主要分为启动、读取数据、延时等待转换结束、读出转换结果、存入指定内存单元、继续转换(退出)几个步骤。ADC0809初始化后,就具有了将某一通道输入的0~5模拟信号转换成对应的数字量00H—FFH,然后再存入存储器的指定单元中。在控制方面有所区别。可以采用程序查询方式,延时等待方式和中断方式。

显示子程序是字符显示,首先调用事先编好数码管显示子程序。初始化命令,然后输出显示命令。在显示过程中一定要调用延时子程序。当输入通道采集了一个新的过程参数,当有压力信号输入时,调用显示子程序在数码管上显示。

第四章心得体会

传感器课程设计结束了,我的收获很多,我做的是基于AT89C51单片机的压力检测系统的设计,用到的主要芯片是AT89C51和ADC0808,实现的功能是将传感器采集到的模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。在显示的过程中通过键盘,向计算机操作可以控制显示需要的值。对于学习过单片机,因此对AT89C51比较熟悉,对ADC0808则比较陌生,从网上搜索的资料对我帮助很

大,遇到不懂的问题自己解决不了,就和大家一起讨论。此次课程设计使我更加了解C51程序的强大功能,以前学习单片机过程中得漏洞也得到了很好的修补,Keil和proteus的使用加深了我对着两种软件的理解程度,单片机控制数码管的显示时,尤其是多个时,要使用驱动电路。

课程设计暴露了我在平时学习中的不足,以及对知识缺乏融会贯通的能力,课程设计过程中,我们不断发现错误,不断修改,不断领悟,不断获取。实践出真知,自己亲自动手去做,才知道知识的匮乏!

附录:

程序设计

;

ADResult EQU 40H

RS BIT P2.0;定义LCM的接脚RS、R/W、Enable为P2.0、P2.1、P2.2

R_W BIT P2.1

ENABLE BIT P2.2

DB0_DB7 DATA P1 ;DB0-DB7的接脚为P1来控制,以方便程式的撰写与维护

;*------------------------------------------------------------------------

ORG 0000H ;通知编译器下面的程式由程式记忆体

;地址1000H开始存放

AJMP START ;跳到标记start处执行程式

ORG 000BH ;跳到中断服务程式

AJMP INSERS

ORG 0013H

AJMP INT

ORG 30H ;通知编译器下面的程式由程式记忆体地址0030H开始存入。

START: NOP

MOV TMOD,#0 ;初始化TO

MOV TL0,#0

MOV TH0,#0

SETB EA

SETB ET0

SETB TR0

SETB EX1

SETB IT1

MOV R5,#50 ;设定延时次数。

MOV SP,#60H ;设定MCS-51从内容资料记忆体地址61H开始存放堆栈资料。

CALL Initial ;调用启动LCM的子程式

CALL CLS ;调用清除显示器的子程式

MOV A,#10000000B ;将二进制10000000的值放入累加器内,代表设定DDRAM的地址为00H,

;即将光标移到第一行第一个列的位置上。

CALL Write_instruction ;调用写指令码子程式MOV DPTR,#LINE3 ;将第一行字串在程式记忆体中的起始地址存入DPTR

CALL STRING ;调用STRING子程式,将字串显示到LCM

MOV A,#11000010B ;将二进制11000000的值放入累加器内,代表设定DDRAM的地址为40H,

;即将光标移到第二行第三个列的位置上CALL Write_instruction ;调用写指令码子程式

MOV DPTR,#LINE4 ;将第二行字串在程式记忆体中

的起始

:地址存DPTR。

CALL STRING

CALL DELAY0

CALL CLS ;调用清除显示器的子程式

MOV A,#10000000B ;将二进制10000000的值放入累加器内,代表设定DDRAM的地址为00H,

;即将光标移到第一行第一个列的位置上。

CALL Write_instruction ;调用写指令码子程式。

MOV DPTR,#LINE1 ;将第一行字串在程式记忆体中的起始地址存入DPTR

CALL STRING ;调用STRING子程式,将字串显示到LCM

MOV A,#11000010B ;将二进制11000000的值放入累加器内,代表设定DDRAM的地址为40H,

;即将光标移到第二行第三个列的位置上CALL Write_instruction ;调用写指令码子程式。

CALL AD0809Read ;启动AD0809

;---------------------------------------------

LOOP: SJMP LOOP

SJMP LOOP;JNB IE1, LOOP ;查询等待

;CLR IE1

;SJMP INT

;--------------------------------------------

LINE1: DB " Pressure: ",00H ;在LCM第一行显示字串"LCD Testing___"

LINE2: DB "0123456789.",00H ;在LCM第二行显示压力数据,保留三位小数

LINE3: DB "Welcome To ",00H

LINE4: DB "LiRen College!",00H

;------------------------------------------------------------------

;ADC0809启动程序

;------------------------------------------------------------------

AD0809Read: MOV DPTR, #8000H

MOV A, #00

MOVX @DPTR,A ; 起动A/D

MOV A, #40h

DJNZ ACC, $ ; 延时> 100us

;**********************************************************************

;工程量代换:B存高八位,A存低八位

;程序中除以256相当于右移八位,即高八位变为整数位,低八位变为小数位

;最后结果为: B存整数部分,A存小数部分

;********************************************************************** DAIHUAN: MOV B,#200

MOV A,ADResult

MUL AB

MOV 51H,A ;小数部分

MOV 50H,B ;整数部分

RET

;------------------------------------------------------------------

;INT1查询服务子程式

;------------------------------------------------------------------

INT: MOV DPTR,#8000H

MOVX A, @DPTR ; 读入结果

CALL CLS

MOV A,#10000000B ;将二进制10000000的值放入累加器内,代表设定DDRAM的地址为00H,

单片机花样流水灯设计实验报告

**大学 物理学院 单片机花样流水灯设计实验 课题:花样流水灯设计 班级: 物理 *** 姓名: *** 学号: ……………

当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。 制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。 本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。 关键字:AT89C51 单片机流水灯数码管

1. 单片机及其发展概况 单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。 2. Protues仿真软件简介 Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。 【实验设计目标】 设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED 灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。

定时器实验报告

电子信息工程学系实验报告 课程名称:单片机原理及接口应用Array实验项目名称:51定时器实验实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP) 2、51单片机的相关寄存器设置 方式控制寄存器TMOD: TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。TMOD各位的含义如下: 1. 工作方式选择位M1、M0 3、51单片机定时器的工作过程(逻辑)方式一 方式1:当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。若T1工作于定时方式1,计数初值为a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。 4、51单片机的编程 使用MCS-51单片机的定时/计数器的步骤是: .设定TMOD,确定: 工作状态(用作定时器/计数器); 工作方式; 控制方式。 如:T1用于定时器、方式1,T0用于计数器、方式2,均用软件控制。则TMOD的值应为:0001 0110,即0x16。 .设置合适的计数初值,以产生期望的定时间隔。由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。 计数初值的计算方法如下,设晶振频率为fosc,则定时/计数器计数频率为fosc/12,定时/计数器的计数总次数T_all在方式0、方式1和方式2时分别为213 = 8192、216 = 65536和28 = 256,定时间隔为T,计数初值为a,则有 T = 12×(T_all – a)/fosc a = T_all – T×fosc/12 a = – T×fosc/12 (注意单位) THx = a / 256;TLx = a % 256; .确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1;EA = 1; 还需要编写中断服务函数: void T0_srv(void)interrupt 1 using 1 { TL0 = a % 256; TH0 = a / 256; 中断服务程序段} .启动定时器:TR0(TR1)= 1。 四、实验内容过程及结果分析: 利用protues仿真软件设计一个可以显示秒表时间的显示电路。利用实验板上的一位led数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1s。刚开始led数码管显示9,每过一秒数码管显示值减一,当显示到0时返回9,依此反复。然后设计00-59的两位秒表显示程序。 (1)实现个位秒表,9-0

定时器实验报告

定时器实验报告 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

电子信息工程学系实验报告课程名称:单片机原理及接口应用 实验项目名称:51定时器实验 实验时间: 班级:姓名:学号: 一、实验目的: 熟悉keil仿真软件、protues仿真软件的使用和单片机定时程序的编写。了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。 二、实验环境: 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 三、实验原理: 1、51单片机定时计数器的基本情况 8051型有两个十六位定时/计数器T0、T1,有四种工作方式。 MCS-51系列单片机的定时/计数器有几个相关的特殊功能寄存器: 方式控制寄存器TMOD; 加法计数寄存器TH0、TH1 (高八位);TL0、TL1 (低八位); 定时/计数到标志TF0、TF1(中断控制寄存器TCON) 定时/计数器启停控制位TR0、TR1(TCON) 定时/计数器中断允许位ET0、ET1(中断允许寄存IE) 定时/计数器中断优先级控制位PT0、PT1(中断优IP)

2 、51单片机的相关寄存器设置 方式控制寄存器TMOD: D7D6D5D4D3D2D1D0 GATE C/T M1 M0GATE C/T M1M0 TMOD的低四位为T0的方式字,高四位为T1的方式字。TMOD不能位寻址,必须整体赋值。 TMOD各位的含义如下: 1. 工作方式选择位M1、M0 M1、M0的状态决定定时器的工作方式: M1M0功能说明 0 0 1 10 1 1 方式0,为13位的定时/计数器 方式1,为16位的定时/计数器 方式2,为常数自动重装入的8位定时/计数器 方式3,T0分为两个8位定时/计数器, T1在该方式时停止 3、51单片机定时器的工作过程(逻辑)方式一方式1:当M1M0=01时,定时器工作于方式1。

压力传感器工作原理

电阻应变式压力传感器工作原理细解 2011-10-14 15:37元器件交易网 字号: 中心议题: 电阻应变式压力传感器工作原理 微压力传感器接口电路设计 微压力传感器接口系统的软件设计 微压力传感器接口电路测试与结果分析 解决方案: 电桥放大电路设计 AD7715接口电路设计 单片机接口电路设计 本文采用惠斯通电桥滤出微压力传感器输出的模拟变量,然后用INA118放大器将此信号放大,用7715A/D 进行模数转换,将转换完成的数字量经单片机处理,最后由LCD 将其显示,采用LM334 做的精密5 V 恒流源为电桥电路供电,完成了微压力传感器接口电路设计,既能保证检测的实时性,也能提高测量精度。 微压力传感器信号是控制器的前端,它在测试或控制系统中处于首位,对微压力传感器获取的信号能否进行准确地提取、处理是衡量一个系统可靠性的关键因素。后续接口电路主要指信号调节和转换电路,即能把传感元件输出的电信号转换为便于显示、记录、处理和控制的有用电信号的电路。由于用集成电路工艺制造出的压力传感器往往存在:零点输出和零点温漂,灵敏度温漂,输出信号非线性,输出信号幅值低或不标准化等问题。本文的研究工作,主要集中在以下几个方面:

(1)介绍微压力传感器接口电路总体方案设计、系统的组成和工作原理。 (2)系统的硬件设计,介绍主要硬件的选型及接口电路,包括A/D 转换电路、单片机接口电路、1602显示电路。 (3)对系统采用的软件设计进行研究,并简要阐述主要流程图,包括主程序、A/D 转换程序、1602显示程序。 1 电阻应变式压力传感器工作原理 电阻应变式压力传感器是由电阻应变片组成的测量电路和弹性敏感元件组合起来的传感器。当弹性敏感元件受到压力作用时,将产生应变,粘贴在表面的电阻应变片也会产生应变,表现为电阻值的变化。这样弹性体的变形转化为电阻应变片阻值的变化。把4 个电阻应变片按照桥路方式连接,两输入端施加一定的电压值,两输出端输出的共模电压随着桥路上电阻阻值的变化增加或者减小。一般这种变化的对应关系具有近似线性的关系。找到压力变化和输出共模电压变化的对应关系,就可以通过测量共模电压得到压力值。 当有压力时各桥臂的电阻状态都将改变,电桥的电压输出会有变化。 式中:Uo 为输出电压,Ui 为输入电压。 当输入电压一定且ΔRi <

单片机流水灯实验报告

流水灯实习报告 一、实验原理 单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。 二、硬件原理图 三、实验程序 ORG 0000H AJMP START ORG 001BH AJMP INT

ORG 0100H START:MOV SP,#60H MOV TMOD,#10H MOV TL1,#00H MOV TH1,#4CH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA SJMP $ INT:PUSH ACC PUSH PSW PUSH DPL PUSH DPH CLR TR1 MOV TL1,#B0H MOV TH1,#3CH SETB TR1 DJNZ R1,EXIT MOV R1,#20 MOV DPTR,#DATA

MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#8000H Movx @DPTR,A INC R0 ANL 00,#07H EXIT:POP DPH POP DPL POP PSW POP ACC RETI DATA:DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H END 四、实验功能 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去. 五、实验总结 通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论

单片机实验报告 计算器

单片机原理及其应用实验报告基于51单片机的简易计算器的设计 班级:12电子1班 姓名:金腾达 学号:1200401123 2015年1月6日

摘要 一个学期的51单片机的课程已经随着期末的到来落下了帷幕。“学以致用”不仅仅是一句口号更应该是践行。本设计秉承精简实用的原则,采用AT89C51单片机为控制核心,4X4矩阵键盘作为输入,LCD1602液晶作为输出组成实现了基于51单片机的简易计算器。计算器操作方式尽量模拟现实计算器的操作方式,带有基本的运算功能和连续运算能力。并提供了良好的显示方式,与传统的计算器相比,它能够实时显示当前运算过程和上一次的结果,更加方便用户记忆使用。本系统制作简单,经测试能达到题目要求。 关键词:简易计算器、单片机、AT89C51、LCD1602、矩阵键盘

目录 一、系统模块设计......................................................................................... 错误!未定义书签。 1.1 单片机最小系统 (1) 1.2 LCD1602液晶显示模块 (1) 1.3 矩阵按键模块 (2) 1.4 串口连接模块 (1) 二、C51程序设计 (2) 2.1 程序功能描述及设计思路 (2) 2.1.1按键服务函数 (2) 2.1.2 LCD驱动函数 (2) 2.1.3 结果显示函数 (2) 2.1.4状态机控制函数 (2) 2.1.5串口服务函数 (2) 2.2 程序流程图 (3) 2.2.1系统总框图 (3) 2.2.2计算器状态机流程转换图 (3) 三、测试方案与测试结果 (4) 3.1测试方案 (4) 3.3 测试结果及分析 (7) 4.3.1测试结果(仿真截图) (7) 4.3.2测试分析与结论 (7) 四、总结心得 (7) 五、思考题 (8) 附录1:整体电路原理图 (9) 附录2:部分程序源代码 (10)

单片机定时器实验

单片机定时器实验

实验三单片机内部定时器应用 实验目的 1、理解单片机内部定时器的工作原理及使用方法 2、了解单片机定时中断程序的编写和调试方法 3、掌握定时器的基本使用方法 实验仪器 单片机开发板、万利仿真机、稳压电源、计算机 实验原理 1、单片机定时器的工原理 MCS-51 单片机内部有两个16 位可编程的定时器/计数器T0 和T1。它们即可用作定时器方式,又可用作计数器方式。其中T0 由TH0 和TL0 计数器构成;T1 由TH1 和TL1 计数器构成。 工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。故系统晶振频率直接影响定时时间。如果晶振频率为

图4-8 定时控制寄存器数据格式编写程序控制这两个寄存器就可以控制定时器的运行方式。 单片机内部定时器/计数器的使用,简而概之:(1)如需用中断,则将EA和相关中断控制位置1;(2)根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。 2、用定时器编写一个秒计时器 假设系统使用的晶振频率为12MH Z,即每个机器周期为1us。如使用方式1,则定时时间最长是216×1us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。

51单片机压力传感器

目录 一、设计题目与设计任务....................... 错误!未定义书签。 1.设计题目:单片机压力测控系统设计........... 错误!未定义书签。 2.设计任务................................... 错误!未定义书签。 二、前言..................................... 错误!未定义书签。 三、主体设计................................. 错误!未定义书签。 1、系统设计.................................. 错误!未定义书签。 2、系统框图.................................. 错误!未定义书签。 3、设计思路.................................. 错误!未定义书签。 4、压力传感器和A/D转换芯片选择.............. 错误!未定义书签。(1)压力传感器1210—030 G—3 S ............. 错误!未定义书签。 (2)AD模数转换芯片ADC0809 ............... 错误!未定义书签。 四、参考文献................................. 错误!未定义书签。 五、结束语................................... 错误!未定义书签。 六、完整程序................................. 错误!未定义书签。 七、仿真结果................................. 错误!未定义书签。 八、程序流程图............................... 错误!未定义书签。

51单片机流水灯实验报告单片机实验报告流水灯

51单片机流水灯试验 一、实验目的 1.了解51单片机的引脚结构。 2.根据所学汇编语言编写代码实现LED灯的流水功能。 3.利用开发板下载hex文件后验证功能。 二、实验器材 个人电脑,80c51单片机,开发板 三、实验原理 单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。 A寄存器的位经过rr a之后转换如下所示: 然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。

四、实验电路图 五、通过仿真实验正确性

代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2 RET End 实验结果: 六、实验参考程序 #include #define uchar unsigned char #define uint unsigned int uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

sbit P00=P0^0; sbit P01=P0^1; void delay(uchar t) { uchar i,j; for(i=0;i

单片机实验报告

单片机原理及接口技术 学院:光电信息科学与技术学院班级:——实验报告册 083-1 实验一系统认识实验 1.1 实验目的 1. 学习keil c51集成开发环境的操作。 2. 熟悉td-51系统板的结构和使用。 1.2实验仪器 pc 机一台,td-nmc+教学实验系统。 1.3实验内容 1. 编写实验程序,将00h—0fh共16个数写入单片机内部 ram 的30h—3fh空间。 2.编写实验程序,将00h到0fh共16个数写入单片机外部ram的1000h到100fh空间。 1.4 源程序 https://www.wendangku.net/doc/823959448.html, 0000h mov r1,#30h mov r2, #10h mov a, #00h mov @r1, a inc r1 inc a djnz r2,loop sjmp $ end 2. org 0000h mov dptr, #1000h mov r2, #10h mov a, #00h movx @dptr, a inc dptr inc a djnz r2,loop sjmp $ end loop: loop: 1.5 实验步骤 1.创建 keil c51 应用程序 (1)运行 keil c51 软件,进入 keil c51 集成开发环境。 - 3 -(2)选择工具栏的 project 选项,弹出下拉菜单,选择 newproject 命令,建立一个新的μvision2 工程。选择工程目录并输入文件名 asm1 后,单击保存。 (3)工程建立完毕后,弹出器件选择窗口,选择 sst 公司的 sst89e554rc。(4)为工程添加程序文件。选择工具栏的 file 选项,在弹出的下拉菜单中选择 new 目录。 (5)输入程序,将 text1 保存成asm1.asm。 (6)将asm1.asm源程序添加到 asm1.uv2 工程中,构成一个完整的工程项目。 2.编译、链接程序文件(1)设置编译、链接环境 (2)点击编译、链接程序命令,此时会在 output window 信息输出窗口输出相关信息。 3.调试仿真程序 (1)将光标移到 sjmp $语句行,在此行设置断点。 (2)运行实验程序,当程序遇到断点后,停止运行,观察存储器中的内容,验证程序功能。 1.6 实验结果. 2. 4 实验二查表程序设计实验 2.1实验目的 学习查表程序的设计方法,熟悉 51 的指令系统。 2.2实验设备 pc 机一台,td-nmc+教学实验系统 2.3实验内容 1.通过查表的方法将 16 进制数转换为 ascii 码; 2.通过查表的方法实现y=x2,其中x为0—9的十进制数,以bcd码表示,结果仍以bcd 码形式输出。

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

C51单片机定时器及数码管控制实验报告

理工大学信息工程与自动化学院学生实验报告 (201 — 201学年第1 学期) 课程名称:单片机技术

一、实验目的 1.掌握定时器T0、T1 的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 2.掌握LED 数码管动态显示程序设计方法。 二、实验原理 1.89C51 单片机有五个中断源(89C52 有六个),分别是外部中断请求0、外部中断请求1、定时器/计数器0 溢出中断请求、定时器/计数器0 溢出中断请求及串行口中断请求。每个中断源都对应一个中断请求位,它们设置在特殊功能寄存器TCON 和SCON 中。当中断源请求中断时,相应标志分别由TCON 和SCON 的相应位来锁寄。五个中断源有二个中断优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。在

同一优先级别中,靠部的查询逻辑来确定响应顺序。不同的中断源有不同的中断矢量地址。 中断的控制用四个特殊功能寄存器IE、IP、TCON (用六位)和SCON(用二位),分别用于控制中断的类型、中断的开/关和各种中断源的优先级别。中断程序由中断控制程序(主程序)和中断服务程序两部分组成:1)中断控制程序用于实现对中断的控制; 2)中断服务程序用于完成中断源所要求的中断处理的各种操作。 C51 的中断函数必须通过interrupt m 进行修饰。在C51 程序设计中,当函数定义时用了interrupt m 修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按MCS-51 系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m 的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 89C51 单片机设置了两个可编程的16 位定时器T0 和T1,通过编程,可以设定为定时器和外部计数方式。T1 还可以作为其串行口的波特率发生器。

单片机定时器实验报告

( 2009 —2010 学年第二学期) 课程名称:单片机开课实验室: 2010年 5月14日 一.实验目的: 掌握定时器T0、T1的方式选择和编程方法,了解中断服务程序的设计方法,学会实时程序的调试技巧。 二.实验原理: MCS-51单片机内设置了两个可编程的16位定时器T0和T1,通过编程,可以设定为定时器和外部计数方式。T1还可以作为其串行口的波特率发生器。 定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由TH1和TL1构成,特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行。定时器的中断由中断允许寄存器IE,中断优先权寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH。 定时器的编程包括: 1)置工作方式。 2)置计数初值。 3)中断设置。 4)启动定时器。 定时器/计数器由四种工作方式,所用的计数位数不同,因此,定时计数常数也就不同。 在编写中断服务程序时,应该清楚中断响应过程:CPU执行中断服务程序之前,自动

将程序计数器PC内容(即断点地址)压入堆栈保护(但不保护状态寄存器PSW,更不保护累加器A和其它寄存器内容),然后将对应的中断矢量装入程序计数器PC使程序转向该中断矢量地址单元中以执行中断服务程序。定时器T0和T1对应的中断矢量地址分别为000BH 和001BH。 中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作一方面告诉中断系统该中断服务程序已经执行完毕,另一方面把原来压入堆栈保护的断点地址从栈顶弹出,装入到程序计数器PC,使程序返回到被到中断的程序断点处,以便继续执行。 因此,我们在编写中断服务程序时注意。 1.在中断矢量地址单元放一条无条件转移指令,使中断服务程序可以灵活地安排在64K 字节程序存储器的任何空间。 2.在中断服务程序中应特别注意用软件保护现场,以免中断返回后,丢失原寄存器、累加器的信息。 3.若要使执行的当前中断程序禁止更高优先级中断,可以先用软件关闭CPU中断,或禁止某中断源中断,在返回前再开放中断。 三.实验内容: 编写并调试一个程序,用AT89C51的T0工作方式1产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1;秒计数到60时,自动从0开始。实验电路原理如图1所示。 计算初值公式 定时模式1 th0=(216-定时时间) /256 tl0=(216-定时时间) mod 256

单片机中断实验报告

人的一生要疯狂一次,无论是为一个人,一段情,一段旅途,或一个梦想 ------- 屠呦呦 实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1;

void timer1_init() { TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int sbit D1=P2^0; //将D1位定义为P2.0引脚 uint counter=0; unsigned int unit=0,decade=0,avs=0;//time=0;

嵌入式系统流水灯,按键,定时器实验报告

嵌入式系统应用 实验报告 姓名: 学号: 学院: 专业: 班级: 指导教师:

实验1、流水灯实验 1.1实验要求 编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。 1.2原理分析 实验主要考察对STM32F10X系列单片机GPIO的输出操作。 参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将GPIO配置为推挽输出模式。 由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。反之,LED灯熄灭。 1.3程序分析 软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。 GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置GPIO输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻转速度:

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。 初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 1.3实验结果

单片机计数器实验报告

单片机实验报告 (计数器) 学院: 物理与机电工程学院专业: 电子科学与技术班级: 2013级2班 学号: 201310530231 姓名: xxx 指导老师: xx

1.实验目的: 1.学会设置计数器相关参数 2.学会使用计数器控制LED的明灭 3.学会使用计数中断 4.2.试验环境及设备 设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。 编程:在设置完相关参数后再等待计数中断的出现,当计数中断出现后即马上跳到相应中断服务子程序,执行想要得到的服务3.实验内容 内容:用计数器控制LED的明灭 步骤: 1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。 2、连线:用导线将试验箱上的的IO1连接输出端子K1,连接好仿真器。 3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,按计数按钮,两次后运行程序到断点 处,观察窗口的数值与开关的对应关系。 程序:

ORG 0000H AJMP MAIN ORG 000BH LJMP TIME ORG 0030H MAIN: MOV SP,#80H MOV TMOD,#06H MOV TH0,#0FBH MOV TL0,#0FBH SETB ET0 SETB EA SETB TR0 SJMP $ TIME: CPL P0,0 RETI END 4.实验结果: 如上程序运行结果:调试运行时,按五下计数按钮后,LED亮,再按五下后,LED灭。 5.实验结论

单片机中断实验报告

实验三定时器中断实验 一、实验目的 1、掌握51单片机定时器基本知识; 2、掌握定时器的基本编程方法; 3、学会使用定时器中断。 二、实验内容 1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。 三、实验设备 PC 机一台、单片机实验箱 主要器件:AT89C52、7SEG-BCD、 四、实验步骤 1、使用Proteus设计仿真原理图; 2、使用Keil设计程序; 3、联合调试仿真。 五、实验流程图 六、实验程序与结果 #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer1_init() 开始 设置显示初值启动定时器 判断是否到59 继续 是 否

{ TMOD=0x10;//将定时器1设置为工作方式1 TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500 //(1/500)s/(1/3000000)s=6000 TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000 EA=1; ET1=1; TR1=1; } void main() { timer1_init(); while(1); } void timer1() interrupt 3 { TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256; F=~F;//每次进入中断P1.1口取反 } #include #define uint unsigned int #define uchar unsigned char sbit F=P2^1; void timer0_init() {TMOD=0x01;//将定时器0设置为工作方式1 TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us //500us/6us=83.3333 TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83 EA=1; ET0=1; TR0=1; }void main() { timer0_init(); while(1); } void timer0() interrupt 1 { TH0=(65536-83)/256;//每次进入中断,重装初值 TL0=(65536-83)%256; F=~F;//每次进入中断P1.1口取反,表示定时时间到 } #include // 包含51单片机寄存器定义的头文件 #define seg_data P1 #define seg_data2 P3 #define uint unsigned int

51单片机压力传感器

目录 一、设计题目与设计任务 (1) 1.设计题目:单片机压力测控系统设计 (1) 2.设计任务 (1) 二、前言 (1) 三、主体设计 (1) 1、系统设计 (1) 2、系统框图 (1) 3、设计思路 (2) 4、压力传感器和A/D转换芯片选择 (2) (1)压力传感器1210—030 G—3 S (2) (2)AD模数转换芯片ADC0809 (3) 四、参考文献 (4) 五、结束语 (4) 六、完整程序 (5) 七、仿真结果 (7) 八、程序流程图 (9)

一、设计题目与设计任务 1.设计题目:单片机压力测控系统设计 2.设计任务 1、本设计是微机控制的制氧机压力测控系统。单片机系统通过压力传感器和检测比较器测得气缸内压力达到某一上限值(176 kPa)和下限值(64 kPa)时,单片机系统控制执行相应的动作(达到上限值时打开放气阀放气,达到下限值关闭放气阀进行充气)。如此反复循环,不断将氧气提供给需氧者。在此过程中若充气或放气10 s仍达不到设定值(176 kPa和64 kPa)则进行光报警。 2、写出压力测量过程,绘制压力控制系统结构图。 3、(1)系统硬件电路设计。 单片机采用89S52;选择适合上述测量范围的压力传感器,设计数据采集及信号调理电路,设计键盘显示电路及报警电路。 (2)编制压力测量程序。 二、前言 本设计为基于AT89S52单片机的气缸压力测量与控制系统,压力传感器选择1210—030G—3S,能够在0~207kPa范围内有效测量气缸供氧系统的压力,并进行实时压力(LED)显示。单片机控制部分实现当压力超出上限值176kPa时,放气阀打开进行放气,当压力低于下限值64kPa时,放气阀关闭,气缸充气;压力在正常范围(64~176kPa)时,压力改变不影响放气阀的状态。报警功能实现当压力超出设定的压力范围(64~176kPa)10S时,发光二极管点亮进行报警。 关键词:AT89S52单片机、1210—030G—3S型压力传感器、LED显示、报警。 三、主体设计 1、系统设计 考虑到过程控制系统的一般组成及本次设计的任务要求,本设计主要由以下几部分组成:被控对象(气缸及附带的进气阀和放气阀)、压力传感器FT、A/D转换(ADC0808)、AT89S52单片机、LED显示、报警电路和放气阀驱动电路。 2、系统框图

左右来回循环的流水灯实验报告

青 岛 科 技 大 学 微机原理与接口技术综合课程设计(报告) 题 目 __________________________________ 指导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________院(部)____________________________专业________________ 班 ______年 ___月 ___日 直流电机控制综合实验 周艳平 宋雪英 01 信息科学技术学院 计算机科学与技术0961 2012 12 27

摘要 (2) 1、单片机概述 (2) 2、仿真软件介绍 (2) 3、需求分析 (2) 一、课程设计目的 (3) 二、课程设计要求 (3) 三、实验内容 (3) 1、设计任务与要求 (3) 2、系统分析 (3) 1).硬件电路设计(画出原理图、接线图) (4) 2)软件框图 (5) 3、用keil建项目流程 (7) 4、程序清单 (7) 4、系统调试 (9) 四、设计总结(结论) (10)

摘要 近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到广泛的应用、成为现代电子系统中最重要的智能化的核心部件。而AT89C51就是其中一种,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMO8位微处理器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。本课程设计介绍一种LED小灯控制系统的设计方法,以单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。能够通过按键控制8个LED小灯从左到右依次点亮。 关键字:单片机、LED流水灯 1、单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处 理器、存储器和I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合, 便可成为一个单片机控制系统。 单片机经过1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它 们的CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。 2、仿真软件介绍 (1).Keil uv3 运行Keil uv3 新建工程:菜单“Preject->New Preject”,保存为*.uv2,选择芯片型号,copy否 新建文件:菜单“File->New”,保存为*.c,编写程序 将源文件添加到工程:在左侧project workspace的source group1点右键选择addfile加入*.c 设置工程:点菜单栏上的,选Target,设晶振值;选Output,点create Hex file以生成少些文件;选Debug,选择软件仿真(simulator)或硬件仿真(Keil Monitor)方式。 编译链接:点菜单栏上的进行编译,或点菜单栏上的进行编译链接,或点菜单栏上的进行重新编译链接,或点菜单栏上的停止编译。 编译链接后生成*.hex文件,可烧写到单片机。 (2).Proteus 使用Proteus仿真 点击单片机,在Program Files处选择*.hex文件,OK,进行仿真 RESPACK--8 排阻,就是好多电阻连载一起,有一个公共端,1端为公共端接VCC(上拉)或地(下拉) 一般接在51单片机P0口,因P0口内没有上拉电阻,不能输出高电平,所以要接上拉电阻。 3、需求分析

相关文档
相关文档 最新文档