51单片机毕设参考文献

51单片机毕设参考文献
51单片机毕设参考文献

基于单片机的大棚温湿度控制系统设计

发布: 2011-9-1 | 作者: —— | 来源:caiminghao| 查看: 530次| 用户关注:

摘要:针对研究蔬菜大棚智能温湿度控制,设计了一种基于计算机自动控制的智能蔬菜大棚温湿度控制系统。详细阐述了该系统的温湿度采集、温湿度显示、控制系统等系统软硬件的设计思想,以DS18B20和HM1500LF作为温湿度传感器,以AT89S52单片机为系统核心,最后利用DELPHI软件进行系统仿真。该研究设计的蔬菜大棚智能温湿度控制系统人机界面良好,操作简单方便,自动化程度高,造价低廉,具有良好的应用前景和推广价值。关键词:温度采

摘要:针对研究蔬菜大棚智能温湿度控制,设计了一种基于计算机自动控制的智能蔬菜大棚温湿度控制系统。详细阐述了该系统的温湿度采集、温湿度显示、控制系统等系统软硬件的设计思想,以DS18B20和HM1500LF作为温湿度传感器,以AT89S52单片机为系统核心,最后利用DELPHI软件进行系统仿真。该研究设计的蔬菜大棚智能温湿度控制系统人机界面良好,操作简单方便,自动化程度高,造价低廉,具有良好的应用前景和推广价值。

关键词:温度采集;湿度采集;LCD显示;单片机

0 引言

植物的生长都是在一定的环境中进行的,在生长过程中受到环境中各种因素的影响,其中影响最大的是温度和湿度。若昼夜的温度和湿度变化很大,其对植物生长极为不利。因此必须对温度和湿度进行监测和控制,使其适合植物的生长,以提高其产量和质量。

本系统就是针对大棚内温度、湿度,研究单片机控制的温室大棚自动控制,综合考虑系统的精度、效率以及经济性要求多方面因素之后,设计一种基于计算机自动控制的大棚温湿度控制系统。

本系统实现的蔬菜大棚温湿度控制系统的目标功能如下:

(1)系统能对大棚环境温湿度进行采集和显示(现场观温、湿度,软件记录)。

(2)能通过上位机端远程设定蔬菜的生长期适宜温湿度。由主控机统一设置系统时间和温度湿度修正值。

(3)当大棚的环境温湿度参数超过设定的上下限值时控制相应的系统启动。

(4)可实时显示当前温度、时间、报警阈值等信息,并可查询各时间段的温湿度情况,并加以控制。

1 系统各组成模块

本系统通过温度传感器DS18B20采集温度,HM1500LF采集湿度,经过含有单片机的检测系统的进一步分析处理,通过通信线路将信息上行到PC机,在PC机上可对温湿度信号进行任何分析、处理。用户可以通过下位机中的键盘输入温湿度的上下限值和预置值,也可以通过上位机进行输入,从而实现上位机对大棚内作物生长的远程控制。如果环境的实时参数超越上下限值,系统自动启动执行机构调节大棚内温度和湿度状态,直到温湿度状态处于上下限值内为止。如果有预置初值,且与当前状态不相等时,系统也会启动执行机构实时动态调节温湿度状态,直到所处的平衡状态与预置值相等为止。

上位机即PC机使用DELPHI软件编写的一个数据库管理系统,可直接设置温度的上下限值和读取下位机的数据,并对下位机内的控制设备进行操作,调节大棚内温湿度状态。形成作物生长的走势图,从而通过生长走势图得出适合各种作物生长的最佳环境参数条件,为今后的温室种植提供参考。

上下位机之间通过符合串行总线RS 232标准的通信通道以事先约定的协议进行通信。系统原理图如图1所示。

2 总体电路及工作过程说明

使用智能温度传感器DS18B20进行组网来测量各个采集点的温度,HM1500LF来采集湿度,单片机AT89S52作为该系统的处理核心,单片机根据温湿度传感器检测到的数据,把各个测量点的温湿度存储并显示在LCD液晶显示器上,同时显示在PC机上。

3 数据采集模块

本模块主要采用DS18B20采集温度,HM1500LF采集湿度,由单片机AT89S52作总的控制并显示与传输。具体原理图如图2所示。

基于单片机的温湿度检测与控制系统研究

度则是系统常需要测量、控制和保持的量。文中介绍了一种

基于ATA9C51的单片机的温度和湿度检测与控制的方案,针

对被测对象的温度与湿度在不同变化范围需要不同的PID参

数的特点,根据检测温度和湿度自动选择合适的一组PID参

数进行控制的方案,整个设计简明、清晰。

关键词:单片机AT89C51; DS18B20温度传感器; 检测与控

制; PID; 看门狗

引言

温、湿度是工业生产中常见的被控参数,温度和湿度己不再是相互独立的量,而应在系统集成中综合考虑。利用单片机对温、湿度控制,具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。本文介绍了利用AT89C51单片机进行温度和湿度的检测及其控制的智能化方法。

1系统的硬件结构及工作原理

工业中很多装置温度和湿度需要保持在一个既定的温度和湿度值上,本文针对实际需要,设计

了一套温度、湿度闭环检测与控制系统,系统整个硬件结构如图1:

图1 系统硬件结构图

系统的工作中,经过温度、湿度检测及变换电路把被测对象的温度、湿度转换成电压信号,该

电压信号经A/D变换器转换为数字信号后送入单片机中,与给定的对应所要控制的多组温度、

湿度值进行比较,找出现温度、湿度值所在范围,根据单片机AT89C51中设置的PID参数,输

