基于Proteus的51单片机应用-单片机串口通信设计

基于Proteus的51单片机应用-单片机串口通信设计
基于Proteus的51单片机应用-单片机串口通信设计

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

1.绪论

1.1课题背景及意义

目前,单片机的发展速度大约每两、三年要更新一代,集成度增加一倍,功能翻一番。其发展速度之快、应用范围之广已达到了惊人的地步,它已渗透到生产和生活的各个领域,应用非常广泛。在汽车、通信、智能仪表、家用电器和军事设备的智能化以及实时过程控制等方面,单片机都扮演着非常重要的角色[1]。因此单片机的设计开发具有广阔的前景。所以,对于电气类学生而言,学习一种单片机的开发是十分必要的。而51系列的单片机,随着半导体技术的发展,其处理速度更快,性能更优越,在工业控制领域上占据十分重要的地位,通过对51系列单片机的学习而掌握单片机开发的过程是一种不错的选择。

然而单片机是一门综合性、实践性都很强的学科,其学习涉及的实验环节比较多,硬件设备投入比较大,对于大多数人而言很难投入大笔资金去购买实验器件。而且要进行硬件电路测试和调试,必须在电路板制作完成、元器件焊接完毕之后进行,但这些工作费时费力。因此引入EDA软件仿真系统建立虚拟实验平台,不仅可以大大提高单片机的学习效率,而且大大减少硬件设备的资金投入,同时降低对硬件设备的维护工作。

EDA设计思路是:从元器件的选取到连接、直至电路的调试、分析和软件的编译,都是在计算机中完成,所用的工作都是虚拟的。虽然现在的电路设计软件已经很多,诸如PROTEL、ORCAD、EWB 、Multisim等,不过这些软件之间的差别都不大:都有原理图和PCB制作功能,都能进行诸如频率响应,噪音分析等电路分析,主要用于模拟电路、数字电路、模数混合电路的性能仿真与分析,但对于单片机设计及软件编程,最重要的是两者的联调,这些软件都无法实现,所以造成了单片机系统设计周期长、设计费用高等缺点[2]。新款的EDA软件Proteus解决了上述软件的不足,成为目前最好的一款单片机学习仿真软件。

Proteus 软件是由英国Lab Center Electronics 公司开发的EDA 工具软件。Proteus软件已有近20年的历史,在全球已得到相当广泛的使用。Proteus 软件集成了高级原理布图、混合模式SPICE 电路仿真、PCB 设计以及自动布线来实现一个完整的电子设计系统。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。同时,当硬件调试成功后,利用Proteus ARES软件,很容易获得其PCB图,为今后的系统制造提供了方便。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象[3][4]。

Proteus 软件支持许多通用的微控制器,如PCI系列、AVR系列、HC11系列、68000

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊系列、Z80系列、8051系列以及各种外围芯片;包含强大的调试工具,具有对寄存器和存储器,断点和单步模式IAR、C-SPY、Keil、MALAB等开发工具的源程序进行调试的功能;能够观察代码在仿真硬件上的实时运行效果、对显示、按钮、键盘等外设的交互可视化进行仿真;具有6000 多种模拟和数字器件的模型库;具有单步断点设置等调试功能;能够与常用的汇编器、编译器如IAR、Keil、Proton 等协同调试;有直流电流表/电压表、交流电压表/电流表、示波器逻辑分析仪、计数/按时/频率计虚拟终端、SPI 调试器等虚拟仪器,以仿真中的测量记录提供了方便;支持图形化的分析功能,具有频率特性、傅立叶、失真、噪声分析等多种绘图方式、可将仿真曲线精美地绘制出来[3]。

Keil是Keil Software公司开发的,是目前世界上最好的51单片机开发工具之一。软件本身支持数百种51系列单片机机芯,可以用来编译C源码、汇编程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化文件管理编译环境。它集成了文件编译处理、编译连接、项目管理,窗口、工具引用和软件仿真调试等多种功能,是相当强大的的开发工具[5]。Proteus ISIS与Keil整合起来使用,充分利用各自的仿真功能,单片机的软硬件的调试和仿真,将变得非常直观和生动。

国内外的很多知名大学已经开始使Proteus作为他们的教学工具,比如Stanford University,University Of California,Cambridge University,Carlisle college,香港理工大学,中山大学,华南理工大学,哈尔滨工程大学等几十所高校。他们一致认为该软件在教学中的应用有很大的帮助,其灵活自主的设计方式使学生更能体验到电子设计的魅力,学生对单片机以及电子设计的兴趣大大提升,知识的掌握和应用当然也有了很大的提高。

虽然Proteus在单片机的学习和应用系统的开发上有着诸多的优点,但是在国内的发展才几年的时间,其应用还未普及。因此,通过Proteus仿真平台学习51系列单片机之间的串口通信,是对EDA软件Proteus的使用过程的学习,也为以后利用该软件进行电子设计与开发打下一定的基础,以跟上现代科技的快车去适应激烈竞争的环境。

串行通信是CPU与外界交换信息的一种基本方式,单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发送给主机并进行处理,以降低成本,提高通信的可靠性。51系列单片机自身有全双工的异步串行通信接口,实现串行通信极为方便。既可通过一台计算机来控制和监视多台单片机系统,也可实现多台单片机之间的互联,组成不同的控制系统,适应不同的应用场合[6]。实现单片机之间的串口通信所涉及单片机的知识点多,概括了单片机的定时器/计数器功能、中断功能和串行通信功能等,是单片机功能的综合应用。通过Proteus对单片机串行通信的仿真和调试,不仅是对51单片机知识的综合学习,也是熟悉Proteus软件的应用过程。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊1.2设计的主要任务

本论文要求在理解串行通信基本知识、学习并掌握51单片机的结构组成、指令系统、C语言程序设计、熟悉Keil软件的编程与调试环境以及掌握Proteus仿真软件的使用环境、元器件调用、虚拟仪器应用、原理图设计、仿真调试的基础上,完成以下4项任务:

1、总结单片机串口通信的基本知识和设计要求,对单片机串口通信的各种控制方案进行比较,选择一个合适的控制方案;

2、根据课题的设计要求,在Proteus仿真环境中设计单片机串口通信硬件电路;

3、在Keil环境中编制串口通信控制程序,并进行编译调试;

4、在Proteus仿真环境中调用硬件电路,加载控制程序,并进仿真调试。

1.3论文的主要内容

在本论文中,设计的主要内容有五个方面:一是串行通信控制系统方案的选择;二是系统硬件电路的设计;三是系统软件设计;四是系统软件设计;五是系统仿真与调试;六是系统硬件PCB设计。具体章节安排如下:

1、绪论在课题的背景及意义中介绍单片机发展现状、单片机EDA软件Proteus 的优势、Keil集成开发环境软件简介以及单片机通信的描述;此外,还简单的说明介绍了本文设计的主要任务以及论文的主要内容。

2、系统方案设计主要论述通信的基本知识和系统的方案选择。系统的方案选择主要包括控制器的选择、串行通信方式比较与方案选择、显示方案比较与选择、编写程序语言比较和选择、串行控制方案确定以及系统框图绘制。

3、系统硬件设计根据控制系统方案在Proteus ISIS原理图编辑环境中绘制系统硬件电路,主要包括原理图文件的创建、图纸大小的设置、原理图中元器件的选取、元器件的放置、电源、地、和输入输出终端的放置、原理图连线、器件统一编号、电气检测以及元器件属性设置等内容。

4、系统软件设计主要介绍了在Keil集成开发环境中进行C51语言的编写过程、控制系统程序的编写以及程序流程图绘制。

5、系统仿真与调试完成控制系统在Proteus ISIS环境中的仿真与调试,主要是根据仿真结果验证硬件原理图以及软件编写的是否正确。

6、系统硬件PCB设计完成串行通信单片机最小系统原理图设计与PCB绘制。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

通过以上六个方面的阐述说明,将会对单片机串行通信控制系统基于Proteus 的设计、开发与仿真过程以及电路板制作有一个清晰全面的认识。

2.系统方案设计

本文的题目是“基于Proteus的51单片机应用——单片机串行通信设计”,主要是通过单片机串行通信控制系统的设计,来阐述和实践51单片机的应用在Proteus 虚拟实验平台的仿真和调试过程。由于题目没有给出具体的系统功能要求,因此有很大的设计空间。为了很好地在Proteus虚拟实验平台上展示51单片机串行通信的结果,需要自行设计方案。

2.1通信概述及串行通信方式选择

单片机串行通信在本系统设计中十分重要,是设计的核心部分,为此需要在此对通信部分做一些介绍。

2.1.1通信的基本概念

通信是计算机系统中主机与外设之间及主机系统与主机系统之间的数据交换。通信有并行通信和串行通信两种基本方式。两种基本通信方式如图2.1所示。

并行通信的特点就是将多个数据位同时进行传输。通信速度快,但传输的数据有多少位,就相应地有多少根传输线,传输信号线多,传输距离较远时线路复杂,成本高,较适合于短距离的数据通信。

串行通信的特点就是只用一根数据线进行传输,多位数据必须在一根数据线上顺序地进行传送。传输线少,通信线路简单,通信速度慢,成本低,适合于多数位、长距离通信的场合。

串行通信按照信息在设备间的传输方向,还可分为单工、半双工和全双工三种方式。分别如图2.2所示。

图2.1 并行通信与串行通信

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

在串行通信中,通信双方在任一时刻,只能单方向的传送数据,这样的传送方法称为单工方式。如图2.2(a)所示,通信方甲机只能作为发送方,而通信方乙机只能作为接收方,不能互换。通信双方可通过传输线交替地进行双向传输,每个通信方都可以作为发送方或接收方,但在任一时刻,不能同时作为发送方和接收方,这样的通信方

式称为半双工方式。如图 2.2(b)所示,通信方甲机和通信方乙机都可以作为发送方或接收方,但在任一时刻,不能同时作为发送方和接收方,通软件或硬件设定。通信双方通过两条传输线进行互连,两者之间的数据可以同时进行发送和接收,这样的通信方式称为全双工方式。如图 2.2(c)所示,通信方甲机和通信方乙机同时可以作为发送方和接收方。AT89C51单片机在硬件上具有全双工的结构。

在实际应用中,尽管多数串行通信接口电路具有全双工功能,单一般情况下,多工作于半双工方式下。因此,为了能够综合展示单片机串行通信的的应用,本系统采用半双工方式。

串行通信中要解决好发送设备与接收设备之间的同步问题,否则会造成某些数据位的丢失而通信失败。根据采用的同步方式的不同, 将串行通信进一步分为同步串行通信和异步串行通信两种。

异步串行通信方式是将传输的数据按照某种位数进行分组(通常以8位的字节为单位),在每组数据的前面和后面分别加上一位起始位和一位停止位,根据需要还可以在停止位前加一位校验位,并且停止位的长度还可以增加。这样组合而成的一组数据被称为一帧。异步串行通信的数据传送格式如图2.3所示。

异步串行通信方式的结构简单,但是数据的传送量增加很多,导致传输效率不高,一般用在对传输速率要求不高的应用中。

图2.3 串行异步通信数据格式

图2.2 通信方式示意图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

同步串行通信方式不再以字节为单位,而是以数据块为单位,每个数据块可以有多个字节构成,只在每个数据块的前后加上起始位和停止位,这样减少了需要额外传输的控制数据的长度,自然也就提高了传输的效率。同步串行通信的数据传送格式如图2.4所示。

同步字符1 同步字符2 数据块校验字符1 校验字符1

同步通信方式的软硬件的复杂程度也随之上升,价格比较昂贵,一般只在传输速率要求较高系统使用。因此本系统采用异步串行通信。

波特率是串行通信中的一个重要概念,它用于衡量串行通信速度的快慢。波特率是指在串行通信中,单位时间里传输的二进制代码的位数,单位是b/s或bps(位/秒)。例如:每秒钟传输120个字符,每个字符由10个二进制位(其中1个起始位、8个数据位和一个停止位),其波特率为120字符/秒×10位/字符=1200位/秒。在异步串行通信中,波特率一般为50-9600bps。

在串行传输中,二进制数据序列是以数字波形表示的,发送时,在发送时钟的作用下将移位寄存器的数据串行移位输出;接收时,在接收时钟的作用下将通信线上传来的数据串行移入移位寄存器。所以,发送时钟和接收时钟也可称为移位时钟,能产生该时钟的电路称为波特率发送器。

为了提高采样的分辨率,准确地测定数据位的上升沿或下降沿,时钟频率总是高于波特率若干倍,这个倍数称为波特率因子。在单片机中,发送/接收时钟可以由系统时钟osc

f产生,其波特率因子可为12、32和64,根据方式而不同。此时波特率由

osc

f

决定,称为固定方式频率方式;也可由单片机内部定时器T1产生,T1工作于自动再装入8位定时方式(方式2)。由于定时器的计数初值可以人为改变,T1产生的时钟频率也可以改变,因此称为可变波特率方式。当然,也可以用用T2作为波特率发生器[7]。

2.1.2 51系列单片机串行口的功能

51单片机的串口是一个可编程的全双工串行通信接口,通过软件编程,它可以作为通用异步接收和发送UART使用,可以同时发送、接收数据。发送、接收数据可以通过查询或中断方式处理,使用十分灵活,能方便的与其他计算机或串行传送信息的外部设备(如串行打印机、CRT终端)实现双机、多机通信。其帧格式为:1个起始位,8或9个数据位和1个停止位。51单片机的串口也可以作为同步移位寄存器。

51单片机的串口有4种工作方式,分别是方式0、方式1、方式2、方式3。其中:

方式0,为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口;

方式1,是8位的异步通信方式,通常用于双机通信。

方式2和方式3,是9位的异步通信方式,通常用于多机通信。

图2.4 串行同步通信数据格式

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

不同的工作方式,其波特率不一样,方式0和方式2的波特率直接由系统时钟产生,方式1和方式3的波特率由定时器/计数器T1或T2的溢出频率决定[7]。

2.1.3 51系列单片机的串行结构

51系列的单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器和输入移位寄存器等组成,它的结构如图2.5所示:

串行通信数据寄存器SBUF,字节地址为99H,实际对应两个寄存器:发送数据寄存器、接收数据寄存器。当CPU向SBUF写数据时对应的是发送数据寄存器;当CPU 读SBUF时,对应的是接收数据寄存器。

特殊功能寄存器SCON用于存放串行口的控制信息和状态信息。根据对其写控制字决定工作方式,从而决定波特率发生器的时钟来自系统时钟还是来自定时器T1或T2。特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。51单片机的串行口正是通过对上述专用寄存器的设置、检测与读写来管理串行通信的。

在进行通信时,外界的串行数据是通过引脚RXD(P3.0)输入的。输入数据先逐位进入输入移位寄存器,再送入接收SBUF,在此采用了双缓冲结构,这是为了避免在接收到第二帧数据之前,CPU未及时响应接收器的前一帧的中断请求而把前一帧数据读走,造成两帧数据重叠的错误。对于发送器,因为发送时CPU是主动的,不会产生写重叠的问题,一般不需要双缓冲器结构,为了保持最大的传送速率,仅用了SBUF 一个缓冲器。TI和RI为发送和接收中断标志,无论哪个为1,只要中断允许,都会引起中断[8]。

图2.5 51单片机串行口结构图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊2.1.4 51系列单片机串口工作原理

设有两个单片机串行通信,甲机发送,乙机接收,如图2.6所示。

发送数据时,当执行一条向SBUF写入数据时把数据写入串口发送数据寄存器,就启动发送过程。串行通信中,甲机CPU向SBUF写入数据(MOV SBUF,A),就启动发送过程。在发送时钟控制下,先发送一个低电平的起始位,紧接着把A中的数据送入SBUF,在发送控制器的控制下,按设定的波特率,每来一个移位时钟,数据移出移一位,由低位到高位一位一位发送到电缆线上,移出的数据位通过电缆线直达乙机。最后发送一个高电平的停止位。一个字符发送完毕,串行口控制寄存器中的发送中断标志位T1置位。(对于方式2和方式3,当发送完数据位后,要把串行口控制寄存器SCON 中的TB8位发送出去后才能发送停止位)。

乙机按设定的波特率,每来一个移位时钟及移入一位,由低位到高位一位一位移入到SBUF。一个移出,一个移进,很显然,如果两边的移位速度一致,甲机移出的数据位正好被乙机移进,就能完成数据的正确传送;如果不一致,则必然会造成数据位的丢失。因此,两边的波特率必须一致。当甲机一帧数据发送完毕(或称发送缓冲器空),硬件置位发送中断标志位TI(SCON.1),该位可作为查询标志,如果设置为允许中断,则将引起中断,甲机的CPU可发送下一帧数据。

