首页天道酬勤基于51单片机的自动灌溉系统设计,基于51单片机的智能小车设计

基于51单片机的自动灌溉系统设计,基于51单片机的智能小车设计

张世龙 05-13 04:34 123次浏览

第一章硬件设计与原理

以AT89C51单片机为核心,起着控制作用。 系统包括数码管显示电路、复位电路、时钟电路、发光二极管电路和按键电路。 设计思路分为六个模块:复位电路、晶振电路模块、AT89C51、数码管显示电路、发光二极管电路和按钮电路六个模块。

1.2硬件设计分析

1.2.1电源的设计

系统的电源使用直流5伏。

通过电脑的USB接口供电。

USB是通用串行总线接口的简称。 是目前广泛使用的计算机界面之一,主要版本有1.0、1.1、最新的2.0三种。 根据USB总线的工业标准,可以为USB设备提供额定电力5V/500mA的电源。

1.2.2单片机最小系统

51单片机是目前与英特尔8031指令系统兼容的所有单片机的总称。 该系列单片机的创始人是英特尔的8031单片机,后来随着技术的发展,目前应用广泛的8成为单片机之一。 单片机是将CPU、RAM、ROM、定时器/计数器、多功能I/O端口等计算机所需的基本功能部件集成在一个芯片内的大规模集成电路,也称为MCU。 51系列单片机包含以下部件。

8位CPU; 单芯片内振荡器和时钟电路;

4KB的ROM程序存储器;

128B的RAM数据存储器

控制电路,其对64KB外部数据存储器和64KB的外部程序存储空间进行寻址;

32条可编程I/O端口线

两个16位定时/计数器;

可编程全双工串行端口

五个中断源,两个优先级的嵌套中断结构。

图1-2-1给出了AT89C51单片机的基本结构,其基本性能介绍如下。

AT89C51本身包括40引脚、32个外部双向输入/输出(I/O )端口,同时包括2个外中端口、3个16位可编程定时计数器和2个全双工串行通信端口,STC89C51RC是常规的通用微处理器与闪存相结合,尤其是重复重写的闪存可以有效降低开发成本。

AT89C51的主要特性如下表所示。

AT89C51是40针双列直插式封装的8位通用微处理器,采用工业标准的C51内核,内部功能和针脚排列与通用的8xc52相同,主要用于会聚调整时的功能控制。 功能包括会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化、会聚调整控制、会聚测试图控制、红外线遥控信号IR的接收解码及与主板CPU的通信等主要引脚为xtal1(19引脚)和xtal1(19引脚)为振荡器的输入输出端口,外置12MHz晶体振动。 RST/VPD(9针)是复位输入端口,是由外置电阻电容器组成的复位电路。 VCC(40针)和VSS (20针)是供电端口,分别连接到5V电源的正负端。 P0~P3是可编程的通用I/O引脚,其功能用途由软件定义。 在本设计中,P0端口(32~39引脚)定义为N1功能控制端口,分别连接到N1的对应功能引脚,13引脚定义为IR输入端子,10引脚和11引脚定义为I2C总线控制端口,分别为N1的sdas )

P0端口—P0端口是一组8位漏极开放双向I/O端口,即地址/数据总线复用端口。 用于输出端口,驱动每人8个TTL逻辑门电路以吸收电流,在端口P0中写入“1”时,可用作高阻抗输入端子。 访问外部数据存储器或程序存储器时,该组的端口线分时切换地址(低位8位)和数据总线的复用,在访问中激活内部上拉电阻。 Flash编程时,P0端口接收命令字节,程序检查时输出命令字节,检查时要求上拉电阻。

P1端口: P1是带内部上拉电阻的8位双向I/O端口,P1的输出缓冲电平可以驱动4个TTL逻辑门电路(吸收或输出电流)。 端口上写“1”,用内部的上拉阻力把端口拽成和谐的小馒头,到时候就可以放进嘴里了。 用作输入端口时,由于内部有上拉电阻,当某个端子被外部信号下拉时,将输出电流(IIL )。 与AT89C51不同,P1.0和P1.1也可分别用作定时器/计数器2的外部计数输入(P1.0/T2 )和输入(P1.1/T2EX )。 在Flash编程和程序检查过程中,P1接收低位8位地址。