出相应温度、湿度初值对应的受控对象电机的转速初值,经D/A转换器转换为模拟电压,通过

信号转化为变频器的频率,控制变频调速装置,带动被控对象,并且把被控对象的转速经变换

电路和A/D转换器反馈到单片机中,与输出的转速初值进行比较,其偏差被PID程序计算出后

重新输出,在规定的时间内循环,从而实现对温度、湿度的控制[1],直到达到在误差允许的范

围内输出的转速值与转速初值相等。对于欠温度,控制加热功率;对于过温度,控制吹风冷却

装置,对于湿度则控制一个加湿、去湿装置[2]。

2硬件系统的组成

2.1温度传感器的选择[3]

本系统采用美国DALLAS公司生产的单总线数字式温度传感器DS18B20,由于具有结构简单不需要外接电路,可用一根I/0数据线既供电又传输数据,并且具有体积小,分辨率高,转换快等优点,被广泛用于测量和控制温度的地方。

2.2湿度传感器的选择

本系统采用的是电容式湿敏传感器HS1101,电容式湿度传感器的感湿机理是当基于电极间的感湿材料吸附环境中的水分时,其介电常数也随之变化,其电容量与环境中水蒸汽相对压(PV/P}关系可由下式表示:

电容式湿度传感器实用化程度高,工艺成熟,性能稳定,普遍用于各种情况下湿度测量。

2.3主控模块单片机的选择[4]

本系统单片机选用ATMEL公司的闪速存储器(flash ROM)型单片机芯片AT89C51。AT89C51是ATMEL公司的新一代8位的一片机产品,带有4KROM、128BRAM,最大工作频率24MHZ,同时,具有32条输入输出线,16位定时/计数器,5个中断源,一个串行口;它具有集成度高、系统结构简单,体积小可靠性高,处理功能强,速度快等特点。

2.4A/D芯片的选择

本系统采用Ti公司的串行A/D芯片TLC2543,A/D转换电路作为TLC2543与单片机的接口电路,它是一种利用12位开关电容逐次逼近模拟信号的模数转换器,片内有14位通道。具有12位分辨率A/D转换口,在标定转换温度范围内转换时间为10us,输出数据长度可编程,TLC2543自带采样、保持电路。所以输出引脚可以直接与单片机的并行I/0口连接。

2.5D/A芯片的选择

本系统采用带有缓冲基准输入的10位电压输出数据的模拟转换器TLC5615,D/A转换电路作为TLC5615与单片机的接口电路,它具有基准电压两倍的输出电压范围。通过3线串行总线和工业标准的微处理器和微控制器接口,接收16位数据字以产生模拟输出。

2.6报警电路简介

本设计的报警电路由一个自我震荡刑的蜂鸣器,只要在蜂鸣器两端加上超过3v的电压,蜂鸣器就会叫个不停和一个发光二极管组成。设计中蜂鸣器是通过ULN 2003达林顿管芯片电流放大IC 来控制。在要求的温度、湿度达到一定的上界或者下界时,报警电路开始工作。

2.7温度、湿度显示电路

本设计中用4个LED组成显示单元,采用静态显示方式。如图2所示,

图2 温、湿度显示模块图

AT89C51通过2-4译码器对4只MC14495芯片进行控制。MC14495的输出端与LED数码管的7段a,b,c,d,e,f,g相连。MC14495芯片的作用是输入被显示字符的二进制码(或BCD码),井把他自动转换成相应的字形码,送给LED显示。

图2中,4个输出端口用于输出显示字符的二进制码(或BCD码)。1个输出端口用于控制2-4

译码器工作,还有2个输出口经译码器输出后控制哪一片MC14495显示输出,从而直观的看出温度、湿度经过闭环调节之后的效果值。如我们假定温度上限、下限为50,0,湿度为70,30。我们可根据现场检测直观的显示温、湿度值,超出系统将做报警处理。程序简单思路如下[5]:

#include

Void main( ){ int a,b,c,d,e,f,g,g;//设置检测点a,b用来检测温度上下限,c,d检测湿度上下限,e,f,g,h 对应显示温度与湿度的测量值。

If(a>0&&a<5&&c>3&&c<7)//如果温度、湿度都在我们设定的范围内,正常显示。

a=e;b=f;c=g;d=h;//把检测对应连接显示接口,显示温度、湿度值。

else

报警}

3系统软件设计

3.1数据采集

温度数据的采集经过DS18B20独特的功能,直接将采集的数据自动转化为数字量传入单片机,湿度数据是由传感器测得现场湿度信号经变送器转换成0~5V的直流信号,送到A/D模数转换器转换成数字量后,再送入单片机进行数据处理,处理后的数据进入PID算法比较做出控制量的选择。

3.2数字滤波

当采样过程完成后,要对采样所得的数据进行数字滤波。数字滤波程序用于滤去来自控制现场对采样值的干扰,数字滤波的算法很多,这里采用中值滤波。中值滤波原理很简单,就是对采样过程中的n个(一般是3个)采样值进行比较,取中间值放入指定的存储单元。

3.3单片机抗干扰电路的设计

在抗干扰方面的许多技术,如设计软件陷阱、加硬件看门狗电路等。若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。“看门狗”技术大大提高了系统可靠性,本系统“看门狗”让系统运行更加稳定可靠。

3.4系统的PID控制算法[6]

