微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于串口通信的单片机仿真和C语言开发

基于串口通信的单片机仿真和C语言开发

时间:08-28 来源:互联网 点击:

可用一个MOSFET 管来完成对总线的上拉。

当 DS18B20 处于写存储器操作和温度A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us.采用寄生电源供电方式时VDD 端接地。由于单线制只有一根线,因此发送接口必须是三态的。


图 3.1 DS18B20 引脚图

3.2 工作时序图

1. 初始化


图 3.2 初始化时序图

1)先将数据线置高电平1;2) 延时(该时间要求不是很严格,但是要尽可能短一些);3) 数据线拉到低电平0;4) 延时 750us(该时间范围可以在480~960us);5) 数据线拉到高电平1;6)延时等待。如果初始化成功则在15~60ms内产生一个由DS18B20 返回的低电平0,据该状态可以确定它的存在。但是要注意,不能无限地等待,不然会使程序进入死循环,所以要进行超时判断;7) 若 CPU 读到数据线上的低电平0 后,还要进行延时,其延时时间从发出高电平算起最少要480us;8)将数据线再次拉到高电平后结束。

2. DS18B20 写数据


图3.3 写数据时序图

1) 数据线先置低电平0;

2)延时确定的时间为15us;

3) 按从低位到高位的顺序发送数据(一次只发送一位);

4) 延时时间为 45us;

5) 将数据线拉到高电平1;

6) 重复 1)到5)步骤,直到发送完整个字节;

7)最后将数据线拉高到1.

3. DS18B20 读数据


图3.4 读数据时序图

1)将数据线拉高为1;

2) 延时 2us ;

3) 将数据线拉低0 ;

4) 延时 6us ;

5) 将数据线拉高1 ;

6)延时 4us ;

7) 读数据线的状态得到1 个状态位,并且进行数据处理;

8) 延时 30us ;

9) 重复 1)到7)步,知道读取完一个字节。

4 硬件设计

4.1 时钟电路及复位电路

1.时钟电路

时钟电路可以产生CPU 校准时序,是单片机的控制核心,本次设计是通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1 和XTAL2 分别为反向放大器的输入端和输出端。外接晶体以及电容C3 和C5 构成并联谐振电路,接在放大器的反馈回路中。当用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,外部振荡器通过一个2 分频的触发器而成为内部时钟信号,故对外部信号的占空比没有什么要求,但最小和最大的高电平持续时间和低电平持续时间应符合技术要求。电路如图4.1 所示。


图 4.1 晶振电路

2.空闲方式

在空闲方式下,CPU 的内部时钟信号被门控电路所封锁,CPU 即进入睡眠状态,但内部时钟信号仍继续供给中断系统,定时器和串行口。这种方式由软件调用。在空闲方式期间,片内RAM和所有专用寄存器的状态仍被保留,空闲方式可通过任何允许的中断或硬件复位来终止。当空闲方式由硬件复位终止时,通常系统在空闲处恢复程序的执行。硬件复位只需要信号持续有效两个机器周期。当用复位终止空闲方式时,为防止避免意外写入端口引脚的可能性,调用空闲方式指令的下一条指令不应是写端口引脚或外部存储器。

3.掉电工作方式

在掉电方式下,片内振荡器停止工作。调用掉电指令是执行的最后一条指令。片内RAM 和专用寄存器的值被保留,直到掉电方式终止。退出掉电方式只能靠硬件复位。复位后将重新定义所有专用寄存器,但不改变RAM 的内容。在VCC 未恢复到正常工作电压之前,不能启动复位,复位信号应保持足够长的时间,以保证振荡器的起振和达到稳定。

为了使单片机正常工作,还需要加入上电复位电路和掉电检测电路。上电复位简要原理:

在系统不需要复位时,RST端是低电平;按下按键,RST端变为高电平。


图 4.2 上电复位电路

AT89C51、晶振电路与上电复位电路共同组成单片机最小系统,如图4.3 所示。


图 4.3 最小系统

4.2 温度传感器


图4.4 DS18B20连线图

从图 4.4 可以看出,DS18B20 与单片机的连接非常简单,单片机只需要一个I/O 口就可以控制DS18B20.这个图的接法是单片机与一个DS18B20 通信,如果要控制多个DS18B20进行温度采集,只要将所有的DS18B20 的I/O 口全部连接到一起就可以了。

4.3 LCD显示模块

显示电路采用LCD1602 液晶显示屏,P2 作为液晶8 位数据输入端口。P1.0 口作为液晶数据/命令选择端口,P1.1 为液晶使能端口。


图 4.5 LCD 显示模块

4.4 串行口通信模块设计

51 单片机有一个全双工的串行通信口,使单片机和计算机之间可以方便地进行通信。

电平范围是电路能够安全可靠识别信号的电压范围。

CMOS 电路的电平范围一般是从0 到电源电压。CMOS 电平中,高电平(3.5~5V)为逻辑1,低电平(0~0.8V)为逻辑0.

RS232 接口的电平范围是-15V 到+15V,RS232 电平采用负逻辑,即逻辑1:-3~-15V,逻辑0:+3~+15V.

单片机的串口是TTL 电平的,而计算机的串口是RS232 电平,要使两者之间进行通信,两者之间必须有一个电

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top