单片机串行通信
实验四串行通信
一、实验目的
1、掌握串行口编程控制方法
2、掌握串口调试和仿真器的烧写方法
3、综合应用定时器、串行接口及中断等
二、实验内容
1、编写一个程序,利用单片机的串行口向PC机循环发送0x55。
2、编写一个程序,每当串行口接收到PC机发送的0x55(ASCII码为字母U)
时,返回一个0x41(ASCII码为字母A)。在PC机一端,以接收窗口收到0x41为完成(可以循环此过程)。
3、PC机向单片机发送0—9(无需编程,在DPFlash的串口调试软件下配置即
可),单片机在接收到数据后送数码管显示;同时,单片机每隔0.5S向PC机发送a—z的ASCII码(0x61~0x7a,每秒发2个),在PC机的串口调试软件中显示结果。
三、实验步骤
1、新建工程,编写程序,实现通过串行口向PC机发送0x55(可采用串口模式
1,波特率2400),注意工程的环境变量设置,Target窗口下code和xdata memory设置为空,无须加入startup.A51,Output窗口下选中Create Hex选项,编译生成HEX文件。
2、阅读网上的实验指导书及下面的说明,掌握DPFlash软件的使用,掌握仿真
器的两种工作方式使用。仿真器拨到load方式,打开DPFlash软件,文件菜单中选择装载,加入编译生成的*.HEX文件,点击编程按扭,使用默认配置即可,烧入仿真器的Flash中。
3、关闭电源,将仿真器拨到run方式,并将连接在仿真器上的PC串口通信电缆
拔下,然后与实验仪上的单片机串口相连。开机复位后将自动运行单片机程序,在PC机的DPflash软件中的串口调试器下观察结果。
4、编写程序实现单片机接收到PC机发来的0x55后回送0x41,在串口调试软件
的处理字符串中发送0x55,可以选中下栏的自动发送单选框来实现每隔1S发送一次,观察结果。
5、关闭电源,用导线分别连接A2区INT1、T0、T1到D5区INT_KEY、SDA、
SCL,C1区的VCC(+5V)到D5区的RST_L,检查无误后打开电源。编写程序实现单片机接收到PC机的数据后送数码管显示。同时,单片机每隔0.5s向PC发送a—z的ASCII码,在串口调试软件中显示结果。
四、注意事项
1、由于只有一个串口线与PC机的COM1相连,当需要将程序下载到仿真器时,
要将PC串口线接仿真器并拨至LOAD,而当要运行下载进仿真器的程序时,需要将开关拨至RUN,并把PC串口线接实验仪。由于不能单步仿真,实验中可能要反复这样操作。
2、单片机的通信波特率可以在标准波特率中自行选择,PC的DPFlash软件一定
要配置与单片机相同的帧格式和波特率。
3、本实验程序不能硬件仿真,只可以软件模拟后生成.hex文件,然后写入仿真
器连续运行。可以通过LED或数码管表示程序运行状态,如果不正确,修改后重新写入仿真器,最终程序没问题可以写入芯片得到相同结果。
4、为了顺利完成实验任务,务必预习,用软件模拟排出故障(实际实验时也是
这样做),得到.hex文件,实验时再直接写入仿真器测试功能是否正确。五、实验代码及注释
实验一:
#include
#include
unsigned char key_s, key_v, tmp;
char code str[] = "welcome! https://www.360docs.net/doc/8118089894.html, \n\r";
char code SST516[3] _at_ 0x003b;
sbit P1_0=P1^0;
void send_str();
bit scan_key();
void proc_key();
void delayms(unsigned char ms);
void send_char(unsigned char txd);
sbit K1 = P3^5;
main()
{
TMOD = 0x20;
TH1 = 0xF3;
TL1 = 0xF3;
SCON = 0x50;
PCON &= 0xef;
TR1 = 1;
IE = 0x0;
while(1)
{
send_char(0x55);
delayms(100);
P1_0=~P1_0;
}
}
bit scan_key()
{
key_s = 0x00;
key_s |= K1;
return(key_s ^ key_v);
}
void proc_key()
{
if((key_v & 0x01) == 0)
{
send_str(); ..
}
}
void send_char(unsigned char txd) {
SBUF = txd;
while(!TI);
TI = 0;
}
void send_str()
{
unsigned char i = 0;
while(str[i] != '\0')
{
SBUF = str[i];
while(!TI);
TI = 0;
i++;
}
}
void delayms(unsigned char ms) {
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
实验二:
#include
#include
#define uchar unsigned char
#define uint unsigned int
char code SST516[3] _at_ 0x003b; uchar c;
void init();
void delay(uint ms);
void send_char(uchar out);
void main()
{
init();
while(1)
{
while(RI == 0);
RI = 0;
c = SBUF;
if(c == 'U')
{
send_char('A');
}
}
}
void init()
{
TMOD = 0x20;
TH1 = 0xf3;
TL1 = 0xf3;
SCON = 0x50;
PCON &= 0xef;
TR1 = 1;
}
void send_char(uchar out)
{
SBUF = out;
while(!TI);
TI = 0;
}
void delay(uint ms)
{
uchar i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
实验三:
#include
#include
#define uchar unsigned char
#define uint unsigned int
char code SST516[3] _at_ 0x003b;
uchar code dis_table[11] =
{
0x28, 0x7e, 0xa2, 0x62, 0x74, 0x61, 0x21, 0x7a, 0x20, 0x60, 0xff };//0,1,2,3,4,5,6,7,8,9,off
uchar transmit = 0x61;
uchar received;
void init();
void delay(uint ms);
void send_char(uchar out);
void main()
{
init();
P0 = dis_table[10];
while(1)
{
send_char(transmit);
transmit++;
if(transmit == 0x7b)
transmit = 0x61;
delay(500);
}
}
void init()
{
TMOD = 0x20;
TH1 = 0xf3;
TL1 = 0xf3;
SCON = 0x50;
PCON &= 0xef;
IE |= 0x90;
TR1 = 1;
EA = 1;
}
void send_char(uchar out)
{
SBUF = out;
while(!TI);
TI = 0;
}
void delay(uint ms)
{
uchar i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void Serial_ISR() interrupt 4
{
if(RI)
{
RI = 0;
received = SBUF;
switch(received)
{
case 0x30:
P0 = dis_table[0];
break;
case 0x31:
P0 = dis_table[1];
break;
case 0x32:
P0 = dis_table[2];
break;
case 0x33:
P0 = dis_table[3];
break;
case 0x34:
P0 = dis_table[4];
break;
case 0x35:
P0 = dis_table[5];
break;
case 0x36:
P0 = dis_table[6];
break;
case 0x37:
P0 = dis_table[7];
break;
case 0x38:
P0 = dis_table[8];
break;
case 0x39:
P0 = dis_table[9];
break;
default:
P0 = dis_table[10];
}
}
}
七、实验心得
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单片机串口调试实验(C语言)
//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 /****************************************************************************** * * 实验名: 串口实验 * 使用的IO : P2 * 实验效果: 将接收到发送回电脑上面。 * 注意: ******************************************************************************* / #include
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单片机串口通信,232通信,485通信,程序
51单片机串口通信,232通信,485通信,程序代码1:232通信 #include
while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {
RI=0; a=SBUF; flag=1; } 代码2:485通信 #include
} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } Love is not a maybe thing. You know when you love someone.
基于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机与下位单片机异步串行通信的通信协议
单片机串行通信实验
单片机实验报告 实验名称:串行通信实验 姓名:高知明 学号:110404320 班级:通信3 实验时间:2014-6-11 南京理工大学紫金学院电光系
一、实验目的(四号+黑体) 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD\RXD口; 3、了解MAX232芯片的作用; 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。他有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H)。发送缓冲器只能写入,不能读出,接受缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器。SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号昨接受或发送移位寄存器的位移时钟。TI与RI分别为发送完数据的中断标志,用来想CPU发中断请求。 三、实验内容 1、发送信号 1)C51程序: #include