控制算法是控制系统的核心部分,是控制系统能否稳定和调节品质是否优良的关键。本系统是一个闭环控制的单片机直接控制系统(DDC),它的工作原理是按照一定的采样周期T去对被控量(温度、湿度)进行采样,并经过控制算法算出控制量,以此控制量作为输出控制执行器,实现对被控对象的控制,采用单片机作为控制器核心所构成的自动控制系统,软件算法流程图如图3。闭环温度、湿度控制程序,由求偏差E和偏差变化率Ec,数据量化算法、增量PID控制算法等程序模块组成。单片机首先读取数字化的实际转速,并与设定的转速相比较,得出差值,单片机再根据差值,调用PID程序,计算并输出模拟电压控制变频调速器,调节被控对象电机转速的大小,同时,寻找最优条件,改变PID参数。

PID的计算公式为:

U(K)=U(K-1)+K P[E(K)-E(K-1)]+K I×E(K)+K D[E(K)-2 E(K-1)+ E(K-2)]

= U(K-1)+P P+P I+P D (2)

K I=T/T K (3)

K D=T d/T(4)

式中:K P为比例系数;T为采样周期;T K为积分时间;T d为微分时间。

根据公式进行编程,相应的程序流程如图4

图3 软件算法流程图

图4 PID算法子程序流程图4 结束语

该闭环控制系统实现了AT89C51单片机为核心,通过PID算法达到对温度、湿度的检测及其控制,运行可靠,操作简单,精度高,响应速度快,可以满足温、湿度的控制。同时,通过LED 数码管直观的显示通过控制系统后的温、湿度值,当出现异常现象时,通过报警装置发出警告,及时得到处理,从而满足现场需要,具有广泛的应用前景。

本文创新点:采用单片机AT89C51性价比高,温度DS18B20转化温度简洁,整个闭环控制系统通过PID设置的参数,根据单片机自动修正启动温、湿度控制装置,调整满足现场需要,同时可通过数码显示,清楚的观测到温、湿度值,超过限定值进行报警处理。此套装置实施方便、可靠。

参考文献:

[1]刘攀,俞杰.基于单片机的温度测控系统[J]. 兰州交通大学学报,2005,6-12: 103-106.

[2]夏晓南.基于单片机的温箱温度和湿度的控制[J].现代电子技术,2005,215-24: 117-118.

[3]赵娜,赵刚.基于51单片机的温度测量系统[J].微计算机信息,2007,23-1:146-148.

[4]冯建华,赵亮.单片机应用系统设计与产品开发[M].北京:人民邮电出版社2004

[5]谭浩强.C语言程序设计[M].北京:清华大学出版社1999

[6]王德玉等.智能井控系统的控制研究[J].西南石油大学学报,2006,28-4:97-100.

引言

随着电力系统规模越来越大、电压等级越来越高,供电可靠性也要求更加严格。供配电设备环境的温度、湿度是影响设备运行的重要因素。温度过高会加速仪器设备元器件老化,缩短其使用寿命,甚至直接导致设备损坏;低温、潮湿,设备表面产生凝露则有可能发生爬电、闪络等事故。

基于以上考虑,在中高压开关柜、箱变、端子箱等供配电设备中进行温度、湿度控制是十分必要的。本文将介绍一种WHD型智能温湿度控制器的设计方法,最多实现三路温度、

湿度的测量与控制;结合RS485总线技术及上位机软件,可实现数据及状态信息远传,满足低压配电智能化及网络化发展的需求。

1硬件电路设计

1.1 硬件设计的总体思路

硬件系统以单片机为核心,按功能可划分为:电源供电、温湿度测量、控制输出、人机对话以及通讯五个部分,如图1所示。

电源供电电路将AC220V或其他类型辅助电源转化为系统工作所需的直流电源。单片机将传感器测得的温湿度值进行比较、处理,确定输出控制部分继电器的工作状态,并显示和发送温湿度数值及输出控制部分的工作状态信息。人机对话部分具有按键信息录入功能,用户可根据实际情况,通过按键编程设置系统的工作参数。

1.2 硬件的具体电路及原理

核心器件单片机选用STC公司的STC89C58RD+型单片机,它是一款兼容51内核的增强型8位机,片上资源丰富,抗干扰能力突出。STC89C58RD+(D版本)支持6时钟/机器周期,内含32K字节用户程序空间,片上集成1280字节RAM,16K字节EEPROM 空间;支持ISP/IAP功能,无须专用编程器;片上还集成了看门狗电路及MAX810专用复位电路。

温湿度的测量选用SENSIRION公司开发的数字式温湿度一体传感器芯片SHT11。该传感器可同时测温度、湿度,并提供全程标定的数据输出,所以使用该传感器既可以降低硬件成本,又方便了整机测试。其技术参数如下表所示:

温度参数:

湿度参数:

该传感器与CPU之间的通讯采用二线制方式,即DATA(数据)线和CLK(同步时钟脉冲)线。测量三路温度、湿度时,CPU与传感器的连接电路如图2所示。CPU通用I/O 口中的P1.0和P1.1,P1.2和P1.3,P1.4和P1.5分别与三路温湿度传感器SHT11连接,其中P1.0、P1.2、P1.4分别作为各路通讯的DATA(数据)线,P1.1、P1.3、P1.5分别作为各路通讯的CLK(同步时钟)线,DATA线需外加10KΩ的上拉电阻将信号提高至高电平(详情请参考SHT11数据手册)。实际使用时,传感器与控制器之间(即图中虚线部分)以屏蔽线连接,经验证,CPU与传感器之间的最大通讯距离为10米。如果使用74HC245或其他芯片提高I/O口的驱动能力,可增加通讯距离,但会降低系统的抗干扰性能,因此不予采纳。

系统采用LED数码管显示温度、湿度值,界面简洁明了。三路传感器测得的温度、湿度值以循环方式依次显示,显示部分共有7位数码管,其中4位用于显示温度值(显示范围:-40.0~100.0),并在编程状态下显示菜单及参数,2位用于显示湿度值(显示范围:0~99),1位用于显示当前显示或操作对应的传感器的编号(1~3)。数码管显示采用动态扫描方式,其驱动电路由集成电路74HC595及74HC164构成。74HC595是一款带有输出门锁功能的8位串行输入、并行输出(或串行输出)的移位寄存器,用于数码管的段驱

动;74HC164的串行输入、并行输出功能用于扫描显示每一位数码管,如图3所示。

系统采用继电器或可控硅作为控制输出,电源部分采用开关电源方案,通讯部分采用RS485接口,具体电路设计请参考相关书籍,此处不予赘述。

2软件设计方法

系统软件设计包括以下四个部分:主程序、测量控制模块、显示模块及通讯模块。

主程序完成上电或复位初始化,复位看门狗,查询按键信息等功能,程序设计流程如图4所示。

程序初始化包括配置CPU的SFR,设置I/O口初始状态,从EEPROM读取工作参数,设置看门狗定时器的复位时间等。需要注意的是,一般只在主程序中喂狗,看门狗的复位时间时要设置的比测量程序中可能出现的最长等待时间还要长。以下给出主程序的部分C语言源代码。

void Main ()

{

WDT_CONTR = 0x00;//关闭看门狗

InitialEeprom();//读EEPROM

InitialIO();//初始化I/O状态

InitialSFR();//设置SFR

InitialSHT11();//初始化传感器

InitialComm ();//初始化通讯口

WDT_CONTR = 0x35;//喂狗1.25秒

while(1)

{

WDT_CONTR = 0x35;

KeyScan();//按键查询

KeyProcess();//按键信息处理

}

}

通讯收发处理、显示和温湿度测量控制均以中断方式实现,优先级顺序为:串口通讯中断(最高)→显示中断→测量控制中断(最低)。

系统通讯采用标准MODBUS-RTU规约,便于上位机管理软件设计,与其他网络仪表组网使用,实现对供配电系统的完整监测。

3产品应用

在电力供配电环境中进行温湿度控制,一般采取如图5所示的方案。

通过温湿度传感器采集开关柜或箱式变电站中的温度、湿度信息,经控制器处理后输出继电器触点信号(断开或导通),再将触点信号连接到温湿度调节设备(一般使用加热器或风扇)的电源回路中,用于控制其工作或停止,以实现对温湿度的智能化控制。

WHD型智能温湿度控制器通用技术指标如下:

此类温湿度控制器可控制一路、二路或三路温湿度,每一路温湿度传感器对应一组(二个)继电器输出触点,其中一个触点用于控制加热器,实现升温或除湿控制,另一触点用于控制风扇,实现排风控制。当传感器或加热器发生故障时,控制器会发出报警信号。

控制器中还可设置温湿度控制的回滞量,即调节设备的启动条件与停止条件之差。如图6所示,以加热升温为例,当环境温度降低到预先设置“加热启动温度”以下时,控制器输出触点导通信号,加热器工作,环境温度逐渐上升;当环境温度上升至“加热停止温度”以上时,控制器输出触点断开信号,加热器停止加热。根据经验,回滞量一般设置在4~10(℃或RH%)范围内较合适。

铝合金加热器是电力供配电系统中最常用的温湿度调节设备,下面是由经验总结的环境空间大小与加热器功率选择的关系,供读者参考。

WHD型智能温湿度控制器可将测量的温湿度值及控制系统中的各种状态信息通过

RS485通讯接口向上位机远传,由上位机管理软件实现遥测、遥控,满足了智能化、网络化发展的要求。

4 结束语

本文介绍了一种智能温湿度控制器的设计方法及应用,可实现最大三路温湿度的采集、控制,并具有编程参数设置和RS485(MODBUS-RTU)通讯功能。经实践验证,参照此方法设计的WHD系列产品在实际应用中易于用户使用,控温及控湿效果显著。同时,该产品的抗电磁干扰性能突出,例如,5kHz和100kHz频段抗脉冲群干扰可达到三级,适合在电磁环境相对恶劣的电气设备中使用。

文章来源于:《电工技术》2006年第10期。

参考文献

[1] 数字温湿度传感器SHT1X/SHT7X应用指南,瑞士SENSIRION公司,2005

[2] STC89C51RC/RD+系列单片机使用指南,宏晶科技,2006

[3] 戴佳,戴卫恒51单片机C语言应用程序设计,2006

基于AT89S52的温湿度检测系统的设计

AT89S52模拟ADC0809传感器温度传感器

引言

温度、湿度是工农业生产的主要环境参数.对其进行适时准确的测量具有重要意义。利用单片机对温、湿度控制。具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优点,很好的满足了工艺要求。本文介绍了利用AT89S52单片机进行温度和湿度的检测及其控制的智能化方法。

l系统基本方案

本系统采用AT89S52单片机作为控制核心.对采集到的湿度模拟电压信号通过ADC08 09进行分析处理.实现A/D转换.以便数码管显示其湿度值。本设计可以手动设置温度/湿度的上、下限值,如只要有一样与设定的值不符合时,即温度/湿度过高或过低,则该系统会发出语音报警,同时继电器立即切断电源.实现系统的保护。

2硬件系统的组成

(1)主控模块:采用AT89S52单片机作为系统的控制器。Pl口控制数码管显示温度和湿度值。P2口与ADC0809连接.实现湿度模拟电压量转换为数字量便于单片机处理。键盘控制采用PO口.其中PO.O是温度的设置,PO.1是湿度的设置,PO.2/PO.3是分别对温度与湿度的上/下限值进行设置。P0.4是DS18820温度传感器的接线口.PO.6是ISD1420语音芯片的接线口。原理如图l:

(2)显示模块:系统采用动态显示方式驱动6个数码管工作,其中4个数码管用来显示温度值,2个用来显示检测到的湿度值。用74LSl38的输入端来选择位码.单片机的P1口控制数码管的断码。如检测到的温度与湿度发生变化时,数码管即会发生相应的变化,起到实时显示功能,电路如图2。

(省去)(3)语音播报模块:采用语音芯片ISD1420,该芯片能够高质量地完成声音录制与还原,最大录音时间为20秒,具备分段录音功能.其工作电压在4.5V~5.5V范围,使用直接电平/边缘存储技术,省去了A/D、D/A转换。其内部集成了大容量的EEPRO

M,不再需要扩展存储器,便于与单片机连接。语音播报模块电路如图3。

该电路的S3键为录音键,Sl、S2键为播放键,A0-A7为地址选择端,将ISDl420的A 0一A7直接与单片机的P1口相连,就可以实现录音地址选择功能,再将播放键接于PO.6口以实现单片机控制的实时播放功能。电源VCCA、VCCD其内部的模拟和数字电路使用不同的电源总线,但由于该芯片的干扰较小,因此两者可短接在一起。

(4)A/D转换模块:采用ADC0809转换芯片,用于实现模拟量向数字量的转换,由于模拟转换电路的种类很多,选择A/D转换器从速度,精度和价格方面考虑.其内部是8路模拟选通开关。以及相应的通道抵制锁存译码电路,转换时间是128μS左右,单电源供电。

(5)温度和湿度采集模块:温度传感器采用DALLAS半导体公司生产的智能温度传感器D Sl8B20,采集的数据可直接送入微处理器而无需A/D转换.能直接读出被测温度。它仅需要l条接口线即可实现与微处理器的双向通信;只需要外接1个4.7k的上拉电阻。无需其它外部器件。本系统对Dsl8B20采用数据线供电,温度测量范围为-50℃~125℃。通过编程可实现9~12位的数字值读数方式,测量精度为士0.5,用户可自行设定非易失性报警上下限。由于采用单总线方式,可在该控制总线上挂接多个DSl8B20进行不同部位的温度检测。湿度传感器采用HSM一20G,其原理是每变化0.03V湿度所增加的值为l%,其输出的电压值需经过ADC0809转换为数字量,以便单片机处理从而让数码管显示湿度值。其工作电压范围为直流电压5.0±0.2V,测试精度为土5%RH.工作电流(最大值)为2mA,

储存环境湿度范围为0至99%RH,工作环境湿度范围为lO至90%(瞬间可达100%RH),

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

单片机课程设计51实验报告DOC

福建工程学院软件学院 题目:51开发洗衣机 班级:物联网工程1202 成员: 座号:04 28 指导老师: 日期:年月日课设报告

目录 1摘要 (1) 2.设计需求 (1) 2.1功能需求 (1) 2.1.1 基本功能 (1) 2.1.2扩展功能 (1) 2.2 设计要求 (2) 2.2.1 单片机芯片部件功能 (2) 2.2.2 LCD数码显示管部件功能 (2) 2.2.3 按键部件功能 (2) 2.2.4 蜂鸣器部件功能 (2) 3硬件设计及描述 (2) 3.1总体描述 (2) 3.2系统总体框图 (3) 3.3Proteus电路图 (3) 3.4各部分硬件介绍 (4) 3.4.1晶振Protues仿真 (4) 3.4.2LCDProtues仿真 (5) 3.4.3 按键Protues仿真 (5) 3.4.4上拉电阻Protues仿真 (6) 3.4.5C51芯片Protues仿真 (6) 3.4.6上电复位电路Protues仿真 (8) 3.4.7蜂鸣器Protues仿真 (9) 4 软件设计流程及描述 (10) 4.1程序流程图 (10) 4.2函数模块及功能 (10) 5功能实现 (11) 5.1程序烧入上电调试 (11) 5.2时间递增跳变 (12) 5.3比分更变 (13) 5.4比赛得分复位 (14) 5.5比赛时间复位 (14) 6 心得体会 (15) 7源程序代码: (16)

1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起

80c51单片机交通灯课程设计报告1.pdf

80C51单片机交通灯课程设计报告 目录 第一章引言 (3) 第二章单片机概述 (4) 第三章芯片介绍 (6) 3.1AT89S51单片机介绍 (6) 3.1.1简介 (6) 3.1.2主要管脚介绍 (6) 3.274LS164介绍 (8) 3.3共阳数码管介绍 (8) 3.3.1分类简介 (8) 图3.3LED数码管引脚定义 (9) 3.3.2驱动方式 (9) 3.3.3主要参数 (10) 3.3.4应用范围 (10) 第四章系统硬件设计 (11) 4.1硬件设计要求 (11) 4.2硬件设计所用元器件 (11) 4.3硬件设计图 (11) 4.4设计流程图 (12) 第五章系统软件设计 (13) 5.1流程图 (13)

5.2程序设计 (14) 第六章结论 (16) 参考文献 (18)

第一章引言 在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 智能的交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。 本文为了实现交通道路的管理,力求交通管理先进性、科学化.分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.360docs.net/doc/1611312968.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.360docs.net/doc/1611312968.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

单片机课程结课设计报告

《单片机技术》课程结课设计报告 题目:电子时钟 专业 班级 学号 姓名 指导教师张琦

第一部分设计任务和要求 设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。 第二部分设计方案 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期

目的。 3.后期处理 对设计过程进行总结,完成设计报告。 单片机系统方框图 单片机系统流程图 主流程图 键盘扫描流程图 功能键 增加键 减小键 12/24小时制切换键 STC89C51 单片机 LCD 显示屏 电源 最小系统 初始化 时钟子程序 结束 按键扫描子程序 开始

51单片机汇编程序范例

16位二进制数转换成BCD码的的快速算法-51单片机2010-02-18 00:43在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序。 程序可见: http: 32.html中的HEX2BCD子程序。 .说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广。做而论道曾经利用它的思路,很容易的编写出了48位二进制数变换成16位BCD码的程序。 但是这个程序有个明显的缺点,就是执行时间太长,转换16位二进制数,就必须循环16遍,转换48位二进制数,就必须循环48遍。 上述的HEX2BCD子程序,虽然长度仅仅为26字节,执行时间却要用331个机器周期。.单片机系统多半是用于各种类型的控制场合,很多时候都是需要“争分夺秒”的,在低功耗系统设计中,也必须考虑因为运算时间长而增加系统耗电量的问题。 为了提高整机运行的速度,在多年前,做而论道就另外编写了一个转换程序,程序的长度为81字节,执行时间是81个机器周期,(这两个数字怎么这么巧!)执行时间仅仅是经典程序的!.近来,在网上发现了一个链接: ,也对这个经典转换程序进行了改进,话是说了不少,只是没有实质性的东西。这篇文章提到的程序,一直也没有找到,也难辩真假。 这篇文章好像是选自某个著名杂志,但是在术语的使用上,有着明显的漏洞,不像是专业人员的手笔。比如说文中提到的:

“使用51条指令代码,但执行这段程序却要耗费312个指令周期”,就是败笔。51条指令代码,真不知道说的是什么,指令周期是因各种机型和指令而异的,也不能表示确切的时间。 .下面说说做而论道的编程思路。;----------------------------------------------------------------------- ;已知16位二进制整数n以b15~b0表示,取值范围为0~65535。 ;那么可以写成: ; n = [b15 ~ b0] ;把16位数分解成高8位、低8位来写,也是常见的形式: ; n = [b15~b8] * 256 + [b7~b0] ;那么,写成下列形式,也就可以理解了: ; n = [b15~b12] * 4096 + [b11~b0] ;式中高4位[b15~b12]取值范围为0~15,代表了4096的个数; ;上式可以变形为: ; n = [b15~b12] * 4000 + {[b15~b12] * (100 - 4) + [b11~b0]} ;用x代表[b15~b12],有: ; n =x * 4000 + {x * (100 - 4) + [b11~b0]} ;即: ; n =4*x (千位) + x (百位) + [b11~b0] - 4*x ;写到这里,就可以看出一点BCD码变换的意思来了。 ;;上式中后面的位:

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

51单片机实用汇编程序库(word)

51 单片机实用程序库 4.1 流水灯 程序介绍:利用P1 口通过一定延时轮流产生低电平 输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。 程序实例(LAMP.ASM) ORG 0000H AJMP MAIN ORG 0030H MAIN: 9 MOV A,#00H MOV P1,A ;灭所有的灯 MOV A,#11111110B MAIN1: MOV P1,A ;开最左边的灯 ACALL DELAY ;延时 RL A ;将开的灯向右边移 AJMP MAIN ;循环 DELAY: MOV 30H,#0FFH D1: MOV 31H,#0FFH D2: DJNZ 31H,D2 DJNZ 30H,D1 RET END 4.2 方波输出 程序介绍:P1.0 口输出高电平,延时后再输出低电 平,循环输出产生方波。实际应用中例如:波形发生器。 程序实例(FAN.ASM): ORG 0000H MAIN: ;直接利用P1.0 口产生高低电平地形成方波////////////// ACALL DELAY SETB P1.0 ACALL DELAY 10 CLR P1.0 AJMP MAIN ;////////////////////////////////////////////////// DELAY: MOV R1,#0FFH DJNZ R1,$ RET

五、定时器功能实例 5.1 定时1 秒报警 程序介绍:定时器1 每隔1 秒钟将p1.o 的输出状态改变1 次,以达到定时报警的目的。实际应用例如:定时报警器。程序实例(DIN1.ASM): ORG 0000H AJMP MAIN ORG 000BH AJMP DIN0 ;定时器0 入口 MAIN: TFLA G EQU 34H ;时间秒标志,判是否到50 个 0.2 秒,即50*0.2=1 秒 MOV TMOD,#00000001B;定时器0 工作于方式 1 MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 11 SETB EA ;开总中断 SETB ET0 ;开定时器0 中断允许 SETB TR0 ;开定时0 运行 SETB P1.0 LOOP: AJMP LOOP DIN0: ;是否到一秒//////////////////////////////////////// INCC: INC TFLAG MOV A,TFLAG CJNE A,#20,RE MOV TFLAG,#00H CPL P1.0 ;////////////////////////////////////////////////// RE: MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 RETI END 5.2 频率输出公式 介绍:f=1/t s51 使用12M 晶振,一个周期是1 微秒使用定时器1 工作于方式0,最大值为65535,以产生200HZ 的频率为例: 200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电

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)

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

51单片机中的汇编语言与C语言.

51单片机中的汇编语言与 C 语言 C 语言, 更多的是为了掌握单片机的应用, C 语言是高效的应用程序开发工具, 与汇编语言比却不是开发高效应用程序的工具。就目前而言, 更多的是为了应用单片机, 开发应用程序, 更多的是强调开发效率, 而不是程序的运行效率 (相对而言。再就是应用程序对单片机内部资源的使用效率, 这在过去, 单片机内部资源紧缺的年代, 特别的强调, 现在已经不是特别重要了。所以, 大多数人都认为,只用 C 语言,就可以应对大多数单片机的应用开发了。 其实,汇编语言跟 C 语言在本质上一样的,只是语言形式不同而已,一个接近底层逻辑, 一个接近人类语言, 本质上都是对寄存器或存储器的读写操作而已。 汇编语言中,用 MOV 来回传送数据, C 语言里,用等号表示数据传送。汇编语言中,用 call 转去执行子过程程序, C 语言里,用个函数名调用子程序。汇编语言中,用 JMP 完成分支转移, C 语言里用 if 、 switch 、 while 、 for 来判断跳转。汇编语言跟 C 一样可以给寄存器指定命名,然后对定义的名称进行操作。汇编语言提供了对很多标志位的操作, C51根据需要也进行了改进, C 语言可以通过 #include给存储器命名来简化操作。 我觉得, C 语言是最接近汇编语言的一种高级语言, 要说不同, 也许具有大量函数的函数库,是 C 语言与汇编语言的最大区别,也是 C 语言比汇编语言有更大开发效率的原因。 在应用汇编语言进行应用程序开发时, 如果精心规划好程序结构, 设计好各种数据结构、子程序、中断程序,积累大量的算法程序(相当于函数库,也可以高效率的用汇编语言进行单片机开发。倒是兼容性、可移植性是汇编语言的最大限制,因为不同单片机有不同的指令系统,而 C 语言把这个问题,交给了机器也就是编译器去解决了。其实, 计算机的发展, 就是把尽可能多的事情交个机器去解决。

51单片机汇编语言教程:13课单片机逻辑与或异或指令详解

51单片机汇编语言教程:第13课-单片机逻辑与或异或指令详解

结果11111001 而所有的或指令,就是将与指仿中的ANL换成ORL,而异或指令则是将ANL换成XRL。即或指令: ORL A,Rn;A和Rn中的值按位'或',结果送入A中 ORL A,direct;A和与间址寻址单元@Ri中的值按位'或',结果送入A中 ORL A,#data;A和立direct中的值按位'或',结果送入A中 ORL A,@Ri;A和即数data按位'或',结果送入A中 ORL direct,A;direct中值和A中的值按位'或',结果送入direct中 ORL direct,#data;direct中的值和立即数data按位'或',结果送入direct中。 异或指令: XRL A,Rn;A和Rn中的值按位'异或',结果送入A中 XRL A,direct;A和direct中的值按位'异或',结果送入A中 XRL A,@Ri;A和间址寻址单元@Ri中的值按位'异或',结果送入A中 XRL A,#data;A和立即数data按位'异或',结果送入A中 XRL direct,A;direct中值和A中的值按位'异或',结果送入direct中 XRL direct,#data;direct中的值和立即数data按位'异或',结果送入direct中。 练习: MOV A,#24H MOV R0,#37H ORL A,R0 XRL A,#29H MOV35H,#10H ORL35H,#29H MOV R0,#35H ANL A,@R0 四、控制转移类指令 无条件转移类指令 短转移类指令 AJMP addr11 长转移类指令

C51单片机实验报告

实验报告册 课程名称:单片机原理与应用B 指导老师:xxx 班级:xxx 姓名:xxx 学号:xxx 学期:20 —20 学年第学期南京农业大学工学院教务处印

实验目录实验一:指示灯/开关控制器 实验二:指示灯循环控制 实验三:指示灯/数码管的中断控制 实验四:电子秒表显示器 实验五:双机通信

姓名:学号:班级:成绩: 实验名称:指示灯/开关控制器 一、实验目的: 学习51单片机I/O口基本输入/输出功能,掌握C语言的编程与调试方法。 二、实验原理: 实验电路原理图如图所示,图中输入电路由外接在P1口的8只拨动开关组成;输入电路由外接在P2口的8只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。 在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8只发光二极管先整体闪烁3次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。 三、软件编程原理为; (1)8只发光二极管整体闪烁3次

亮灯:向P2口送入数值0; 灭灯:向P2口送入数值0FFH; 闪烁3次:循环3次; 闪烁快慢:由软件延时时间决定。 (2)根据开关状态控制灯亮或灯灭 开关控制灯:将P1口(即开关状态)内容送入P2口;无限持续:无条件循环。 四、实验结果图: 灯泡闪烁:

按下按键1、3、5、7:

经检验,其余按键按下时亦符合题目要求。 五、实验程序: #include"reg51.h" void delay(unsigned char time) { unsigned int j=15000; for(;time>0;time--) for(;j>0;j--); } void main(){ key,char i; for(i=0;i<3;i++) { P2=0x00; delay(500); P2=0xff; delay(500) } while(1) { P2=P3;

(完整word版)51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。 1、详细描述硬件安装过程中出现的故障现象,并作故障分析,及解决方法。 六、软件调试

单片机控制系统汇编程序

; step motor control ; ASM for MCS51 mode equ 082h contrl equ 08003h ctl equ 08000h ;8255接口芯片PA口的地址值 Astep equ 01h ;对A相通电,PA口的赋值 Bstep equ 02h ;对B相通电,PA口的赋值 Cstep equ 04h ;对C相通电,PA口的赋值 Dstep equ 08h ;对D相通电,PA口的赋值 dly_c equ 10h ;启动初值(加速度)寄存器 sd1 equ 80 ;0--255 加速度初值:值越小,加速越快 sd2 equ 40 ;

51单片机经典编辑流水灯汇编程序

单片机流水灯汇编程序设计 流水灯汇编程序 8只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。 ;用最直接的方式实现流水灯 ORG 0000H START:MOV P1,#01111111B ;最下面的LED点亮 LCALL DELAY ;延时1秒 MOV P1,#10111111B ;最下面第二个的LED点亮 LCALL DELAY ;延时1秒 MOV P1,#11011111B ;最下面第三个的LED点亮(以下省略) LCALL DELAY MOV P1,#11101111B LCALL DELAY MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B ;完成第一次循环点亮,延时约0.25秒 AJMP START ;反复循环 ;延时子程序,12M晶振延时约250毫秒 DELAY: ;大约值:2us*256*256*2=260ms,也可以认为为250ms PUSH PSW ;现场保护指令(有时可以不加) MOV R4,#2 L3: MOV R2 ,#00H L1: MOV R3 ,#00H L2: DJNZ R3 ,L2 ;最内层循环:(256次)2个周期指令(R3减一,如果比1大,则转向L2) DJNZ R2 ,L1 ; 中层循环:256次 DJNZ R4 ,L3 ;外层循环:2次 POP PSW RET END

51单片机汇编程序集(二) 2008年12月12日星期五 10:27 辛普生积分程序 内部RAM数据排序程序(升序) 外部RAM数据排序程序(升序) 外部RAM浮点数排序程序(升序) BCD小数转换为二进制小数(2位) BCD小数转换为二进制小数(N位) BCD整数转换为二进制整数(1位) BCD整数转换为二进制整数(2位) BCD整数转换为二进制整数(3位) BCD整数转换为二进制整数(N位) 二进制小数(2位)转换为十进制小数(分离BCD码) 二进制小数(M位)转换为十进制小数(分离BCD码) 二进制整数(2位)转换为十进制整数(分离BCD码) 二进制整数(2位)转换为十进制整数(组合BCD码) 二进制整数(3位)转换为十进制整数(分离BCD码) 二进制整数(3位)转换为十进制整数(组合BCD码) 二进制整数(M位)转换为十进制整数(组合BCD码) 三字节无符号除法程序(R2R3R4/R7)=(R2)R3R4 余数R7 ;二进制整数(2位)转换为十进制整数(分离BCD码) ;入口: R3,R4 ;占用资源: ACC,R2,NDIV31 ;堆栈需求: 5字节 ;出口: R0,NCNT IBTD21 : MOV NCNT,#00H MOV R2,#00H IBD211 : MOV R7,#0AH LCALL NDIV31 MOV A,R7 MOV @R0,A INC R0 INC NCNT MOV A,R3 ORL A,R4 JNZ IBD211 MOV A,R0 CLR C SUBB A,NCNT MOV R0,A RET ;二进制整数(2位)转换为十进制整数(组合BCD码) ;入口: R3,R4 ;占用资源: ACC,B,R7 ;堆栈需求: 3字节

51单片机实验报告

实验一数据传送实验 实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV @R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 思考题: 1. 按照实验内容补全程序。 2. CPU 对8031内部RAM存储器有哪些寻址方式? 直接寻址,立即寻址,寄存器寻址,寄存器间接寻址。 3. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH ___0A0H~0AFH______________________ 内部RAM 50H~5FH___0A0H~0AFH_______________________ 实验二多字节十进制加法实验

实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。源程序清单:ORG 0000H RESET: AJMP MAIN ORG 0100H MAIN: MOV SP, #60H MOV R0, #31H MOV @R0, #22H DEC R0 MOV @R0, #33H MOV R1, #21H MOV @R1, #44H DEC R1 MOV @R1, #55H MOV R2, #02H ACALL DACN HERE: AJMP HERE DACN: CLR C DAL: MOV A, @R0 ADDC A, @R1 DA A MOV @R1, A INC R0 INC R1 DJNZ R2,DAL CLR A MOV ACC.0 , C RET 思考题: 1. 按照实验内容补全程序。 2. 加数单元、被加数单元和结果单元的地址和内容为? 3130H,2120H,6688H 3. 如何检查双字节相加的最高位溢出? 看psw.3 的溢出标志位ov=1 则溢出 4. 改变加数和被加数,测试程序的执行结果。 实验三数据排序实验

C51单片机课设报告(进制转换)

单片机原理课程设计报告题目:51单片机实现进制转换 专业:信息工程 班级:信息101 学号:1004020307 小组成员: 1004020103 指导教师:吴叶兰 北京工商大学计算机与信息工程学院

题目:51单片机实现进制转换 1、设计目的 1)熟悉51单片机的编程; 2)熟悉单片机开发的基本焊接; 3)熟悉单片机元件的使用方法; 4)熟悉C51的软件开发环境(编程软件Keil、烧录软件STC_ISP_v479) 2、设计要求 1)按键输入数据,具有确定和清零功能; 2)1602液晶屏幕显示,具有显示输入输出和提示功能; 3)2,、8、10、16进制数可任意互相转化; 3、硬件电路设计(包括电路图及说明) 1)控制模块: 控制模块是由1块STC89C52、1个12MHz无源晶振、1个复位电路22uF电容、1个1k欧姆电阻、1个8位1k欧姆排阻组成。 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。芯片实际选用的STC89C52与 protues模拟电路图中的AT89C52功能基本相同,区别在于烧录程序的方式。 2)显示模块: 显示模块由1块1602液晶显示屏、16根数据线组成。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。液晶显示屏际实际选用的是QC1602A与 protues模拟电路图中的LM016功能基本相同。

相关文档
最新文档