精华内容
下载资源
问答
  • 单片机串口调试助手

    2012-01-04 20:26:59
    单片机 串口调试助手
  • 很实用的单片机串口调试助手,我就是用这个软件进行串口调试
  • C51单片机串口调试程序 C51单片机串口调试程序C51单片机串口调试程序
  • 本文主要介绍了51单片机串口调试程序一列。
  • 51单片机串口调试程序.docx
  • 51单片机解析野火PID串口调试助手协议
  • 下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。
  • 用自己焊的51最消息系统,配置51单片机的串口中断,与串口调试助手连接通信。
  • 通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上...
  • DS18B20 51单片机串口调试程序,运用串口调试温度十分方便,适合初学者
  • 1.1连接串口调试助手,对其发送随机数据,串口助手发送0x00指令,单片机停止发送数据,发送0x01指令,单片机继续发送数据。 二、开发步骤 2.1 初始化定时器,中断 TMOD=0x20; //定时器T1方式2 TH1=0xf4; //...

    项目要求:下位机使用单片机,不断发送一个随机数值给上位机,上位机收到数据,显示在显示框中。
    上位机部分:https://blog.csdn.net/weixin_42462552/article/details/85937289



    一、功能介绍

    1.1连接串口调试助手,对其发送随机数据,串口助手发送0x00指令,单片机停止发送数据,发送0x01指令,单片机继续发送数据。

    二、开发步骤

    2.1 初始化定时器,中断

       TMOD=0x20;    		//定时器T1方式2
       TH1=0xf4; 	   		//设置串行口波特率为2400 bps
       TL1=0xf4;		
       TR1=1;		     	//启动波特率发生器
       SCON=0x50;   		//串行口工作方式1,允许接收
       EA=1;		     	//开总中断允许位
       ES=1;      	 		//开串行口中断
    

    2.2 编写随机函数

    unsigned int random()
    {
      	unsigned int value;
    	value = rand() % (500 + 1- 1) + 1;//范围:1-500
      	return value;
    }
    

    2.3 编写串行口中断函数,接收来自PC机的数据

    void serial()interrupt 4	//串行口中断类型号是4
    { 
    	 unsigned char rxch; 
    	 if(RI)                  //中断标志 RI=1, 数据接收 
    	 { 
    		RI = 0;              //软件清零 
    		rxch = SBUF;         //读缓冲  
        	if (rxch==0x00)        //停止指令
        	 	 frameFlag =0;       //设置接收完标志位       
    		if (rxch==0x01)      //继续指令
         		 frameFlag =1;      //设置接收完标志位       
    	} 
    }
    

    2.4 发送数据函数

    //功能:向串口发送一个字符串
    void send_string_com(unsigned char str)
    {
    	SBUF = str;
    	while(TI == 0);            //等待发送完毕 
        TI = 0; 
    }
    

    2.5 在main函数中完成功能

    unsigned char temp;
    unsigned int i;
     while(1)
     {	
    	temp=random();
    	if(frameFlag)
    	{
    		send_string_com(temp);
    		for(i=0;i<6000;i++);//延时,降低单片机发送数据的频率
    	}
    }
    

    三、完整代码

    #include <reg52.h> 
    #include <stdlib.h> 
    bit frameFlag=1;       //暂停标志
    void send_string_com(unsigned char str);
    unsigned int random();
    void delay(unsigned int i);
    void main()		//主函数
    {	
       unsigned char temp;
       TMOD=0x20;    	//定时器T1方式2
       TH1=0xf4; 	   	//设置串行口波特率为2400 bps
       TL1=0xf4;		
       TR1=1;		     	//启动波特率发生器
       SCON=0x50;   	//串行口工作方式1,允许接收
       EA=1;		     	//开总中断允许位
       ES=1;      	 	//开串行口中断
       while(1)
    		{	
    		  temp=random();
    			if(frameFlag)
    			{
    				send_string_com(temp);
    				delay(60000);
    			}
    		}
    }
    void delay(unsigned int i) //延时函数
    {
    	unsigned int k;
    	for(k=0;k<i;k++);
    }
    //函数名:send_string_com
    //功能:向串口发送一个字符串
    void send_string_com(unsigned char str)
    {
    	SBUF = str;
    	while(TI == 0);            //等待发送完毕 
      TI = 0; 
    }
    //函数名:serial
    //功能:串行口中断函数,接收来自PC机的数据
    void serial()interrupt 4	//串行口中断类型号是4
    { 
     unsigned char rxch; 
     if(RI)                    //中断标志 RI=1, 数据接收 
    	{ 
    	RI = 0;                 //软件清零 
    	rxch = SBUF;            //读缓冲  
      if (rxch==0x00)         //停止指令   
    	{
         frameFlag =0;            
    	}
    	if (rxch==0x01)          //继续指令 
    	{
         frameFlag =1;          
    	}
    	} 
    }
    unsigned int random()
    {
      unsigned int value;
    	value = rand() % (500 + 1- 1) + 1;
      return value;
    }
    
    
    

    四、实验效果

    串口调试助手效果图

    展开全文
  • C51单片机串口通信调试笔记,便于了解调试过程中的常见问题
  • 单片机89C51模拟仿真串口调试助手,很好用的调试助手
  • stm51串口调试助手.rar

    2021-05-26 12:53:40
    stm51串口调试助手.rar
  • #include #include "err.h"#ifdef INTERSENDSTRunsigned char xdata sSendComBuf[256],sRecComBuf[256];unsigned char data bOut,bIn,bSout,bSin;#else#define DEFSENDCHAR TI=0;SBUF=ACC;while(!...

    #include #include "err.h"

    #ifdef INTERSENDSTR

    unsigned char xdata sSendComBuf[256],sRecComBuf[256];

    unsigned char data bOut,bIn,bSout,bSin;

    #else

    #define DEFSENDCHAR TI=0;SBUF=ACC;while(!TI);TI=0;

    #endif

    //bps设置 9600就是 PSetBps(96)(11.0592Mhz)

    unsigned char  PSetBps(unsigned int bps) SMALL

    {

    unsigned int t1;

    unsigned char t2;

    #ifdef INTERSENDSTR

    /*如果使用中断方式发送数据,必须等待发送数据完毕才能更换波特率 */

    while(bSin!=bSout)

    {

    ;

    }

    ES=0;

    #endif

    #ifdef CHIP_8032

    if(3456%bps)

    {

    return ERR_SET_BPS;

    }

    t1=3456/bps;

    t1--;t1=~t1;

    RCAP2H=t1/256;RCAP2L=t1;

    T2MOD=0x00;

    /*使用定时器2做波特率发生器 */

    T2CON=0x34;/*TF2=0;EXF2=0;RCLK=1;TCLK=1;EXEN2=0;TR2=1;C/T2=0;CP/RL2=0

    */

    #else

    t1=576/bps;

    if((576%bps)||((t1==0))||(t1>=2*256))

    {

    return ERR_SET_BPS;

    }

    if(t1>256)

    {

    PCON=00;

    t2=256-(288/bps);

    }

    else

    {

    PCON=0x80;

    t2=256-t1;

    }

    TH1=t2;TL1=t2;

    TR1=1;

    #endif

    /*模式3*/

    SM0=0;

    RI=0;TI=0;

    REN=1;

    SM1=1;

    SM2=1;

    #ifdef INTERSENDSTR

    bOut=bIn;

    bSout=bSin;

    ES=1;

    #endif

    return OK;

    }

    void PSendChar(unsigned char ch) SMALL

    {

    #ifdef INTERSENDSTR

    unsigned char tch;

    tch=bSin+1;

    while(tch==bSout)

    {

    ;

    }

    sSendComBuf[bSin]=ch;

    ES=0;

    if((bSout==bSin))

    {

    SBUF=sSendComBuf[bSin];

    bSin++;

    }

    else

    {

    bSin++;

    }

    ES=1;

    #else

    ACC=ch;

    DEFSENDCHAR;

    #endif

    }

    unsigned char PGetChar() SMALL

    {

    unsigned char ch;

    #ifdef  INTERSENDSTR

    ch=sRecComBuf[bOut];

    bOut++;

    return ch;

    #else

    ch=SBUF;

    RI=0;

    #endif

    }

    bit PCharInCom() SMALL

    {

    #ifdef  INTERSENDSTR

    if(bIn!=bOut)

    {

    return 1;

    }

    return 0;

    #else

    return RI;

    #endif

    }

    void PSendString(unsigned char *st) SMALL

    {

    while(*st)

    {

    PSendChar(*st);

    st++;

    }

    }

    void PSendArray(unsigned char  *st,unsigned int  len) SMALL

    {

    unsigned int ii;

    for(ii=0;ii

    {

    PSendChar(st[ii]);

    }

    }

    #ifdef  INTERSENDSTR

    void PSerialInt() interrupt 4

    {

    if(RI)

    {

    sRecComBuf[bIn]=SBUF;

    bIn++;

    RI=0;

    }

    if(TI)

    {

    TI=0;

    if(bSout!=bSin)

    {

    bSout++;

    }

    if(bSout!=bSin)

    {

    SBUF=sSendComBuf[bSout];

    }

    }

    }

    #endif

    展开全文
  • C51单片机开发常用工具合集串口调试助手取模软件字库制作软件波特率计算器Image2Lcd取模软件51定时器计算等: 51定时器计算.exe CH340驱动(USB串口驱动)_XP_WIN7共用 Image2Lcd Keil uVision4 LCD点阵提取工具zimo...
  • 1.1连接串口调试助手,对其发送随机数据,串口助手发送0x00指令,单片机停止发送数据,发送0x01指令,单片机继续发送数据。 二、开发步骤 2.1 初始化定时器,中断 TMOD=0x20; //定时器T1方式2 TH1=0xf4; //...

    项目要求:下位机使用单片机,不断发送一个随机数值给上位机,上位机收到数据,显示在显示框中。
    上位机部分:https://blog.csdn.net/weixin_42462552/article/details/85937289

    一、功能介绍
    1.1连接串口调试助手,对其发送随机数据,串口助手发送0x00指令,单片机停止发送数据,发送0x01指令,单片机继续发送数据。

    二、开发步骤
    2.1 初始化定时器,中断

    TMOD=0x20; //定时器T1方式2
    TH1=0xf4; //设置串行口波特率为2400 bps
    TL1=0xf4;
    TR1=1; //启动波特率发生器
    SCON=0x50; //串行口工作方式1,允许接收
    EA=1; //开总中断允许位
    ES=1; //开串行口中断
    1
    2
    3
    4
    5
    6
    7
    2.2 编写随机函数

    unsigned int random()
    {
    unsigned int value;
    value = rand() % (500 + 1- 1) + 1;//范围:1-500
    return value;
    }
    1
    2
    3
    4
    5
    6
    2.3 编写串行口中断函数,接收来自PC机的数据

    void serial()interrupt 4 //串行口中断类型号是4
    {
    unsigned char rxch;
    if(RI) //中断标志 RI=1, 数据接收
    {
    RI = 0; //软件清零
    rxch = SBUF; //读缓冲
    if (rxch0x00) //停止指令
    frameFlag =0; //设置接收完标志位
    if (rxch
    0x01) //继续指令
    frameFlag =1; //设置接收完标志位
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    2.4 发送数据函数

    //功能:向串口发送一个字符串
    void send_string_com(unsigned char str)
    {
    SBUF = str;
    while(TI == 0); //等待发送完毕
    TI = 0;
    }
    1
    2
    3
    4
    5
    6
    7
    2.5 在main函数中完成功能

    unsigned char temp;
    unsigned int i;
    while(1)
    {
    temp=random();
    if(frameFlag)
    {
    send_string_com(temp);
    for(i=0;i<6000;i++);//延时,降低单片机发送数据的频率
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    三、完整代码
    #include <reg52.h>
    #include <stdlib.h>
    bit frameFlag=1; //暂停标志
    void send_string_com(unsigned char str);
    unsigned int random();
    void delay(unsigned int i);
    void main() //主函数
    {
    unsigned char temp;
    TMOD=0x20; //定时器T1方式2
    TH1=0xf4; //设置串行口波特率为2400 bps
    TL1=0xf4;
    TR1=1; //启动波特率发生器
    SCON=0x50; //串行口工作方式1,允许接收
    EA=1; //开总中断允许位
    ES=1; //开串行口中断
    while(1)
    {
    temp=random();
    if(frameFlag)
    {
    send_string_com(temp);
    delay(60000);
    }
    }
    }
    void delay(unsigned int i) //延时函数
    {
    unsigned int k;
    for(k=0;k<i;k++);
    }
    //函数名:send_string_com
    //功能:向串口发送一个字符串
    void send_string_com(unsigned char str)
    {
    SBUF = str;
    while(TI == 0); //等待发送完毕
    TI = 0;
    }
    //函数名:serial
    //功能:串行口中断函数,接收来自PC机的数据
    void serial()interrupt 4 //串行口中断类型号是4
    {
    unsigned char rxch;
    if(RI) //中断标志 RI=1, 数据接收
    {
    RI = 0; //软件清零
    rxch = SBUF; //读缓冲
    if (rxch0x00) //停止指令
    {
    frameFlag =0;
    }
    if (rxch
    0x01) //继续指令
    {
    frameFlag =1;
    }
    }
    }
    unsigned int random()
    {
    unsigned int value;
    value = rand() % (500 + 1- 1) + 1;
    return value;
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    四、实验效果
    串口调试助手效果图

    展开全文
  • 用C语言编写的串口调试程序 定义为中断方式串口处理
  • } //------------------------------------------------串口初始化------------------------------------------------------ void Uart_Init( void ) { //波特率9600 TMOD = 0x20; //定时器T1使用工作方式2 TL1 = 0...

    //头文件
    #include “reg52.h”

    //宏定义
    #define uchar unsigned char
    #define uint unsigned int

    //函数声明
    /******************************************/
    //延时子函数

    void delay(unsigned int time);

    /******************************************/
    uchar Uart_TxRxBuf;

    /******************************************/
    //延时子函数
    //参数范围 0-65536
    void delay(unsigned int time) //参数 time 大小
    { //决定延时时间长短

    while(time--);
    

    }

    //------------------------------------------------串口初始化------------------------------------------------------
    void Uart_Init( void )
    { //波特率9600
    TMOD = 0x20; //定时器T1使用工作方式2
    TL1 = 0xfa;
    TH1 = 0xfa;
    TR1 = 1; // 开始计时
    SCON = 0x50; //工作方式1,波特率9600bps @ 11.0592,允许接收
    PCON |= 0x80;
    ES = 1;
    EA = 1; // 打开所有中断
    }

    /******************************************/
    //主函数
    void main(void)
    {
    Uart_Init();
    delay(500);
    while(1) //主程序循环
    {
    ;
    }
    }

    void com_isr(void) interrupt 4 //串口中断
    {
    uchar Temp;
    if(RI)
    {
    RI=0;
    Temp=SBUF;
    P0=Temp;
    SBUF=Temp;
    }
    if(TI)
    TI=0;
    }

    展开全文
  • 单片机串口调试程序,里面包含串口串口调试程序源文件,单片机,记住,自学很重要!!!!!我的资源里面还有很多电子、单片机方面的资料、工具、软件....
  • 串口调试助手

    2017-11-22 14:15:47
    内含串口调试助手2个,亲测可用,适用于51和stm32单片机
  • //串口2发送数据表示单片机串口正常工作 // send_uart_two(0xaa); //串口2发送数据表示单片机串口正常工作 /* for(array_point=0; array_point; array_point++) { send_uart_two(test_array_one[array_point]); } *...
  • 基于51单片机串口调试C程序设计,采用中断方式
  • 串口调试软件可用于DSP,STM32,51等系列单片机进行串口调试使用,软件优秀,不会出现数据传输卡顿以及闪退等问题
  • 串口调试助手2.1 串口PC与单片机通讯 可以将51实验板上的数据通过键盘输入到MSC51芯片上 再通过COM口传进计算机,是单片机初学者必备工具

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,023
精华内容 2,009
关键字:

51单片机串口调试助手