您当前的位置:五五电子网电子知识单片机-工控设备单片机通信单片机与PC 机的通信原理及电路的设计研究 正文
单片机与PC 机的通信原理及电路的设计研究

单片机与PC 机的通信原理及电路的设计研究

点击数:7117 次   录入时间:03-04 11:35:38   整理:http://www.55dianzi.com   单片机通信

      4 硬件设计

      4.1 时钟电路及复位电路

      1.时钟电路

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



www.55dianzi.com

图 4.1 晶振电路

  图 4.1 晶振电路

      2.空闲方式

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

    3.掉电工作方式

    5.2 程序设计

      5.2.1 主程序设计

      主程序主要完成硬件初始化、子程序调用等功能。

      1. 初始化。

      首先调用 LCD 初始化程序,在LCD 上显示数据"RECEIVE:"和"TEMP is: *C".

      然后调用中断及串口初始化子程序程序,把串口接收数据单元RECDATA 清零。设置寄存器SCON 的SM0、SM1 位定义串口工作方式,选择波特率发生器为定时器T1;设定定时器T1 工作方式为方式2;设置波特率参数为9600bps;允许串行中断及总中断;允许串口接收数据,定义REN=1;启动定时/计数器T1 工作,定义TR1=1.

      2. 串口收发数据。

      判断串口成功接收数据标志位flag_UART 是否为0,若flag_uart 为0,表明串口未接收到数据,则继续等待串口接收数据;若flag_uart 为1,表明串口成功接收或发送数据,进入串口中断服务子程序,单片机接收数据,并将串口成功接收数据标志位flag_uart 清零,调用LCD 显示接收数据子程序,在LCD 上显示单片机从串口接收到的数据,同时回传温度值给PC机显示。主程序设计流程图如图5.1 所示。

图 5.1 主程序流程图

  图 5.1 主程序流程图

      5.2.2 串口中断服务子程序

      判断串口发送标志位TI 是否为1,若TI 为1,则把数据从单片机发给PC 机,并把TI清零,中断子程序返回;若TI为0,表明RI=0,则把串口接收标志位RI清零,把串口接收缓冲器SBUF 中的数据写入串口接收数据单元RECDATA,再把该数据送到串口发送缓冲器SBUF 中,传给PC 机,置串口成功接收数据标志位RECOKBIT 为1,表明串口成功接收发送数据,最后中断子程序返回。串口收发数据中断服务子程序设计流程图如图5.2 所示。

图5.2 串口中断服务子程序

  图5.2 串口中断服务子程序

      5.2.3 读温子程序

      读出温度子程序的主要功能是读出RAM 中的9 字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如图5.3 示。

图5.3 读温子程序

  图5.3 读温子程序

      5.2.4 温度转换命令子程序

      温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图5.4 所示。

图5.4 温度转换流程图

  图5.4 温度转换流程图

      5.2.5 计算温度子程序

      计算温湿度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图5.5 所示。

图5.5 计算温度流程图

  图5.5 计算温度流程图

      5.2.6 显示数据刷新子程序

      显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图5.6 所示。

图5.6 显示数据刷新子程序

      图5.6 显示数据刷新子程序

      6 结论

      本系统的硬件采用模块化设计,以AT89C52 单片机为核心,与LCD 显示电路、串行口通信电路及DS18B20 温度检测电路组成控制系统。该系统硬件主要包括以下几个模块:

      AT89C52 主控模块、LCD 显示模块、串行口通信模块、DS18B20 温度检测模块等。其中AT89C52 主要完成外围硬件的控制以及一些运算功能,LCD 显示模块完成字符、数字的显示功能、串行口通信模块主要完成单片机和PC 机之间的通信功能,DS18B20 温度检测模块主要完成环境温度检测功能。

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

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

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

图 4.2 上电复位电路

  图 4.2 上电复位电路

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

图 4.3 最小系统

上一页  [1] [2] [3]  下一页


本文关键字:单片机  通信  单片机通信单片机-工控设备 - 单片机通信