作为接受方的乙机,需预先设置位REN(SCON.4),即允许接收。当REN置位1,接收控制器就开始工作,对接收数据线进行采样,当采样到从“1”到“0”的负跳变时,接收控制器开始接收数据。为了减少干扰的影响,接收控制器在接收数据时,将一位的传送时间分成16等分,用当中的7、8、9三个状态对接收数据线进行采样,三次采样当中,当两次采样为低电平时,就认为接收的是“0”,两次采样为高电平,就认为接收是“1”。如果接收是起始位的值不是“0”,则起始位无效,复位接收电路;如果起始位为“0”,则开始接受其它数据。甲方的数据按设定的波特率由地位到高位顺序进入乙机的移位寄存器。当一帧数据到齐(接收缓冲器满)后(接收的前8位数据依次移入输入移位寄存器,接收是第9位数据置入串口控制寄存器的RB8位中),

图2.6 51单片机串行传送示意图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊硬件自动置位接收中断标志RI(SCON.0),通知CPU来取数据。该位可作为查询标志,如果设置为允许中断,将引起接收中断,乙机的CPU可通过读SBUF(MOV A,,SBUF),将帧数据读入,从而完成了一帧数据的传送。

无论是单片机之间,还是单片机和PC机之间,串行通信双方的波特率必须相同,才能完成数据的正确传送[7]。

2.1.5 51系列单片机多机通信

多机应用是指在一个系统中用到了多块单片机。它是单片机在高科技领域的主要应用,主要用于一些大型的自动化控制系统。这时整个系统分成了多个子系统,每个子系统是一个单片机系统,用于完成本系统的工作,即从上级主机接收信息,并发送信息给上级主机。上级主机则根据接收的下级子系统的信息,进行判断,产生相应的处理命令传送给下级子系统。

通过51单片机串口能够实现一台主机与多台从机进行通信,主机和从机之间能够相互发送和接收信息。主机可以向各个从机或指定的从机发送信息,各个从机发送的信息只能被主机接收,但从机与从机之间不能相互通信。

单片机串行多机通信必须使用串口模式2和模式3。在多机通信中,为了保证主机能够正确识别所选是从机并进行通信,主,从机需要正确地设置和判断多机通信控制位SM2和发送/接收的第9位信息,TB8,RB8。主机在发送信息时,依靠TB8标志位来区分发送的信息为地址信息还是数据信息。当设置TB8=1,时,发送的是地址信息;当设置TB8=0时,发送的是数据或者命令信息。从机主要依靠SM2标志位的设置来实现对主机的响应。当从机的SM2=1时,该从机只接受地址帧,对数据帧不进行处理,即只有接收的RB8位等于1数据时,接收才有效,RI才置1,对接收的RB8位等于0的数据不进行处理。当SM2=0时,无论接收的是地址帧TB8=1还是数据帧RB8=0,接收都有效,RI都置1。

多级通信时,主机每一次都向从机传送至少两字节信息,先传送从机的地址信息,再传送数据信息。处理时,地址信息的TB8位设为1,数据信息的TB8位设为0。硬件线路如图2.7所示。

图2.7 多机通信线路图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

单片机多机通信的过程如下:

1.所有从机复位,置SM2=1,使其处于准备接收一帧地址数据的状态;

2.主机设置第9位TB8=1,发送一帧地址信息,与所需要的从机进行联系;

3.各从机接收到地址信息后,分别于自己的地址进行比较,对于地址相符的从机,置SM2=0,以便于接收主机随后发送的所有信息;对于地址不相符的从机,仍保持SM2=1,对主机随后发送的数据不进行处理。

4.主机发送控制指令和数据给从机,此时一帧数据的第9位TB8=0。

5.当从机接收数据结束的时候,置SM2=1,返回接收地址帧状态。

6.主机继续发送其它地址帧,与其它从机进行通信。

多机通信协议约定:

主机为了正确地和指定的从机正确的通信,双方需要对各种数据、地址、指令和状态等进行明确的约定。本系统的通信协议作如下规定:

主机的控制命令:01H表示主机请求从机接收数据;02H表示主机请求从机发送数据。其它保留,可定义其它用途。

从机的地址定义在00H到FEH之间,即系统中最多允许连接255个从机。对于地址FFH定义为对所有从机都有效的控制命令,用于将各从机恢复到复位状态,即SM2=1。

按照上面的协议规定:主机首先发送地址帧,被寻址的从机向主机回送本地地址。主机判断地址是否相符,然后给被寻址的从机发送控制命令,被寻址的从机根据其命令向主机发送本地机状态。若主机判断状态正常,即开始发送或接收数据,后面紧跟的便是数据,若主机判断不正常,需要重新联系。为了能够实现多单片机之间的数据传送,本系统采用多机通信模式[8][9][10]。

2.2 模块化方案比较与选择

根据51单片机的串行通信的特点,进行了以下系统设计的方案比较与选择。2.2.1单片机芯片的方案选择

方案一:

采用MCS-51芯片,MCS-51是Intel公司单片机的典型代表,内部有4KB ROM

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊间。其结构典型、总线完善、SFR集中管理,并且具有丰富的位操作系统和面向控制功能的指令系统[11]。但是,MCS-51系列单片机在实际应用中使用较少。

方案二:

采用AT89C51芯片作为硬件核心,AT89系列机是ATMEL公司将先进的Flash存储器技术和Intel 80C51单片机相结合的产物,是与MCS-51系列兼容的Flash单片机系列。它既继承了MCS-51原有的功能,又拥有自己是独特功能是目前应用广泛的主流单片机。AT89C51是AT89系列的标准型单片机,是低功耗高性能的8位单片机,使用的最高晶振频率为24MHz。采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,可反复进行系统实验[12]。因此,采用该单片机作为主控制系统的芯片。

2.2.2显示模块方案选择

方案一:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。

方案三:

采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形、符号显示多样,清晰可见。由于本系统主机显示4个数据,从机显示2个数据,选择2

16

的液晶显示器皆可,所以在此设计中采用LCD1602液晶显示屏。

2.2.3 软件编程语言的选择

方案一:

采用汇编语言编写,汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是汇编语言可读性差,而且不同的CPU,其汇编语言可能有所差异,也不易移植。因此本系统软件不采用汇编语言编写。

方案二:

采用C语言编写,C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。缺点是占用资源较多,执行效率没有汇编高。但本系统只进行单片机之间的数据传送,不涉及复杂的数据处理,因此本系统软件采用C语言编写[8]。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊2.3总体方案设计

本系统是由一个上位机系统和三个下位机系统构成,上位机系统是由AT89C51单片机串行通信最小系统、LCD1602显示器、中断发送信号按钮和接收/发送选择开关组成。三个下位机系统的构成完全相同主要有AT89C51单片机串行通信最小系统、LCD1602显示器和中断数据加1按钮组成。单片机最小系统是控制系统的核心,LCD1602液晶显示器作为串行通信接收/发送数据以及单片机状态的显示。上位机系统的发送/接收状态可以通过接收/发送选择开关进行控制,处于发送数据状态时,由中断发送信号按钮决定是否给从机发送数据。下位机系统始终处于串行中断状态,是接收还是发送数据由上位机发送的控制命令决定。系统框图如图2.8所示。

本系统主要完成的功能是上位机和下位机的半双工通信,可以通过接收/发送选择开关来控制上位机是处于接收状态还是发送状态。当处于接收状态时,主机循环接收下位机00#、01#、02#三机的实时数据,并进行显示;当处于发送状态时,主机将接收到的三机数据按从大到小的数据排列,然后依次发送到00#、01#和02#机上,并进行显示。从机的数据通过外部中断输入,数据从0开始每来一次中断数据加1,加到9数据清0,再从0到9进行循环。

2.4本章小结

本章介绍了系统的方案选择,主要对单片机串行通信的相关知识进行了归纳整理和工作方式选择,以及模块化方案的比较与选择,最后确定了串行通信控制系统要实现的功能并绘制了系统框图。

图2.8 串行通信系统框图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

3.系统硬件设计

根据总体设计方案框图,总系统由4个分系统组成,1个上位机系统,3个下位机系统。硬件主要由AT89C51微控制器、LCD1602液晶显示器、开关和按钮组成。

3.1硬件电路核心器件介绍

本系统的两大核心器件位AT89C51单片机和LCD液晶显示器,AT89C51单片机完成系统的功能控制部分,液晶显示器完成通信过程中数据的实时显示。

3.1.1 AT89C51的主要特点

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS的 8位单片机,采用单一+5V电源供电,片内含4KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89C51的主要部件:

(1)一个以ALU为中心的8位中央处理器,完成运算和控制功能。

(2)128B的内部数据存取存储器(内部RAM),其地址空范围00H-7FH。

(3)21个特殊功能寄存器,离散分布于地址80H-FFH中。

(4)程序计数器PC,是独立的16位专用寄存器,内容为将要执行的指令地址。

(5)4KB Flash内部程序存储器(片内ROM),用来存储程序、原始数据、表格等。

(6)4个8位可编程I/O口(P0、P1、P2和P3)。

(7)一个UART串行通信口。

(8)2个16位定时器/计数器。

(9)5个中断源,两个中断优先级的中断控制系统。

(10)一个片内振荡器和时钟电路。

AT89C51的极限参数如表1所示:

工作温度-55℃到+125℃

储藏温度-65℃到+150℃

任一引脚对地电压-1.0V到+7.0V

最高工作电压 6.6V

直流输出电流15.0mA

表1 AT89C51的极限参数:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊AT89C51单片机双列直插式引脚图如图3.1所示,其引脚说明如下:

(1)电源引脚

Vcc(40):接DC电源端,Vcc=+5V%

20

GND(20):接地端。

(2)P0-P3引脚

P0口:是一组8位漏极开路型双向I/O,也

即地址/数据总线复用口。作为输出口用时,每位

能以吸收电流的方式驱动8个TTL逻辑门电路,

对端口写“1”可作为高阻抗输入端用。

P1口:是一个带内部上拉电阻的8位双向I/O

口,P1的输出缓冲级可驱动(吸收或输出电流)

4个TTL逻辑门电路。作输入口使用时,因为内

部存在上拉电阻,某个引脚被外部信号拉低时会

输出一个电流(IIL)。

P2口:是一个带有内部上拉电阻的8位双向

I/O口,P2的输出缓冲级可驱动(吸收或输出电

流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

P3口:是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示:

端口引脚第二功能

P3.0 RXD (串行输入口)

P3.1 TXD (串行输出口)

P3.2 0

INT(外中断0)

P33 1

INT(外中断1)

P3.4 T0 (定时/计数器0)

P3.5 T1 (定时/计数器1)

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

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

图3.1 AT89C51双列直插式引脚图

表2 P3口的第二功能:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

(3)时钟引脚

XTAL1(19):振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2(18):振荡器放大器的输出端。

(4)控制线引脚

RST(9):复位输入端。此引脚出现至少两个机器周期的高电平,将单片机复位。

ALE/)

PROG

((30):地址锁存/编程脉冲。对Flash存储器编程期间,该引脚用于输入编程脉冲)

PROG

(。

PSEN(29):外部ROM读选通信号。当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

EA/VPP(31):内、外ROM选择/编程电源。EA为片内外ROM选择端。当EA保持高电平时,先访问片内ROM,当PC的值超过4KB时,自动转向执行片外ROM中的程序。。当EA保持低电平时,只访问片内ROM。在Flash存储器编程期间,该引脚用于施加编程电压Vpp[13]。

3.1.2 LCD1602液晶显示器模块

1602是一款常用的字符型液晶,可显示2行16个字符。1602液晶模块带标准字库,内部的字符发生存储器(CGROM)已经存储了160个5?7点阵字符图形,32个5?10点阵字符图形。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,这个代码就是对应字符的ASCⅡ码。比如大写的英文字母“A”的代码是01000001B(41H),显示时,只要将41H存入显示数据存储器DDRAM即可,液晶自动将地址41H中的中的点阵字符图形显示出来,我们就能看到字母“A”。

1602采用标准的16引脚接口,引脚图如图3.2所示,其功能如表3所示。其中8位数据总线D0-D7和RS、R/W、EN三个控制端口,个

分解时序操作速度支持到1MHz,并且带有字符对比度调

节和背光。

当RS和RW同时为低电平时,可以写入指令或显示

地址;当RS为低电平,RW为高电平时,可以读忙信号;

当RS为高电平,RW为低电平时,可以写入数据。

1602LCD主要技术参数:显示容量:16×2个字符、

芯片工作电压:4.5—5.5V、工作电流:2.0mA(5.0V)、模

块最佳工作电压:5.0V、字符尺寸:2.95×4.35(W×H)mm。

图3.2 1602引脚图

┊┊┊┊┊┊┊┊┊┊┊┊

┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

对1602显示字符控制,通过访问1602内部RAM地址实现,1602内部控制具有80 字节RAM,RAM地址与字符位置对应关系如图3.3所示。

1602的读/写操作,即显示控制,是通过控制指令实现的,控制指令如表4所示[7][14]。

表 4 控制指令表

指令名称指令功能D7 D6D5 D4D3 D2 D1D0 模式设置设置为16×2,5×7点阵,8位数据接口0 0 1 1 1 0 0 0 开/关及光

标设置

D=1开显示;D=0关显示0 0 0 0 1 D C B

C=1显示光标;C=0不显示光标0 0 0 0 1 D C

B B=1光标闪烁;B=0光标不显示0 0 0 0 1 D

C B 输入模式

设置

N=1光标右移;N=0光标左移0 0 0 0 0 1 N S

S=1文字移动有效;S=0文字移动无效0 0 0 0 0 1 N S

表3 1602引脚使用说明

编号符号引脚说明使用方法

1 VSS 电源地-

2 VDD 电源-

3 V0 对比度信号调整端外接分压电阻,调节屏幕亮度

4 RS 数据/命令选择端RS=1时选择数据寄存器,RS=0时选择指令寄存器

5 RW 读/写选择端RW=1时执行读操作,RW=0时执行写操作

6 E 使能信号端高电平使能

7-14 D0-D7 数据I/O 双向数据输入与输出

15 BLA 背景光源正极接到或通过10Ω左右电阻接到VDD

16 BLK 背景光源负极接到VSS

图3.3 1602的RAM地址与字符位置对应关系

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.2电路原理图设计

电路原理图设计是在实现系统功能基础之上,进行器件选型、器件值计算以及整合模块功能电路。但是在Proteus ISIS仿真环境中AT89C51微控制器和LCD1602的外围电路可以不加,通过属性设置对话框可以直接设置AT89C51的外部晶振频率,加载程序即可实现仿真。具体的电路模块设计说明将在本文第六部分AT89C51最小系统的外围电路中详细介绍,在此不再累述。本节主要介绍如何在Porteus ISIS环境中进行原理图绘制和原理图电气检测。

3.2.1原理图硬件连接说明

根据选择的设计方案,以及系统框图,可将硬件作如下连接:主、从机系统的液晶显示器的数据I/O口D0-D7依次接AT89C51的P1.0-P1.7端口,液晶显示器的RW 读/写选择端、RS数据/命令选择端和E使能信号端依次接AT89C51的P2.0、P2.1和P2.2端口。上位机系统接收/发送选择开关上拉电阻接单片机的P0.0口,中断发送信号按钮上拉电阻接单片机P3.2外部中断0输入端。三个下位机系统的中断数据加1按钮上拉电阻接单片机P3.2外部中断0输入端。

原理图中所有器件及其标称值、数量和代号如表5所示。

序号名称标称数量代号

1 电阻470Ω7 R1、R2、R3、R4、R5、R6、R7

2 电阻10KΩ 4 R8、R9、R10、R31

3 电容22pF 8 C1、C2、C4、C5、C7、C8、C10、C11

4 电容100uF 4 C3、C6、C9、C12

5 单片机AT89C51 4 U1、U2、U3、U4

6 液晶显示器LM061L 4 LCD1、LCD2、LCD3、LCD4

7 8引脚排阻RESPACK-8 4 RP1、RP2、RP3、RP4

8 晶振12M 4 X1、X2、X3、X4

表 5 元器件列表

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.2.2 基于Proteus ISIS系统原理图设计

Proteus ISIS 原理图设计是具智能性和人性化的设计,过程简明高效。ISIS原理图输出流程包括设置编辑环境、原理图连线、建立网络表、报表输出等过程。本系统的原理图绘制过程如下[3][12]:

1.启动PROTEUS ISIS图标 ,进入ISIS窗口,如图3.4所示:

ISIS主要包括:菜单栏、工具栏、对象预览窗口、编辑区、器件选择按钮、对象选择器、仿真按钮、方位控制按钮、状态栏等。

2.创建原理图文件

单击菜单栏中的“FILE/NEW DESIGN”,弹出如图3.5所示的新建设计(Create New Design)对话框。单击“OK”按钮,则以默认的模板(DEFAULT)建立一个新的空白文件。

图3.4 ISIS 窗口

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊

┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

单击工具按钮

,取文件名“串行通信原理图”,后缀为

DSN是系统自动加上去是,然后单击保存按钮,则完成新建文件操作。

3.设置图纸大小

根据设计串行通信原理图的大小,默认的A4的原理图纸不能满足设计的要求,需要对图纸的大小重新设置。单击“System/Set Sheet Size”,出现如图3.6所示的对话框,选择“User(自定义)”复选框,定义长为16in,宽位8in,点击“OK”。

4.从库中选择原理图中的元器件

图3.5 创建新设计文件

图3.6 图纸大小设置窗口

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

单击如图3.7所示中的“P”按钮,弹出如图3.8所示的元器件选择框。在“Keyword”栏中输入元器件“AT89C51”,则可元器件列表。从列表中选中AT89C51行后,再双击,便将AT89C51选入对象选择器中。同样的方法把原理图中的其他器件放入对象选择器中,以备画原理图时调用。

5.放置元器件

在如图3.9所示的对象选择器中选择取AT89C51元器件,再在如图3.10所示的ISIS编辑区空白处单击,即可将元器件AT89C51放置在原理图编辑区中。同样的方

法把对象选择器中的其他器件放入原理图编辑区中,以备原理图连线。

6.放置电源、地、和输入输出终端

单击绘图工具中的终端按钮,在对象选择器中单击终端符号POWER,放置电源,单击GROUND放置地,单击DEFAULT放置普通端子,如图3.11所示。

7.连线

单击自动布线图标,自动布线有效,根据原理图中器件的接线,单击要连线的起点和终点,系统便会自动以直角走线,成连线。连线结果如图3.12所示。

图3.7 选取元件按钮图3.8 元器件选择框

图3.9 对象选择器图3.10 放置AT89C51

51单片机与PC串口通讯

目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

51单片机与PC串口间通讯设计与分析

51单片机与PC串口间通讯设计与分析 摘要:51单片机是一种集CPU,RAM,FLASH ROM,I/O接口和定时中断系统于一体的微型计算机。只要有外加电源和晶体振荡器就可以独立完成对数字信号的算术运算,逻辑控制,串行通信等功能。由于单片机具有体积小,重量轻,功耗低,功能强,价格低,可靠性好等诸多优点,因而在仪器仪表,家用电器,数据采集等一些嵌入式控制领域被广泛应用。 当需要处理较复杂数据或需要对多个采集数据进行综合处理以及需要进行集散控制时,单片机的算术运算和逻辑运算能力显的不足,这时往往需要借助计算机系统。将单片机采集的数据通过串行口传给PC机,由PC机高级语言或数据库语言进行处理,或者实现PC 机对远程单片机进行控制。因此,实现单片机与PC机之间的远程通信更具有实际意义。 关键词:单片机、PC机、发送数据、接收数据串行通信

目录 摘要------------------------------------------------------------------(1)1、绪论---------------------------------------------------------------------------(3) 1.1单片机的发展阶段-------------------------------------------------(3) 1.2单片机的发展趋势-------------------------------------------------(3) 1.3单片机的应用模式-------------------------------------------------(4) 1.4单片机与PC串口间通讯设计的应用--------------------------(5) 2、系统设计-------------------------------------------------------------------(6) 2.1设计思路-------------------------------------------------------------(6) 2.2系统组成-------------------------------------------------------------(6) 3、单元硬件电路设计-------------------------------------------------------(7) 3.1硬件的实现过程-----------------------------------------------------(7) 3.1.1 RS-232C总线标准-------------------------------------------(8) 3.2 RS-232接口电路----------------------------------------------------(9) 3.2.1 MAX-232接口电路------------------------------------------(9) 3.3 51单片机与PC机串行通信电路-----------------------------(11) 4、软件设计------------------------------------------------------------------(12) 4.1 软件设计和硬件设计的关系-----------------------------------(12) 4.2 程序设计-----------------------------------------------------------(13) 4.3程序运行后的结果------------------------------------------------(17) 5、结论-----------------------------------------------------------------------(18) 6、参看文献------------------------------------------------------------------(19)

51单片机与PC机通信资料

《专业综合实习报告》 专业:电子信息工程 年级:2013级 指导教师: 学生:

目录 一:实验项目名称 二:前言 三:项目内容及要求 四:串口通信原理 五:设计思路 5.1虚拟串口的设置 5.2下位机电路和程序设计 5.3串口通信仿真 六:电路原理框图 七:相关硬件及配套软件 7.1 AT89C51器件简介 7.2 COMPIN简介 7.3 MAX232器件简介 7.4友善串口调试助手 7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计 九:proteus仿真调试 十:总结 十一:参考文献 一:实验项目名称:

基于51单片机的单片机与PC机通信 二:前言 在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。 目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。 为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。 用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。 串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。所以,深入的理解学习和研究串口通信相关知识是非常必要的。此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

基于51单片机的串口通讯系统课程设计论文

引言 人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。单片机的出现使人类实现利用编程来代替复杂的硬件搭建电路,它靠程序运行,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 单片机应用的主要领域非常广,智能化家用电器、办公自动化设备商业营销设备、工业自动化控制、智能化仪表、智能化通信产品、汽车电子产品、航空航天系统和国防军事、尖端武器等领域。 单片机应用的意义不仅在于它的广阔围及所带来的经济效益,更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。以前自动控制中的PID调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并能提高系统性能的控制技术称为微控技术。随着单片机应用的推广,微控制技术将不断发展完善。 电路的集成化不仅对硬件电路的设计相关,与电路的布局同样相关。印刷版的出现使得电路产品更加规,体积更小。Protel99se是一款专业的绘制电路及印刷版的软件,近年来的不断升级使得其功能更加完善,出现了Altium Designer 、Protel DXP等升级版本。

汇编语言实现串口通信(PC和单片机间)教学文案

8.用C语言或汇编语言实现串口通信(PC和单片机间) 上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示 1 硬件电路的设计 MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51 机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。

总体设计按照整体设计思路方案绘制原理图如下所示: 2 系统软件设计 软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信, 1上位PC机与下位单片机异步串行通信的通信协议

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.360docs.net/doc/6a17979138.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

51单片机与串口通信(含代码)

51单片机与串口通信(含代码) 串口调试 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。 程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #i nclude #i nclude #i nclude #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/ unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ; void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收

PCON=0x00; ES=1; TMOD=0x21; //定时器工作于方式2,自动装载方式TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break; case 0x04 :printf("D"); TI=0;break; default :printf("fg"); TI=0;break; } }

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

基于51单片机的双机串行通信

河南机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级:xxxxxx 学号:13xxxxxxxxx 姓名:xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计

1.51单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下: 图1.AT89C51(52) (1)数据缓冲器(SBUF) 接受或发送的数据都要先送到SBUF缓存。有两个,一个缓存,另一个接受,

51单片机usart通信程序(有CRC校验)

#include #include #include #define uchar unsigned char #define uint unsigned int //uchar const table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar p[]={0x01,0x03,0x25,0x23,0x00,0x01}; /* CRC 高位字节值表*/ uchar const crchi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0/**/, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 } ; /* CRC低位字节值表*/ uchar const crclo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06/**/, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

基于51单片机串行通信的无线发射极和接收机设计

基于51单片机串行通信的无线发射极和接收机设计---- 1 概述 1.1 课题的目的、背景和意义 最近几年来,由于无线接入技术需求日益增大,以及数据交换业务(如因特 网、电子邮件、数据文件传输等)不断增加,无线通信和无线网络均呈现出指数增 加的趋势。有力的推动力无线通信向高速通信方向发展。然而,工业、农业、车载 电子系统、家用网络、医疗传感器和伺服执行机构等无线通信还未涉足或者刚刚涉 足的领域,这些领域对数据吞吐量的要求很低,功率消耗也比现有标准提供的功率 消耗低。此外,为了促使简单方便的,可以随意使用的无线装置大量涌现,需要在 未来个人活动空间内布置大量的无线接入点,因而低廉的价格将起到关键作用。为 降低元件的价格,以便这些装置批量生产,所以发展了一个关于这种网络的标准方案。Zigbee就是在这一标准下一种新兴的短距离、低功耗、低数据传输的无线网 络技术,它是一种介于无线标记技术和蓝牙之间的技术方案。 对于这种短距离、低功耗、低数据传输无线技术,它不仅在工业、农业、军 事、环境、医疗等传统领域有着巨大的应用价值,未来应用中还可以涉及人类日常 生活和社会生产活动的所有领域。由于各方面的制约,这种技术的大规模商业应用 还有待时日,但已经显示出了非凡的应用价值,相信随着相关技术的发展和推进, 一定会得到更广泛应用。 1.2国内外无线技术相关现状及Zigbee现状 无线通信从固定方式发展为移动方式,移动通信发展至今大约经历了五个阶段: 第一阶段为20年代初至50年代初,主要用于舰船及军有,采用短波频及电子 管技术,至该阶段末期出现才出现150MHVHF单工汽车公用移动电话系统MTS。

【最新编排】基于51单片机的DHT11串口通讯

//****************************************************************// // DHT 使用范例 //单片机 AT89S5 或 STC89C5 RC // 功能 串口发送温湿度数据波特率 9600 //硬件连接 P .0口为通讯口连接DHT ,DHT 地电源和地连接单片机地 电源和地 单片机串口加MAX 3 连接电脑 // 公司 济南联诚创发科技有限公司 //****************************************************************// #include #include // typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */ typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */ typedef unsigned int U 6; /* defined for unsigned 6-bits integer variable 无符号 6位整型变量 */ typedef signed int S 6; /* defined for signed 6-bits integer variable 有符号 6位整型变量 */ typedef unsigned long U3 ; /* defined for unsigned 3 -bits integer variable 无符号3 位整型变量 */ typedef signed long S3 ; /* defined for signed 3 -bits integer variable 有符号3 位整型变量 */ typedef float F3 ; /* single precision floating point variable (3 bits) 单精度浮点数 3 位长度 */ typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数 64位长度 */ // #define uchar unsigned char #define uint unsigned int #define Data_0_time 4 //----------------------------------------------// //----------------IO口定义区--------------------// //----------------------------------------------// sbit P _0 = P ^0 ; sbit P _ = P ^ ; sbit P _ = P ^ ; sbit P _3 = P ^3 ;

相关文档
最新文档