P2端口: P2是带内部上拉电阻的8位双向I/O端口,P2的输出缓冲电平可以驱动4个TTL逻辑门电路(吸收或输出电流)。 在端口P2上写“1”,用内部的上拉电阻将端口拉到和谐的小馒头上,这时可以作为输入口使用。 用作输入口时,内部有上拉电阻,因此某个端子被外部信号下拉时输出电流(IIL )。 访问外部程序存储器或16位地址的外部数据存储器时,例如执行MOVX @DPTR命令时,P2端口发送高位8位地址的数据。 当访问8位地址的外部数据存储器时,例如执行MOVX @RI指令时,P2端口输出P2锁存器的内容。 Flash编程或检查时,P2也接收高位地址和几个控制信号。

P3端口: P3端口是一组带内部上拉电阻的8位双向I/O端口。 P3端口输出缓冲电平可以驱动(吸收或输出)四个TTL逻辑门电路。 向P3端口写入“1”后,由内部上拉电阻提升,可以作为输入端口使用。 此时,被拉至外部的P3端口通过上拉电阻输出电流(IIL )。 P3端口除了作为一般I/O端口线路以外,更重要的用途是其第二功能P3端口

接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上和谐的小馒头将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个AL脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条 MOVX 和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为和谐的小馒头(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:振荡器反相放大器的输出端。
单片机最小原理图如图1-2-2所示。

单片机最小系统说明:
时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。
单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的和谐的小馒头。
1.2.3 显示系统
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为和谐的小馒头时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为和谐的小馒头时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动(要知道一个89C51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
本设计中数码管采用的是动态驱动方式。
数码管外形如图1-2-3,数码管电路结构如图1-2-4。




1.2.4 发光二级管电路


1.2.5 按键电路

第二章 软件设计与分析
2.1 软件设计的组成
该系统由延时子函数、数码管显示子函数、定时器0中断子函数、主函数和数据定义这几部分组成。

//----------------------------------------------------------------------//
上传过程感觉繁琐,里面可能有不全面的地方,请见谅。下面的是实现的目的。以及电路原理图

**本次设计的主要目的是设计一个城市十字路口的交通灯控制系统,设计中将交通灯控制系统分为东西方向(主干道)和南北方向(次干道)两个方向,且在东西南北四个路口的每个路口设置红、绿、黄三个交通信号灯(用发光二极管模拟)和一个二位的LED数码显示管。设计的要求是规定在每一段时间内东西和南北两个方向中只有一个方向能够通行,另一个方向处于禁行状态,然后在经过一段时间后,禁行的方向和通行的方向互相转换状态,原来通行的状态变禁行状态,原来禁行的状态变为通行状态,如此循环下去。详细过程如下图2-1:
状态① 状态②
图 1图2-1 交通灯状态图
状态①:东西方向的交通灯黄灯闪烁3秒后,红灯熄灭,绿灯点亮(东西方向允许车辆和行人通行),同时南北方向绿灯熄灭,红灯点亮(南北方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态②。
状态②:南北方向黄灯闪烁3秒后,红灯熄灭绿灯点亮(南北允许车辆和行人通行);同时东西方向绿灯熄灭,红灯点亮
(东西方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态①。
接下来在没有人为干涉下将会一直按照上述进行循环。设计中还外设6个按键实现对交通灯控制系统的调控作用。

电路原理图

//——————————————————————————-——————————//
相应的代码已经上传

下载地址
https://download.csdn.net/download/weixin_43442020/12231456

下载链接里可以下载,解压后里面有压缩文件,压缩文件里面的资料更详细

程序员考试大纲电子版,计算机一级考试好过吗 交通信号灯plc控制系统设计,交通灯控制系统设计的毕业论文