上位机串口通信编程(3)

2018-11-20 18:51

掉电模式:

在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。

程序存储模式 器 闲散模式 闲散模式 掉电模式 掉电模式 内部 内部 外部 外部 ALE 1 1 0 0 PSEN P0 P1 P2 P3 1 1 0 0 数据 数据 数据 数据 浮空 数据 地址 数据 数据 数据 数据 数据 数据 数据 数据 数据 表2.2闲散和掉电模式外部引脚状态。

程序存储器的加密

AT89C51可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如下表所示的功能:

程序加密位 1 2 3 4 U P P P U U P P U U U P 没有程序保护功能 禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容 除上表功能外,还禁止程序校验 除以上功能外,同时禁止外部执行 表2.3程序存储器的加密

保护类型 当LB1被编程时,在复位期间,EA端的电平被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正复位位置。为了使单片机正常工作,被锁存的EA电平与这个引脚当前辑电平

9

一致。机密位只能通过整片擦除的方法清除。

3.2MAX232电平芯片介绍

MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。

内部结构基本可分三个部分:

第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。

其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。

8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

第三部分是供电。15脚DNG、16脚VCC(+5v)。 电平转换电路如下:

图3.4 MAX232电平芯片

10

3.3 硬件电路设计图

3.3.1 PC机与单片机通信接口电路设计框图

本文采用MAx232作为PC机与单片机的串行通信接口芯片。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。

图3.5 PC机与单片机通信接口电路设计框图

3.3.2整体设计原理图

总体设计按照整体设计思路方案绘制原理图如下所示:

图3.6整体设计原理图

11

4软件设计

4.1上位机程序设计

void CTem_conDlg::OnOnCommMscomm1() { 数据

VARIANT variant_inp; LONG len,k;

// TODO: Add your control notification handler code here

m_strRXData=\ //每次进入则将编辑框内容清空等待显示新的

BYTE rxdata[2048]; //设置BYTE数组 CString strtemp;

if(m_ctrlComm.GetCommEvent()==2)//事件值为2表示接收缓冲区内有字符

{ //以下你可以根据自己的通信协议加入//处理代码

variant_inp=m_ctrlComm.GetInput();//读缓冲区

safearray_inp=variant_inp; //VARIANT型变量转换为

//ColeSafeArray型变量

len=safearray_inp.GetOneDimSize();//得到有效数据长度 for(k=0;k

safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组

for(k=0;k

BYTE bt=*(char*)(rxdata+k);//字符型

strtemp.Format(\ //将字符送入临时变量strtemp存放 m_strRXData+=strtemp; //加入接收编辑框对应字符串

} }

12

}

UpdateData(FALSE); //更新编辑框内容

4.2下位机程序设计

#include

#define XTAL 11059200 // CUP 晶振频率 #define baudrate 9600 // 通信波特率 #define uchar unsigned char #define uint unsigned int

sbit DQ = P3^3; // 定义DS18B20端口DQ sbit BEEP = P3^7; unsigned char presence ; unsigned

char

code

LEDData1[

={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff};

unsigned

char

code

LEDData[

]

{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0xff}; unsigned char data temp_data[2] = {0x00,0x00};

unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00}; unsigned

char

code

ditab[16]

{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,

0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

void beep();

sbit DIN = P0^7; // 小数点 bit flash=0; // 显示开关标记 bit flag_zf=0; // 正负温度标志

/**********************************************************/ void Delay(unsigned int num)// 延时函数 {

while( --num ); }

/**********************************************************/ uchar Init_DS18B20(void) // 初始化ds1820

13

]

=

=


上位机串口通信编程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《新思维英语阅读Ⅲ》教学辅导(第8章)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: