精华内容
下载资源
问答
  • 单片机实验汇编案例---单片机串行口与PC机通讯实验
    千次阅读
    2020-06-21 20:44:55

    一.实验要求

    利用8031单片机串行口,实现与PC机通讯。

    本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上。

    二.实验目的

    1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制。

    2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。

    3.了解PC机通讯的基本要求。

    三.实验电路及连线

    实验电路已在实验机监控电路上构成。

    CS8279接8700H。 模块中的十个短路套都套在8279侧。

    8279状态口地址为8701H;8279数据口地址为8700H;

    四.实验说明

    1.当用GR命令执行程序时,实验机内部会将8031串行口电路切换与PC机通讯,无须连线。

    2.程序执行前,进入LCA51,加载程序后,才进入调试菜单工具中的对话窗口,然后执行GR0,就可实行单片机串行口与PC机通信实验。

    五.实验程序框图

    .实验程序: 
    Z8279 EQU 8701H ;8279 状态/命令口地址
    D8279 EQU 8700H ;8279 数据口地址
    LEDMOD EQU 00H ;左边输入 八位字符显示
                   ;外部译码键扫描方式,双键互锁
    LEDFEQ EQU 2FH ;扫描速率
    LEDCLS EQU 0C1H ;清除显示 RAM
    LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址
    READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字
    
    ORG 0000H
    AJMP START
    ORG 0040H
    START:
    MOV SP,#60H
    LCALL INIT8279 ;初始化8279
    MOV SCON,#50H ;串口 方式 1
    MOV TMOD,#20H ;T1 方式 1
    MOV TL1,#0FDH ;波特率 9600 的常数
    MOV TH1,#0FDH
    SETB TR1 ;开中断
    SETB ET1
    SETB EA
    WAIT:
    JBC RI,DIS_REC ;是否接收到数据
    LCALL GETKEY ;读键盘
    CJNE A,#0FFH,WAIT ;是否有键输入
    MOV SBUF,B ;串口输出键盘输入的值
    NOP
    SS: JBC TI,WAIT ;是否发送完毕
    SJMP SS
    
    DIS_REC:
    MOV A,SBUF ;读串口接收到的数据
    CLR C
    SUBB A,#30H ;以下判定输入是否在0-F
    JC ERROR
    SUBB A,#0AH
    JNC DIS_REC1
    ADD A,#0AH
    SJMP DIS_REC2
    DIS_REC1:
    SUBB A,#7H
    JC ERROR
    SUBB A,#6H
    JNC ERROR
    ADD A,#10H
    DIS_REC2:
    MOV R4,#00H
    MOV R5,A
    LCALL DISLED ;显示输入的数字(0-F)
    ERROR: AJMP WAIT
    
    INIT8279: ;8279初始化子程序
    PUSH DPH ;保存现场
    PUSH DPL
    PUSH ACC
    LCALL DELAY ;延时
    MOV DPTR ,#Z8279
    MOV A,#LEDMOD ;8279工作方式
    MOVX @DPTR,A
    MOV A,#LEDFEQ ;置键盘扫描速率
    MOVX @DPTR,A
    MOV A,#LEDCLS ;清除 LED 显示
    MOVX @DPTR,A
    POP ACC ;恢复现场
    POP DPL
    POP DPH
    RET
                   ;读取键盘子程序
                   ;输入:; 输出: B: 读到的键码 A: 按键的标志
    GETKEY: PUSH DPH ;保存现场
    PUSH DPL
    PUSH PSW
    MOV DPTR,#Z8279
    MOVX A,@DPTR ;8279状态
    ANL A,#07H ;屏蔽D7-D3
    JNZ GETVAL ;判断是否有键输入
    MOV A,#0H ;置标志(无键输入)
    SJMP NKBHIT
    GETVAL: MOV A,#READKB ;读 FIFO RAM 命令
    MOVX @DPTR,A
    MOV DPTR,#D8279
    MOVX A,@DPTR ;读键
    ANL A,#0FH ;屏蔽 SHIFT 和 CTRL 键
    MOV DPTR,#KEYCODE ;键码表起始地址
    MOVC A,@A+DPTR ;查表
    MOV B,A ;置返回键值
    MOV A,#0FFH ;置标志(有键输入)
    NKBHIT: POP PSW ;恢复现场
    POP DPL
    POP DPH
    RET
                  ;显示字符子程序
                  ;输入: R4,位置 R5,值
    DISLED: PUSH DPH ;保存现场
    PUSH DPL
    PUSH ACC
    MOV A,#LEDWR0 ;置显示起始地址
    ADD A,R4 ;加位置偏移量
    MOV DPTR,#Z8279
    MOVX @DPTR,A ;设定显示位置
    MOV DPTR,#LEDSEG ;置显示常数表起始位置
    MOV A,R5
    MOVC A,@A+DPTR ;查表
    MOV DPTR,#D8279
    MOVX @DPTR,A ;显示数据
    POP ACC ;恢复现场
    POP DPL
    POP DPH
    RET
    
    DELAY: ;延时子程序
    PUSH 0 ;保存现场
    PUSH 1
    MOV 0,#0H
    DELAY1: MOV 1,#0H
    DJNZ 1,$
    DJNZ 0,DELAY1
    POP 1 ;恢复现场
    POP 0
    RET
                     ;LED显示常数表
    LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
    DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
    DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;'0.,1.,2.,3.,4.,5.,6.,7.'
    DB 0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;'8.,9.,A.,B.,C.,D.,E.,F.'
    DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, '
                    ;键盘键码表
    KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;'1,2,Q,W,A,S,+,Z'
    DB 38H,39H,41H,42H,43H,44H,45H,46H ;'3,4,E,R,D,F,X,C'
    DB 47H,48H,49H,4AH,4BH,4CH,4DH,4EH ;'5,6,T,Y,G,H,V,B'
    END
    

    本素材来自网路,如有侵权,请联系删除。
    获取更多资源,请关注公众号“伊斯电子编程”

    更多相关内容
  • 单片机与 PC 串口通信实验

    万次阅读 多人点赞 2019-01-22 17:57:24
    51 单片机的串行口主要两个独立的串行数据缓冲寄存器 SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制们电路组成。串行口方式 1 是最常用的通信方式,传输的...

    实验原理
    51 单片机的串行口是一个可编程的全双工的通信接口,具有 UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收,也可以作为同步移位寄存器使用。51 单片机的串行口主要有两个独立的串行数据缓冲寄存器 SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制们电路组成。串行口方式 1 是最常用的通信方式,传输的数据共 10 位,1 位起始位,8 位数据位,最低位在前,高位在后,1 位停止位,帧与帧之间可以有空闲,也可以无空闲。
    发送方式:当数据被写入 SBUF 寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,有内部硬件将 TI 置 1,向 CPU 申请中断,接下来可在中断程序中做相应处理,也可以选择不进入中断。
    接收方式:用软件置 REN 为 1 时,接收器以选择波特率的 16 倍速率采样 RXD 引脚电平,检测到 RXD 引脚输入电平发生负跳变时则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入一位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位,当 RI=0;且 SM2=0(或接收到的停止位为 1)时,将接收到的 9 位数据的前 8 位数据装入接收 SBUF,第 9 位(停止位)进入 RB9,并置 RI=1,向 CPU 请求中断。
    在具体操作串行口之前,需要对单片机的一些与串口有关的特殊功能寄存器进行初始化设置,主要设置产生波特率的定时器 1,、串行口控制和中断控制,具体步骤如下:
    ○1 确定 T1 的工作方式(编程 TMOD 寄存器);
    ○2 计算 TI 的初值,装载 TH1,TL1;
    ○3 确定串行口工作方式(编程 SCON 寄存器);
    ○4 串行口工作在中断方式,要进行中断设置,(编程 IE,IP 寄存器);

    相关寄存器的选择说明

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    实验代码如下

    #include <reg52.h>
    #define uchar unsigned char
    #define uint unsigned int
    uchar num,a;//定义变量
    /*
    ****************************************************************************
    ** 函数名称 : main(void)
    ** 函数功能 : 主函数
    *****************************************************************************/
    void main()
    {
    	TMOD=0x20; //用来定时器设置
    	TH1=0xfd; //设置初值 9600=(2 的 SMOD 次方/32)*(TI 溢出率)=(1/32)
    //*11059200/(256-X)*12
    	TL1=0xfd;
    	TR1=1; //开启定时器 1
    	SM0=0; //设置串行口工作方式
    	SM1=1;
    	REN=1; //允许串行接收位
    	EA=1; //开启总中断
    	ES=1; //开启串口中断
    while(1)
    {
    	if(num==1) //判断是否有串口数据的传送
    	{
    		ES=0; //关闭串口中断
    		num=0;
    		SBUF=a; //发送数据 a 到 SBUF,即将单片机的数据发送到计算机
    		while(!TI); //发送数据后,TI 自动置 1
    		TI=0; //TI 置 0,才能进行下次发送
    		ES=1; //打开中断
    	}
    }
    }
    void ser() interrupt 4
    {
    	RI=0; //接收到数据后,将 RI 置 0
    	a=SBUF; //接收数据
    	num=1; //标志位
    }
    
    

    为了方便以后复习,写得详细一点,以下是引用.

    串口的6个特征如下。
    (1)、物理上的连线至少3根,分别是Tx数据发送线,Rx数据接收线,GND共用地线。
    (2)、0与1的约定。RS232电平,约定﹣5V至﹣25V之间的电压信号为1,﹢5V至﹢25V之间的电压信号为0 。TTL电平,约定5V的电压信号为1,0V电压信号为0 。CMOS电平,约定3.3V的电压信号为1,0V电压信号为0 。其中,CMOS电平一般用于ARM芯片中。
    (3)、发送秩序。低位先发。
    (4)、波特率。收发双方共同约定的一个数据位(0或1)在数据传输线上维持的时间。也可理解为每秒可以传输的位数。常用的波特率有300bit/s, 600bit/s, 2400bit/s, 4800bit/s, 9600bit/s。
    (5)、通信的起始信号。发送方在没有发送数据时,应该将Tx置1 。 当需发送时,先将Tx置0,并且保持1位的时间。接受方不断地侦测Rx,如果发现Rx常时间变高后,突然被拉低(置为0),则视为发送方将要发送数据,迅速启动自己的定时器,从而保证了收发双方定时器同步定时。
    (6)、停止信号。发送方发送完最后一个有效位时,必须再将Tx保持1位的时间,即为停止位。

    注意:

    读取SBUF数据或接受SBUF数据都是采用ASCII码,数据类型unsigned char,二进制数据

    实验

    从串口中输入0-999,数码管显示0-999.

    #include <reg52.h>
    #define uchar unsigned char 
    #define uint unsigned int 
    sbit wela1 = P1^0; //第一位
    sbit wela2 = P1^1; //第二位
    sbit wela3 = P1^2; //第三位	   
    unsigned int  a; 
    uchar num,ge,shi,bai;
    
    uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
     0x07,0x7f,0x6f};//不带小数点的共阴数码管段值0-9。
    uchar code tablewe[]={0x04,0x02,0x01};
    
    uchar table1[2];
    uchar k=0;
    void delay(uchar x)//延时
    {
    	uchar i,j; 
    	for(j=x;j>0;j--)
    	{
    		for(i=113;i>0;i--){}
    	}
    }
    void main(void)
    {          
    	TMOD=0x20;  	   //用定时器设置串口波特率    9600  
     	TH1=0xfd; 	 	   //赋初值  9600=(2 的 SMOD 次方/32)*(TI 的溢出率)=(1/32)*11059200/(256-X)*12 x=253 
     	TL1=0xfd; 	 	   //赋初值 
     	TR1=1;  	 	   //开启定时器 1 
     	SM0=0;  	 	   //模式选择  	
    	SM1=1; 
     	REN=1;             //串口初始化 
     	EA=1;              //开启总中断 
     	ES=1; 	 	 	   //开启串口中断 
    	P1=0x00;
    	while(1)
    	{
     	 	if(num==1)     //判断是否有串口数据的传送 
     	 	{ 
    			num=0;
    			if (table1[1]==0x00){
    				bai=table1[1];
    				shi=(table1[0]>>4)&0xf;
    				ge=table1[0]&0xf;
    				//if((table1[0]>>4)&0xf==0x00)出错
    			}else{
    				bai=(table1[0]>>4)&0xf;
    				shi= table1[0]&0xf;
    				ge=table1[1];
    			}
     	 	}
    		if (bai!=0x00){
    			P1=0x04;
    			P0=table[bai];
    			delay(5);		
    		}
    		if (shi!=0x00){
    			P1=0x02;
    			P0=table[shi];
    			delay(5);	
    		}
    		P1=0x01;
    		P0=table[ge];
    		delay(5);
    	}  
    }
    void ser() interrupt 4 	 	 //串口中断号 4 
    { 
    	table1[0]=0;
    	table1[1]=0;//清零
    	if(RI)
    	{
    		for(k=0;k<2;k++)
    		{
    			
    			while(!RI); //查询接收标志
    			RI=0;
    			table1[k]=SBUF;//一次读8位
    			delay(10);
    			if (RI==0)	break;	//表示只发一位 
    		}
    	
    	}	 
        num=1;//表示有接收
    } 
    
    展开全文
  • 以下目录需要写权限: /Runtime /App/Common/Conf /App/User/Conf /App/Install/Data 1、请在浏览器地址栏输入:http://您的网址 ,开始进行微动力安装。 2、环境检测,检测软件安装环境 3、设置数据库帐号和网站...
  • 分析: 由上述的实验拓扑图可知,该拓扑图中共存在8个网络,那么所需要的网络地址一共需要8个,路由器C的e1接口所在的网络连接的主机数最多,共需要7个ip地址(e1接口1个ip地址,交换机1个ip地址,3个pc机需要3个ip...

    RIP1路由实验

    本文以华为模拟器ensp为基础进行操作

    一、实验拓扑图:

    在这里插入图片描述
    ensp上构建的实验拓扑图:
    在这里插入图片描述

    二、实验准备

    分析: 由上述的实验拓扑图可知,该拓扑图中共存在8个网络,那么所需要的网络地址一共需要8个,路由器C的e1接口所在的网络连接的主机数最多,共需要7个ip地址(e1接口1个ip地址,交换机1个ip地址,3个pc机需要3个ip地址,1个网络地址,1个广播地址),那么主机位数最小要大于等于3位。通过上述分析可知,可以采用C类地址来进行网络划分,此时网络数和主机数都可以满足要求,C类地址所对应的的子网掩码为24位。
    路由器网络地址方案设计如下:

    路由器E0E1E2
    A219.246.78.1 /24219.246.79.1 /24
    B219.246.80.1 /24219.246.79.2 /24219.246.82.1 /24
    C219.246.78.2 /24219.246.84.1 /24219.246.83.1 /24
    D219.246.80.2 /24219.246.81.1 /24219.246.83.2 /24
    E219.246.85.1 /24219.246.81.2 /24219.246.82.2 /24

    分析:
    由拓扑图可知A的e1接口和B的e1接口位于一个网络中,且采用的是C类地址划分,所以将A的e1和B的e1设置为相同的网络地址,即219.246.79.0,A的e0和C的e0位于同一网络中,将A的e0和C的e0设置为相同的网络地址,即219.246.78.0,。B的e0和D的e0位于同一网络中,将B的e0和D的e0设置为相同的网络地址,即219.246.80.0,D的e1和E的e1位于同一网络中,设置网络地址为219.246.81.0,B的e2和E的e2位于同一网络中,设置网络地址为219.246.82.0,C的e2和D的e2位于同一网络中,设置网络地址为219.246.83.0,最后设置C的e1的网络地址为219.246.84.0,设置E的e0网络地址为219.246.85.0。网络地址设置完毕。

    主机号IP地址网关
    7-1219.246.84.3 /24219.246.84.1 /24
    7-2219.246.84.4 /24219.246.84.1 /24
    7-3219.246.84.5 /24219.246.84.1 /24
    7-4219.246.85.3 /24219.246.85.1 /24
    7-5219.246.85.4 /24219.246.85.1 /24

    分析:
    由上述网络拓扑图可知,7-1,7-2,7-3三台pc机位于路由器C的e1所在的网络中中,所以三台pc机的网络地址都为219.246.84.0,子网掩码为24位,3台pc的ip地址分别设置为219.246.84.3/24,219.246.84.4/24,219.246.84.5/24,网关机路由器C的e1的ip地址,即为219.246.84.1,同理,7-4,7-5两台PC机都位于E的e0所在的网络中,所以两台pc的网络地址都为219.246.85.0,子网掩码为24位,2台pc的ip地址分别设为219.246.85.3/24,219.246.85.4/24,网关为E的e0的ip地址,即为219.246.85.1/24.

    三、实验内容

    1、为各个路由器,主机设置ip地址

    1)设置路由器A的e0和e1的ip地址,实验截图如下:
    在这里插入图片描述
    分析:
    首先在全局模式下利用interface GigabitEthernet0/0/0进入到路由器A的e0端口,进入之后,利用ip ad 219.246.78.1 24 将e0端口的ip地址设置为219.246.78.1,24表示子网掩码,在下面的int g0/0/1为interface GigabitEthernet0/0/1命令的缩写,此命令进入到A的e1端口,并设置相应的ip地址为219.246.79.1,24位子网掩码。

    2)设置路由器B的e0,e1,e2的ip地址,实验截图如下:
    在这里插入图片描述
    分析:
    在全局模式下利用int g0/0/1进入到路由器B的e0端口,利用ip ad 219.246.80.1 24将e0端口的ip地址设置为219.246.80.1,24表示子网掩码,其次,利用 int g0/0/0指令进入路由器B的e1端口,利用ip ad 219.246.79.2 24将e1端口的ip地址设置为219.246.79.2,24表示子网掩码,最后利用int g0/0/2进入路由器B的e2端口,利用ip ad 219.246.82.1 24将e2的端口的ip地址设置为219.246.82.1,24表示子网掩码。

    3)设置路由器C的e0,e1,e2的ip地址,实验截图如下:

    在这里插入图片描述
    分析:
    在全局模式下利用int g0/0/0进入到路由器C的e0端口,利用ip ad 219.246.78.2 24将e0端口的ip地址设置为219.246.78.2,24表示子网掩码,其次,利用 int g0/0/2指令进入路由器C的e1端口,利用ip ad 219.246.84.1 24将e1端口的ip地址设置为219.246.84.1,24表示子网掩码,最后利用int g0/0/1进入路由器C的e2端口,利用ip ad 219.246.83.1 24将e2的端口的ip地址设置为219.246.83.1,24表示子网掩码。

    4)设置路由器D的e0,e1,e2的ip地址,实验截图如下:
    在这里插入图片描述
    分析:
    在全局模式下利用int g0/0/0进入到路由器D的e0端口,利用ip ad 219.246.80.2 24将e0端口的ip地址设置为219.246.80.2,24表示子网掩码,其次,利用 int g0/0/1指令进入路由器D的e1端口,利用ip ad 219.246.81.1 24将e1端口的ip地址设置为219.246.81.1,24表示子网掩码,最后利用int g0/0/2进入路由器D的e2端口,利用ip ad 219.246.83.2 24将e2的端口的ip地址设置为219.246.83.2,24表示子网掩码。

    5)设置路由器E的e0,e1,e2的ip地址,实验截图如下:

    在这里插入图片描述

    分析:
    在全局模式下利用int g0/0/2进入到路由器E的e0端口,利用ip ad 219.246.85.1 24将e0端口的ip地址设置为219.246.85.1,24表示子网掩码,其次,利用 int g0/0/1指令进入路由器E的e1端口,利用ip ad 219.246.81.2 24将e1端口的ip地址设置为219.246.81.2,24表示子网掩码,最后利用int g0/0/0进入路由器E的e2端口,利用ip ad 219.246.82.2 24将e2的端口的ip地址设置为219.246.82.2,24表示子网掩码。

    6)分别设置路由器C的e1下的3台pc的ip地址以及路由器E的e0下的2台pc。实验截图如下:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2、配置路由协议

    配置路由器A的路由协议,截图如下:
    在这里插入图片描述
    分析:
    Rip表示进入rip视图,采用rip1协议,network 219.246.78.0和network 219.246.79.0表示路由器A直连的网络

    配置路由器B的路由协议,截图如下:
    在这里插入图片描述
    分析:
    上述截图表示,设置路由器B直连的网络为219.246.80.0,219.246.79.0,219.246.82.0三个网络。

    配置路由器C的路由协议,截图如下:
    在这里插入图片描述在这里插入图片描述
    分析:
    上述截图表示,设置路由器C直连的网络为219.246.84.0,219.246.78.0,219.246.83.0三个网络。

    配置路由器D的路由协议,截图如下:

    分析:
    上述截图表示,设置路由器D直连的网络为219.246.80.0,219.246.81.0,219.246.83.0三个网络。

    配置路由器E的路由协议,截图如下:

    在这里插入图片描述
    分析:
    上述截图表示,设置路由器E直连的网络为219.246.85.0,219.246.81.0,219.246.82.0三个网络。

    设计测试方案并验证

    原理分析:
    首先使用dis ip routing-table命令查看路由器E的路由表信息,截图如下:
    在这里插入图片描述
    分析:
    通过上述截图可以看出路由器E与219.246.81.0,219.246.82.0,219.246.85.0的网络是直连的,也就是说不需要经过任何路由器就可以访问这些网络中的PC端,这些网络对应的就是路由器E的e0,e1,e2接口,而其他的网络219.246.78.0,219.246.79.0,219.246.80.0,219.246.83.0,219.246.84.0与路由器E使用过RIP协议相连,后面的cost表示中间经过路由器的个数,所以通过路由表我们可以看出要与其他的路由器中的PC机进行通信必须要使其他的路由器遵循RIp1协议。

    设计方案:
    要验证PC与PC机之间的通信,PC机与路由器之间的通信以及路由器与路由器之间的通信,分为以下几个步骤:
    (1)验证路由器C与路由器E之间的通信
    (2)验证路由器C与路由器E的e0网络下的PC4进行通信
    (3)验证路由器C的e1网络下的PC1与路由器E的e0网络下的PC5进行通信

    实验过程:
    (1)验证路由器C与路由器E之间的通信
    在这里插入图片描述
    由上图可知,路由器C给路由器E的e0端口传输了五个包,也接收到了5个包,证明路由器C与路由器E之间能够正常通信。

    在这里插入图片描述
    再通过tracert命令跟踪可以得知,从路由器C到路由器E之间通信的过程中要经过2个网络,经过一个路由器D。

    (2)验证路由器C与路由器E的e0网络下的PC4之间的通信
    在这里插入图片描述
    上述截图表示路由器C下命令行的截图,219.246.85.3表示路由器E的e0网络下的PC4主机,由上述截图可知路由器C为PC4发送了5个包,也接收到5个包,证明路由器和其他网络中的pc机能够进行通信。

    在这里插入图片描述
    通过tracert命令跟踪可知,从路由器C到达PC4需要经过3个网络,经过2个路由器,这里的两个路由器经过分析可知是路由器D和E。

    (3)验证路由器C下的PC1与路由器E的e0网络下的PC5之间的通信

    在这里插入图片描述
    219.246.85.4表示路由器E的e0网络下的PC5主机,由上述截图可知,pc1主机给pc5主机发送了5个数据包,也就收到了5个数据包,证明pc1和pc5之间能够进行通信,而pc1和pc5位于不同的网络中,也证明了不同网络中的主机能够进行通信。
    在这里插入图片描述

    通过tracert命令可知,在传输到219.246.85.4的主机的过程中,一共经过了4个网络,3个路由器,经过分析可知3个路由器分别为C D E。

    展开全文
  • 树莓派3与PC机通信

    千次阅读 2018-08-13 22:36:30
    在写这篇博客之前,网上已经很多关于树莓派和PC机通信的博客教程,因此这篇博客从技术上讲也算不上原创,只不过是结合自己的使用情况做一个总结,便于以后快速解决同样的问题。 二、过程目录 1.硬件连接 2....

    一、前言

           在写这篇博客之前,网上已经有很多关于树莓派和PC机通信的博客教程,因此这篇博客从技术上讲也算不上原创,只不过是结合自己的使用情况做一个总结,便于以后快速解决同样的问题。

    二、过程目录

    1.硬件连接

    2.恢复硬件串口配置方法

    3.编写串口测试代码

    4.使用串口调试助手完成测试

    三、具体过程

    硬件资源:树莓派3、PC机、USB转TTL模块

    (一)硬件连接

           将树莓派的GPIO14(TX)和GPIO15(RX)引脚分别和USB转TTL模块上的PB11(RX)和PB10(TX)引脚(原因见下图)进行连接,并用USB线连接PC机和USB转TTL模块。下面第一张图为树莓派3的GPIO引脚图,第二张图为USB转TTL模块图。

     

           在USB转TTL模块中,右边有8个引脚,左边4个和右边4个是完全相同的,只不过为了模块化设计,将这个模块和主控芯片引脚断开,必要时只需要用跳线帽进行连接即可。红色跳线帽共地,蓝色跳线帽共5V,和树莓派GPIO口连接的杜邦线需要连接PB10和PB11对应的左边的引脚。

    (二)恢复硬件串口的配置方法

    1.下载pi3-miniuart-bt-overlay文件,然后在Terminal终端进入文件存放目录,执行以下命令将文件解压到目录 /boot/overlays/ 下。

    sudo unzip pi3-miniuart-bt-overlay.zip -d /boot/overlays/

    2.使用以下命令编辑 /boot 目录下的config.txt文件

    sudo nano /boot/config.txt

    config.txt文件初始状态如下:

    在文本末尾加上如下一行代码:

    dtoverlay=pi3-miniuart-bt

    按下Ctrl+O组合键,再按下Enter键进行保存操作,最后按下Ctr+X组合键返回终端窗口。

    3.输入以下命令编辑 /boot 目录下的cmdline.txt文件

    sudo nano /boot/cmdline.txt

    删除 console=serial1,115200

           删除前可先进行备份,按下Ctrl+6开始标记,按下方向键可以标记多个,被标记的内容会反白,再次按下Alt+6完成复制,按下Ctrl+U完成粘贴操作;在一行代码前添加 # 符号可以注释掉该行代码。效果如下:

           保存后返回到终端窗口初始界面。

    4.更新配置并重启

           依次输入以下命令进行配置更新:

    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot

    5.查看修改后的映射关系

           输入以下命令查看当前映射关系:

    ls -l /dev

    修改后的映射关系如图:

    6.在树莓派命令窗口中分别通过如下两个命令停止和禁用串口的控制台功能

    sudo systemctl stop serial-getty@ttyAMA0.service
    sudo systemctl disable serial-getty@ttyAMA0.service

    7.重启树莓派

    sudo reboot

    (三)串口测试代码

           使用Python语言在Python图形化界面软件Geany中编写以下代码(一个回显程序),并保存为Uart_test.py。

    # -*- coding: utf-8 -*
    import serial
    import time
    #open the serial
    ser = serial.Serial("/dev/ttyAMA0",115200)
    def main():
      while True:
         #get Buffered character
         count = ser.inWaiting();
         if count !=0:
           #read content and show return 
           recv = ser.read(count)
           ser.write(recv)
         #clear Buffer
         ser.flushInput()
         time.sleep(0.1)
    
    if __name__ == '__main__':
        try:
            main()
        except KeyboardInterrupt:
            if ser != None:
                ser.close() 

           在终端窗口进入程序保存目录,输入以下命令执行测试程序。

    python Uart_test.py

    (四)使用串口调试助手完成测试

           在PC端打开串口调试助手,在能搜索到串口的前提条件下,将波特率调整为115200,打开串口,发送数据,观察接收窗口是否可以接收到发送的数据。

     

    参考博客:

    1.pi3-miniuart-bt-overlay

    2.树莓派3b和电脑串口互相通信进行数据传输的配置过程

    3.浅尝树莓派3之串口配置

    4.树莓派3串口(UART)使用问题的解决方法!!!!

    5.树莓派串口(UART)编程Python示例

    展开全文
  • 在利用PC机的串口调试助手与单片机通信时,单片机与PC机是以ASCII码的形式通信的,比如发送1,其实发送的是字符1,如果在接收区以十六进制显示的话,是31(1的ASCII码)。具体如下: 1. 十六进制发送与十六进制显示...
  • 首先,树莓派要能够使用摄像头,具体使用树莓派完成拍照参照以下两位作者的博客。 https://blog.csdn.net/NCTU_to_prove_safety/article/details/64923572 @ NCTU_to_prove_safety ...
  • centos介绍 CentOS(CommunityEnterprise Operating System,中文意思是:...CentOS并不是全新的linux发行版,倘若一说到RedHat这个大名,大家似乎都听过,在RedHat家族中企业版的产品,它是Red Hat Enterprise Li
  • 将电子书导入Kindle PC或手机

    千次阅读 2020-06-05 00:41:21
    将电子书导入Kindle的简单方法,支持Kindle阅读器、手机Kindle APP、电脑端Kindle。功能支持虽差别,但操作起来都很简单,且能重复利用。
  • 转移APK从手机到PCPC到手机

    千次阅读 2018-11-23 10:07:50
    在移动自动化的生命周期中,许多情况需要将apk文件从设备传输到计算机,反之亦然。即使使用Appium自动化,也需要在系统上安装apk文件,以便脚本可以将Appium定位到它。您必须注意Appium Automation脚本中的以下...
  • 在本的终端上输入以下命令进行安装: sudo apt-get install ssh 安装成功后, 利用SSH 远程登录 Ubuntu服务器 在终端输入以下命令: ssh username@192.168.0.1 其中,username是服务器的名称, 192....
  • PC机与嵌入式设备通信协议设计原则

    千次阅读 2015-12-13 09:21:21
    PC机与嵌入式设备通信协议设计原则:简单,可扩展,低耦合,稳定,高效,易实现,软件开发和考虑硬件。
  • 小型PC服务器的区别(phpc)

    千次阅读 2014-01-20 22:59:37
    摘要:小型PC服务器到底什么区别?从各种性能测评指标到单一CPU的处理能力,小型似乎并不占优势,那么它昂贵的原因何在?我们可以从性能、可靠性、扩展能力这几个比较特点的方面来分析。 CPU可扩展性 ...
  • 成功解决无法安装64位版本的office,因为在您的PC上找到了以下32位程序,已32位版本 目录 解决问题 解决思路 解决问题 无法安装64位版本的office,因为在您的PC上找到了以下32位程序,已32位版本...
  • 如果想要解析一个TCP/IP协议栈,需要了解以下层次: • 第一层——物理层:(描述物理连接)主要由外部物理层芯片实现 • 第二层——数据链路层:(描述物理层上数据传输的途径)可以由PS的MAC实现 • 第三层——...
  • PC机中无符号整数四种不同的长度,十进制整数256在PC中使用无符号整数表示时,至少需要用【16】个二进位表示最合适。十进制整数128使用带符号整数表示时,至少需要9个2进制位。其表示为:010000000,其中高位...
  • 准备工具 一部安卓手机,不需要root以及其它 配置前需要一台电脑 ...6. 我们需要往这里面安装一些python库,我建议是将PC上的python库直接复制到里面即可 需要以下几个库 1> uiautomator2(这个要不会装...
  • JS:PC网站转化为手机自适应网页

    万次阅读 2018-09-28 14:36:32
    说明:已完成网站pc端开发,后因客户需要手机端,遂要实现以下功能: pc电脑访问显示原pc端网页; 手机端访问该网页,自动跳转至手机版网页 方法一: 不改变源码,web网页转化手机自适应网页: 打开...
  • 电脑PC页面和手机移动页面适配跳转

    千次阅读 2018-01-22 16:18:06
    电脑PC页面和手机移动页面适配跳转 html页面,涉及到检测终端的问题,如果是电脑端,就跳到PC版页面;如果是手持端设备,就跳转到指定的shou网页上。 方法一、@media screen 思路:css使用媒体查询,当屏幕...
  • 以下代码用于JQuery判断访问的浏览器的类型/** * 判断访问类型是电脑还是手机 * * @author 何明胜 * * 2017年9月27日 */$(function(){ var mobile_flag = isMobile(); // true为PC端,false为手机端 if...
  • 最近做了一个项目,里面涉及到监控PC桌面和监视手机屏幕的功能,客户需要在PC电脑上和安卓手机上都能够观看对方的屏幕,而对方的设备既可以是PC电脑,也可以是安卓手机。 为了便于以后复习,我把这个屏幕监控的...
  • 基于PC的工业控制系统的优缺点分析

    万次阅读 2016-03-16 18:32:08
    今天,这些竞争对手很容易接受PC机用于许多工业生产控制的现状,因为一个接一个的制造商已经在部分生产中采用了PC控制方案。因此,传统上坚持PC是办公机器,不适合工厂灰尘环境的观点也会发生转变。  Beckhoff 是...
  • DragonBoard 410c开发板对外提供LCD及HDMI的接口,用于系统图像显示,但是实际操作中无论接LCD或者接HDMI都比较麻烦,基于此情况,本文介绍如何利用PC机直接显示DragonBoard 410c的系统画面,同时便于用户操作。...
  • 如果您Android手机和Windows PC,则可以使用Windows 10中内置的“您的电话”应用程序从PC中发送文本。 这是Apple Messages应用程序的一大亮点-如果您iPhone,则可以使用Mac进行短信。 好吧,如果您Android...
  • unity3d移动摄像,支持PC、手机

    千次阅读 2014-03-30 10:24:06
    以下代码整合了PC和移动设备移动摄像的方法,支持两点触控缩放 using UnityEngine; using System.Collections; public class MoveCamera : MonoBehaviour { // 记录手指触屏的位置 Vector2 m_scr
  • 解决方案 一、安装软件OfficeRegClean.exe 地址: 点击一键解决,然后重装软件就好。
  • 直接把以下代码另存一个shouji.js写到PC端网址模板首页 <script src="/js/shouji.js" type="text/javascript"></script> //这样直接在手机上访问PC端网址,即可在手机上实现自动跳转对应的手机端网站 var _hmt ...
  • PC Access SMART

    千次阅读 2021-01-26 13:09:25
    PC Access SMART是用于S7-200 SMART的OPC软件。...感觉PC Access SMART 有以下优点:1)PC Access V1.0 SP6不能用于Win7,PC Access SMART可用于32位和64位的Win7。PC Access SMART和PC Access可以安装在同一操作系...
  • Whistle pc抓包,手机抓包,https抓包

    千次阅读 2018-05-04 19:23:13
    《Whistle pc抓包,手机抓包,https抓包》 ------------------------------------------------------------- 分隔符------------------------------------------------------------- 抓包,是我...
  • 华为鸿蒙pc系统

    千次阅读 2021-05-28 12:26:04
    华为鸿蒙pc系统最新版本功能简介:HarmonyOS 2.0 手机开发者 Beta 版本增强以下特性:15000 + 个 APIs (支持开发手机 / PAD、大屏、穿戴、车应用)分布式应用框架分布式 UI 控件DevEco Studio 2.0 Beta3华为鸿蒙pc...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,896
精华内容 70,758
关键字:

以下属于pc机的有