第三次实验 串口实验教案资料

合集下载

串口实验实验报告

串口实验实验报告

串口实验实验报告串口实验报告一、引言串口是一种常见的数据传输接口,广泛应用于电子设备之间的数据通信。

本次实验旨在通过串口通信实验,深入了解串口的工作原理和使用方法,并实现简单的数据传输。

二、实验目的1. 理解串口通信的基本原理;2. 掌握串口通信的硬件连接方式;3. 学会使用串口通信协议进行数据传输;4. 实现简单的串口通信程序。

三、实验器材1. 一台个人电脑;2. 一块开发板;3. 一条串口数据线。

四、实验步骤1. 将开发板与个人电脑通过串口数据线连接起来;2. 打开串口通信软件,并进行相应的设置;3. 在开发板上编写程序,实现数据的发送和接收;4. 在个人电脑上编写程序,实现数据的接收和显示;5. 进行数据传输实验,观察数据是否能正常传输。

五、实验结果与分析经过实验,我们成功地实现了串口通信,并能够正常地进行数据传输。

通过观察数据接收端的显示,我们可以清晰地看到发送端发送的数据被准确地接收并显示出来。

这说明我们的串口通信实验是成功的。

六、实验总结通过本次实验,我们深入了解了串口通信的原理和使用方法,并成功地实现了串口通信的数据传输。

串口通信在电子设备之间的数据传输中有着广泛的应用,掌握串口通信技术对于我们的学习和工作都具有重要的意义。

七、参考文献[1] XXXX. 串口通信原理与应用[M]. 电子工业出版社, 2010.八、致谢感谢实验中给予我们帮助和指导的老师和同学们,没有你们的支持,我们无法顺利完成本次实验。

九、附录实验中使用的程序代码如下:发送端代码:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <Windows.h>int main(){HANDLE hSerial;DCB dcbSerialParams = { 0 };COMMTIMEOUTS timeouts = { 0 };// 打开串口hSerial = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hSerial == INVALID_HANDLE_VALUE){printf("无法打开串口\n");return 1;}// 配置串口参数dcbSerialParams.DCBlength = sizeof(dcbSerialParams);if (!GetCommState(hSerial, &dcbSerialParams)) {printf("无法获取串口参数\n");return 1;}dcbSerialParams.BaudRate = CBR_9600;dcbSerialParams.ByteSize = 8;dcbSerialParams.StopBits = ONESTOPBIT;dcbSerialParams.Parity = NOPARITY;if (!SetCommState(hSerial, &dcbSerialParams)) {printf("无法设置串口参数\n");return 1;}// 设置串口超时时间timeouts.ReadIntervalTimeout = 50;timeouts.ReadTotalTimeoutConstant = 50;timeouts.ReadTotalTimeoutMultiplier = 10;timeouts.WriteTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 10;if (!SetCommTimeouts(hSerial, &timeouts)){printf("无法设置串口超时时间\n");return 1;}// 发送数据char data[] = "Hello, Serial!";DWORD bytesWritten;if (!WriteFile(hSerial, data, strlen(data), &bytesWritten, NULL)){printf("无法发送数据\n");return 1;}// 关闭串口CloseHandle(hSerial);return 0;}```接收端代码:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <Windows.h>int main(){HANDLE hSerial;DCB dcbSerialParams = { 0 };COMMTIMEOUTS timeouts = { 0 };// 打开串口hSerial = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hSerial == INVALID_HANDLE_VALUE){printf("无法打开串口\n");return 1;}// 配置串口参数dcbSerialParams.DCBlength = sizeof(dcbSerialParams);if (!GetCommState(hSerial, &dcbSerialParams)){printf("无法获取串口参数\n");return 1;}dcbSerialParams.BaudRate = CBR_9600;dcbSerialParams.ByteSize = 8;dcbSerialParams.StopBits = ONESTOPBIT;dcbSerialParams.Parity = NOPARITY;if (!SetCommState(hSerial, &dcbSerialParams)) {printf("无法设置串口参数\n");return 1;}// 设置串口超时时间timeouts.ReadIntervalTimeout = 50;timeouts.ReadTotalTimeoutConstant = 50;timeouts.ReadTotalTimeoutMultiplier = 10;timeouts.WriteTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 10;if (!SetCommTimeouts(hSerial, &timeouts)){printf("无法设置串口超时时间\n");return 1;}// 接收数据char data[100];DWORD bytesRead;if (!ReadFile(hSerial, data, sizeof(data), &bytesRead, NULL)){printf("无法接收数据\n");return 1;}// 显示接收到的数据printf("接收到的数据:%s\n", data);// 关闭串口CloseHandle(hSerial);return 0;}```十、联系方式作者:XXXEmail:XXX。

通信工程设计与监理《串口通讯实验知识点教案》

通信工程设计与监理《串口通讯实验知识点教案》

知识点串口通讯实验
一、教学目标:
通过本实验熟悉Z-Stac协议栈对串口的操作。

二、教学重点、难点:
理解ZigBee点对点实验的原理并掌握实验的步骤
三、教学过程设计:
1知识点说明
1、串口是开发板和电脑交互的一种工具,使用串口的步骤可以分为两步。

2、由于ZigBee协议栈的存在,使得串口的使用略有不同。

2知识点内容
1)使用串口的根本步骤:
1、化串口,包括设置波特率、中断等;
2、收缓冲区发送数据或者冲接收缓冲区读取数据。

2 在ZigBee协议中已经对串口初始化所需的函数进行了实现,用户只需要传递几个参数就可以使用串口,此外ZigBee协议还实现了串口读取函数和写入函数。

因此用户在使用串口是,只需要掌握Z-Stac协议栈中的串口API函数即可。

3知识点讲解
1)利用动画对串口进行讲解。

2)通过对API函数的讲解掌握串口的使用方法。

3)通过录制的实验内容视频,对本实验的具体步骤进行讲解。

4)观察实验的现象进行总结。

四、课后作业或思考题:
1、串口是开发板和电脑_______的一种工具。

2、串口使用的根本步骤。

3、ZigBee协议实现了那些功能。

4、在实验过程中遇到的问题及解决方法。

五、本节小结:
熟悉Z-Stac协议栈对串口的操作,通过串口进行通讯。

第三次实验 串口实验教案资料

第三次实验  串口实验教案资料
#include "2440lib.h"
#include "2440slib.h"
#include <string.h>
#include <stdio.h>
//================================
#define rUTRSTAT0(*(volatile unsigned *)0x50000010)
case 'c':
Uart_Printf("\nYou Pressed 'c'");
点流水灯
break;
default :
break;
}
}
return 0;
}
//*************************[ MPLL ]*******************************
void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
Uart_SendByte(aa );
Uart_SendByte(10);
switch(aa)
{
case 'a':
Uart_Printf("\nYou Pressed 'a'");
点流水灯
break;
case 'b':
Uart_Printf("\nYou Pressed 'b'");
点流水灯
brห้องสมุดไป่ตู้ak;
#define RdURXH0()(*(volatile unsigned char *)0x50000024)

串口通信课程设计(微机原理课程设计)

串口通信课程设计(微机原理课程设计)
//异步读取 private void AsyReceiveData(object serialPortobj) {
SerialPort serialPort = (SerialPort)serialPortobj; System.Threading.Thre源自d.Sleep(500); try {
三、实验步骤
1、打开 Visual Studio 2008,新建C# Windows窗体应用程序项目 2、设计界面,添加界面元素 3、为各个控件设置事件响应代码 4、调试并完成程序
四、设计的控制界面及其操作
设计的控制界面如下所示: 通过“串口设置”可以选择串口、设置帧格式、打开及关闭串口等 通过“状态”可以查看串口状态、发送的数据帧数和接受的数据帧数 在“发送数据”窗口中输入内容,点击“发送”,即把数据发送给对方 在“数据显示”窗口中会显示接受的数据
//开启接收数据线程 ReceiveData(serialPort1); }
private void SendStringData(SerialPort serialPort1) {
serialPort1.Write(txtSend.Text); //发送数据帧加1 lbSendNum.Text = (int.Parse(lbSendNum.Text.Trim()) + 1).ToString(); }
串行通信控制
理学院
一、实验目的
1、掌握串行通信的原理和控制方法。 2、采用三线连接方法,编程控制,实现两台微机异步串行通信。
二、实验原理
1、串口通信连接 本次实验使用了 RS-232C 接口,其标准规定有25根连线,在一般的 微机通信中,只有9个信号经常使用,它们的引脚定义如下表和图所 示:

arm实验报告——串口

arm实验报告——串口

课程:嵌入式设计实验日期:2011 年 6 月成绩:实验三串口通讯实验一实验目的1 掌握ARM的串行口工作原理;2 学习并编程实现S3C2410的UART串口通讯;3 学习并掌握S3C2410寄存器的配置方法。

二实验内容1 实现查询方式串口的收发功能。

实现实验装置通PC平台的串口通讯,接受PC 平台发送出的数字,并将该数字重新返回给PC平台。

三实验设备1 硬件:DM2410B+实验系统PC机JTAG仿真器串口线。

2 软件:PC机操作系统(WINDOWS 2000)ARM DEVELOPER SUITE V1.2四、实验说明1, S3C241}串行A控制寄存器S3C2410自带三个异步串行口控制器,每个控制器有lfi字节的F工FO(先入先出寄存器),最大波特率115. 2Ko每个DART有7种状态:溢出错误,校验错误,帧错误,暂停态,接收缓冲区准备好,发送缓冲区空,发送移位缓冲器空。

通过设置UCONn寄存器选择UA RT时钟是由S3C2410的系统内部时钟PCLK产生还是有外部UART设备的时钟UCLK产生。

波特率的大小可以通过设置波特率寄存器CUBRDIVn)控制。

使用PCLK时的计算公式如下:UBRDIVn=(in七)CPCLYI/ (bps*lE))一1使用UCLK时的计算公式如下:UBRD工介=(int)CUCLYI/ Cbps}1E))一1与DART有关的寄存器有以下几个,关于寄存器的详细说明请参考S3C2410数据手册。

课程:嵌入式设计实验日期:2011 年 6 月成绩:1)线路控制寄存器ULCONn该寄存器的第6位决定是否使用红外模式,位5-3决定校验方式,位2决定停止位长度,位1 和位D决定每帧的数据位数。

2)控制寄存器UCONn该寄存器决定UA RT的各种模式。

3) FIFO控制寄存器UFCONn该寄存器用于收发缓冲的管理,包括缓冲的触发字节数的设置、F工FO的清除和使能。

4} MODEM控制寄存器UMCONn该寄存器用于设置流控方式。

串口实验实验报告

串口实验实验报告

串口实验实验报告串口实验报告【引言】串口通信是一种常见的数据传输方式,它通过串行传输比特流来实现设备之间的通信。

在本次实验中,我们将通过串口实验来了解串口通信的原理和应用。

【实验目的】本次实验的目的是掌握串口通信的基本原理和使用方法,了解串口通信在实际应用中的作用。

【实验器材】1. 串口模块2. 电脑3. 串口线4. 软件调试工具【实验步骤】1. 连接串口模块和电脑:将串口模块与电脑通过串口线相连。

2. 打开串口调试工具:在电脑上打开串口调试工具,并选择正确的串口号和波特率。

3. 配置串口参数:根据实际需求,设置串口的数据位、校验位、停止位等参数。

4. 发送数据:通过串口调试工具发送数据,观察数据是否成功发送。

5. 接收数据:通过串口调试工具接收数据,确认数据是否成功接收。

6. 分析结果:根据实际情况,分析串口通信的数据传输情况,并记录实验结果。

【实验结果】经过实验,我们成功地使用串口模块进行了数据的发送和接收。

通过串口调试工具,我们可以清晰地观察到数据的传输过程,并确认数据的准确性。

【实验总结】通过本次实验,我们深入了解了串口通信的原理和应用。

串口通信在各个领域都有广泛的应用,例如工业自动化、电子设备控制等。

掌握串口通信的基本原理和使用方法对我们的学习和工作具有重要意义。

【实验感想】本次实验让我更加深入地理解了串口通信的工作原理和使用方式。

通过实际操作,我对串口通信有了更清晰的认识,并对其在实际应用中的作用有了更深刻的理解。

通过这次实验,我也更加意识到了实验的重要性和学习的必要性。

【参考文献】1. 《串口通信原理及应用》2. 《串口通信技术与应用》3. 《串口通信实验教程》【致谢】感谢实验指导老师对本次实验的悉心指导,也感谢实验室的同学们在实验过程中给予我的帮助和支持。

他们的支持和鼓励是我完成本次实验的动力来源。

【附录】实验中使用的串口调试工具下载链接:[下载链接](请自行搜索并下载合适的串口调试工具)以上为本次串口实验的实验报告,通过这次实验,我们对串口通信有了更清晰的认识,并掌握了串口通信的基本原理和使用方法。

北理工微机原理实验3

北理工微机原理实验3

北理工微机原理实验3实验三串行通信一、实验目的1、了解串行通信的基本原理。

2、掌握串行接口芯片8251 的工作原理和编程方法。

2、掌握串行接口芯片8250 的工作原理和编程方法。

3、掌握对串行接口芯片的初始化编程;学会串行通信半双工和全双工的编程技巧。

二、实验内容及步骤1、利用PC 机系统的串行通信接口实现与实验系统的双机通信,PC 机的串行通信接口的端口地址为3F8H,并画出三线连接,七线连线通信接口的连线图,接口为标准RS�D�D232(25 芯)插座。

图1 七线连线通信接口的连线图2、按图1连接好电路,其中8254计数器用于产生8251 的发送和接收时钟,TXD 和RXD 连在九针接口处。

3、接线。

CLK0 /8254 接 1M时钟CLK /8251 接 1M时钟(系统已连接,不用连接) GATE0/8254 接 +5V 0UT0 /8254 接 TX/RXCLK /8251 CS /8254 接 Y0 /IO 地址CS /8251 接 Y7 /IO 地址RXD /8251 接 TXD /九针接口TXD /8251 接 RXD /九针接口4、8254 计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

5、设串行通信的波特率为 1200、偶校验、数据位为7 位、一位停止位,利用查询方式实现单工通信。

要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。

分别编写收方和发方的通信程序。

6、上述参数不变,用中断方式实现半双工通信,编写程序。

7、PC 机寄存器的端口地址如下表所示。

PC 机寄存器的端口地址 PC 机寄存器的端口地址 I/O 端口 IN/OUT 3F8* OUT 3F8* IN 3F8** OUT 3F9** OUT 3F9* OUT 3FB OUT 3FA IN 3FC OUT 3FD IN 3FE IN * 线路控制寄存器第七位 DLAB=0 ** 线路控制寄存器第七位 DLAB=1波特率和除数因子对照表因子值波特率波特率单位 HZ 单位 HZ MSB LSB 50 09 00 1800 75 06 00 2000 110 04 17 2400 134.5 03 59 3600 150 03 00 4800 600 00 C0 9600 1200 00 60 寄存器名称发送保持寄存器接收数据寄存器波特率因子(LSB)波特率因子 (MSB) 中断允许寄存器线路控制寄存器中断标志寄存器 MODEM 控制寄存器线路状态寄存器 MODEM 状态寄存器因子值 MSB 00 00 00 00 00 00 LSB 40 3A 30 20 18 0C 三、程序实现对于整个程序的实现,可以分为几个步骤。

串口实验报告

串口实验报告

串口实验报告串口实验报告一、引言串口是一种常见的通信接口,广泛应用于计算机、嵌入式系统和电子设备中。

本次实验旨在通过实际操作串口通信,掌握串口通信的原理和基本操作。

二、实验目的1. 了解串口通信的基本原理;2. 掌握串口通信的设置和配置方法;3. 实现串口通信的数据传输。

三、实验仪器和材料1. 电脑一台;2. 串口线一根;3. 串口调试助手软件。

四、实验步骤1. 连接串口线:将串口线的一端连接到电脑的串口接口,另一端连接到需要进行通信的设备;2. 打开串口调试助手软件:在电脑上打开串口调试助手软件,并选择正确的串口号和波特率;3. 配置串口参数:根据实际需要,设置数据位、停止位、校验位等串口参数;4. 发送数据:在串口调试助手软件的发送窗口中输入需要发送的数据,并点击发送按钮;5. 接收数据:在串口调试助手软件的接收窗口中查看接收到的数据;6. 关闭串口:实验完成后,关闭串口调试助手软件,并断开串口线的连接。

五、实验结果与分析通过实验操作,我们成功地进行了串口通信,并实现了数据的发送和接收。

在发送数据时,我们可以通过串口调试助手软件输入需要发送的数据,并通过点击发送按钮将数据发送出去。

在接收数据时,我们可以在串口调试助手软件的接收窗口中即时查看到接收到的数据。

六、实验总结通过本次实验,我们深入了解了串口通信的原理和基本操作。

串口通信作为一种常见的通信方式,具有稳定、可靠的特点,广泛应用于各个领域。

掌握串口通信的设置和配置方法,对于进行设备之间的数据传输和通信具有重要意义。

在实验过程中,我们还发现了一些问题。

首先,正确选择串口号和波特率非常重要,否则无法正常进行通信。

其次,串口参数的设置也需要根据实际需求进行调整,不同设备可能需要不同的参数配置。

最后,及时关闭串口和断开连接是保证实验安全的重要步骤,避免设备损坏或数据丢失。

综上所述,本次实验使我们对串口通信有了更深入的了解,并掌握了串口通信的基本操作方法。

关于串口的实验报告

关于串口的实验报告

关于串口的实验报告1. 实验目的本实验的目的是通过学习并实践串口通信的基本原理和方法,加深对串口通信的理解,掌握串口通信的使用技巧和开发工具。

同时,了解串口通信在实际应用中的重要性和应用场景。

2. 实验原理串口是一种用于计算机与外部设备之间进行数据通信的接口标准。

在计算机中,串口通常通过RS-232或RS-485等标准来实现。

串口通信采用的是异步通信方式,即接收方和发送方的时钟不同步,通过发送和接收的数据包中的控制信息来实现数据的传输。

串口通信的基本原理如下:- 串口通信通过一个物理接口连接计算机和外部设备。

- 通信数据被分为一个个字节进行传输,每个字节由一定的控制信息和实际数据组成。

- 发送方通过发送字节的方式将数据发送给接收方。

- 接收方通过接收字节的方式将数据接收并进行处理。

3. 实验步骤步骤一:准备实验环境为了进行串口通信的实验,我们需要准备以下工具和设备:- 一台计算机- 一个串口转USB转换器- 一个外部设备(如Arduino、传感器等)步骤二:安装串口驱动程序在开始实验之前,我们需要安装串口转USB转换器所需的驱动程序。

驱动程序的安装方式因不同的设备而有所差异,一般可以通过官方网站下载并按照说明进行安装。

步骤三:编写串口通信程序根据所使用的编程语言和开发工具,编写一个简单的串口通信程序。

该程序应包括以下功能:- 打开指定的串口端口- 配置串口的波特率、数据位、停止位等参数- 循环读取串口接收缓冲区中的数据,并进行处理- 将需要发送的数据写入串口发送缓冲区步骤四:测试串口通信将串口转USB转换器插入计算机,并将外部设备连接至串口转USB转换器。

运行编写好的串口通信程序,并观察实验结果。

测试串口通信的方法可以有很多,可以通过发送和接收数据包来验证通信是否正常。

步骤五:总结与分析根据实验结果,总结并分析串口通信的性能和应用场景。

可以考虑以下问题:- 串口通信在哪些领域得到了广泛应用?- 串口通信有哪些特点和优势?- 在实际应用中,串口通信可能遇到哪些常见问题,如何解决?4. 实验结论通过本实验,我们了解了串口通信的基本原理和实际应用方法。

实验三:串口实验

实验三:串口实验

实验3:串口实验一、实验目的1.了解串口的定义及串口通信的特点2.了解MAX232串口3.了解80C51串行口工作的原理及工作方式并且能够掌握其程序设计二、实验内容利用8051串行口发送和接受数据,用来判断接收数据和发送数据是否一致三、实验原理串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。

由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。

本实验主要是用单片机按一定的时间间隔向主机发送字符串,结果在虚拟终端上显示。

由于没有串口线的连接因此只能进行仿真,当数据从CPU经过串行端口(仿真时是通过虚拟驱动软件和串口调试助手设置的虚拟串口实现)发送出去时,字节数据转换为串行的位,在接收数据时,串行的位被转换为字节数据并在虚拟终端上显示。

串口:串行接口简称串口(通常指COM口),是采用串行通信方式的扩展接口。

串口是计算机上一种非通用设备通信的协议。

大多数两个基于RS232的串口。

如左图是串口原理图。

MAX232介绍:MAX232一款兼容RS232标准的芯片,是TTL-RS232电平转换的典型芯片。

由于电脑串口RS232电平是-10V与+10V,而一般单片机系统的信号电压是TTL电平0与+5V,该器件包含2个驱动器、2个接收器和一个电压发生器电路提供TIA/EIA-232-F电平。

RS232介绍:RS232 接口是制定用于串行通讯的标准。

该标准规定采用一个25个脚的DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。

DB25 的串口一般只用到的管脚只有2(RXD)、3(TXD)、7(GND)这三个,随着设备的不断改进,现在DB25 针很少看到了,代替他的是DB9的接口,DB9所用到的管脚比DB25有所变化,是2(RXD)、3(TXD)、5(GND)这三个。

因此现在都把RS232接口叫做DB9。

串口通信的原理:串行端口的本质功能是作为CPU和串行设备间的编码转换器。

浙大-串行口通讯实验报告.docx

浙大-串行口通讯实验报告.docx

课程名称:微机原理与接口技术指导老师:彭勇刚成绩:__________________ 实验名称:串行口通讯实验实验类型:_ _____同组学生姓名一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得实验三串行口通讯实验一、实验目的1.掌握80C51串行口工作方式选择、初始化的设置方法和串行通信编程。

2.掌握数据传送的校验方法(奇校验)。

3.编写简单的通信协议(如串行口工作方式、波特率、校验方式、出错处理等)。

二、实验内容1.编写程序,将内部RAM中20H开始的连续16个单元的数据,通过串行口自发自收而转移到以内部RAM中30H开始的单元内。

2.编写程序,实现双机通信。

3.所传送的数据采用奇校验。

传送出错则重发,重发超过三次则退出,并置出错标志。

三、实验器材1.Micetek仿真器一台2.实验板一块四、硬件连接1.将实验板上的T针与R针短接,实现串行口的自发自收。

T针为串行口的TXD,R针为串行口的RXD引脚.2.将双机TXD引脚与RXD引脚互连。

五、程序代码:ORG 0000HMOV 21H, #01HMOV 22H, #02HMOV 23H, #03HMOV 24H, #04HMOV 25H, #05HMOV 26H, #06HMOV 27H, #07HMOV 28H, #08HMOV 29H, #09HMOV 2AH, #0AHMOV 2BH, #0BHMOV 2CH, #0CHMOV 2DH, #0DHMOV 2EH, #0EHMOV 2FH, #0FHMOV 20H, #00HMOV R0, #20HMOV R6, #10HMOV R1, #30HMOV TMOD, #20H ;设置定时器T1为定时方式2MOV TH1, #030H ;设置T1定时常数(串行口波特率为2400)MOV TL1, #030HSETB TR1MOV PCON, #00H ;设置波特率不倍增MOV SCON, #40H ;设置串行口方式1SETB EA ;开总的中断CLR ES ;关串行中断SETB REN ;允许串行接受CLR TI ;清发送结束标志位CLR RI ;清接受结束标志位AJMP TRANSTRANS:MOV A,@R0MOV SBUF, AJNB TI,$CLR TIINC R0JNB RI,$CLR RIMOV A, SBUFMOV @R1,AINC R1DJNZ R6,TRANS ;循环16次之后结束生成的LST文件:ORG 0000H0000 752101 MOV 21H, #01H0003 752202 MOV 22H, #02H0006 752303 MOV 23H, #03H0009 752404 MOV 24H, #04H000C 752505 MOV 25H, #05H000F 752606 MOV 26H, #06H0012 752707 MOV 27H, #07H0015 752808 MOV 28H, #08H0018 752909 MOV 29H, #09H001B 752A0A MOV 2AH, #0AH001E 752B0B MOV 2BH, #0BH0021 752C0C MOV 2CH, #0CH0024 752D0D MOV 2DH, #0DH0027 752E0E MOV 2EH, #0EH002A 752F0F MOV 2FH, #0FH002D 752000 MOV 20H, #00H0030 7820 MOV R0, #20H0032 7E10 MOV R6, #10H0034 7930 MOV R1, #30H0036 758920 MOV TMOD, #20H ;设置定时器T1为定时方式20039 758D30 MOV TH1, #030H ;设置T1定时常数(串行口波特率为2400)003C 758B30 MOV TL1, #030H003F D28E SETB TR10041 758700 MOV PCON, #00H ;设置波特率不倍增0044 759840 MOV SCON, #40H ;设置串行口方式10047 D2AF SETB EA ;开总的中断0049 C2AC CLR ES ;关串行中断004B D29C SETB REN ;允许串行接受004D C299 CLR TI ;清发送结束标志位004F C298 CLR RI ;清接受结束标志位0051 0153 AJMP TRANSTRANS:0053 E6 MOV A,@R00054 F599 MOV SBUF, A0056 3099FD JNB TI,$0059 C299 CLR TI005B 08 INC R0005C 3098FD JNB RI,$005F C298 CLR RI0061 E599 MOV A, SBUF0063 F7 MOV @R1,A0064 09 INC R10065 DEEC DJNZ R6,TRANS ;循环16次之后结束符号值类型AC = 00D6H CONST 常量ACC = 00E0H CONST 常量B = 00F0H CONST 常量DPH = 0083H CONST 常量DPL = 0082H CONST 常量EA = 00AFH CONST 常量ES = 00ACH CONST 常量ET0 = 00A9H CONST 常量ET1 = 00ABH CONST 常量EX0 = 00A8H CONST 常量EX1 = 00AAH CONST 常量F0 = 00D5H CONST 常量F1 = 00D1H CONST 常量IE = 00A8H CONST 常量IE0 = 0089H CONST 常量IE1 = 008BH CONST 常量IP = 00B8H CONST 常量IT0 = 0088H CONST 常量IT1 = 008AH CONST 常量OV = 00D2H CONST 常量P = 00D0H CONST 常量P0 = 0080H CONST 常量P1 = 0090H CONST 常量P2 = 00A0H CONST 常量P3 = 00B0H CONST 常量PCON = 0087H CONST 常量PS = 00BCH CONST 常量PSW = 00D0H CONST 常量PT0 = 00B9H CONST 常量PT1 = 00BBH CONST 常量PX0 = 00B8H CONST 常量PX1 = 00BAH CONST 常量RB8 = 009AH CONST 常量REN = 009CH CONST 常量RI = 0098H CONST 常量RS0 = 00D3H CONST 常量RS1 = 00D4H CONST 常量SBUF = 0099H CONST 常量SCON = 0098H CONST 常量SM0 = 009FH CONST 常量SM1 = 009EH CONST 常量SM2 = 009DH CONST 常量SP = 0081H CONST 常量TB8 = 009BH CONST 常量TCON = 0088H CONST 常量TF0 = 008DH CONST 常量TH0 = 008CH CONST 常量TH1 = 008DH CONST 常量TI = 0099H CONST 常量TL0 = 008AH CONST 常量TL1 = 008BH CONST 常量TMOD = 0089H CONST 常量TR0 = 008CH CONST 常量TR1 = 008EH CONST 常量TRANS = 0053H CODE 标号公有符号: 57私有符号: 0六、实验结果截图:七、实验中产生的错误与改正方法:这次的实验主要是考察我们对于串行输出输入的基本用法,因此,程序较为简单。

实验三 串口通信实验

实验三  串口通信实验

实验三 串口通信实验【实验目的】1、掌握ARM Cortex-M3的串行口工作原理2、掌握ARM Cortex-M3的UART寄存器配置方法3、学习编程实现ARM Cortex-M3的UART通信【实验仪器】1、硬件:STM32F103CB开发板,ULINK(或JLINK)仿真器套件,PC机2、软件: RealView MDK开发套件, WindowsXP。

【实验电路及连线】串口的发送端U1_TX,接收端U1_RX,分别连接GPIO的PA9和PA10。

【实验内容】1、熟悉RealView MDK开发套件的使用2、建立一个简单的USART工程。

3、编写程序,实现STM32单片机通过串口1 发送一个字符串“STM32F103CB USART1 TEST!”,并在PC机的超级终端上显示。

要求用printf函数输出。

【实验步骤、分析及结果(在下面写出你的代码)】结果:代码:#include"stm32f10x_lib.h"#include"stdio.h"void GPIO_Configuration(){GPIO_InitTypeDef GPIO_InitStructure ;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);}int fputc(int ch, FILE*f){USART_SendData(USART1, (u8) ch);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);return ch;}void USART_Configuration(void){USART_InitTypeDef USART_InitStructure;//RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);///////放到GPIO_ConfigurationUSART_ART_BaudRate=115200;USART_ART_WordLength=USART_WordLength_8b;// 8位传输;USART_ART_StopBits=USART_StopBits_1;//1个停止位USART_ART_Parity=USART_Parity_No;USART_ART_HardwareFlowControl=USART_HardwareFlowCont //禁止硬件流控制,禁止 RTS 和 CTS 信号USART_ART_Mode=USART_Mode_Rx |USART_Mode_Tx; //全双工USART_Init(USART1,&USART_InitStructure);//初始化UARTxUSART_Cmd(USART1,ENABLE);//使能串口一}main(){// u32 i;// char a[]="STM32F103CB USART1 TEST!";GPIO_Configuration();USART_Configuration();/*可以在发送之前清除标志位TC*/printf("STM32F103CB USART1 TEST!");while(1);}教师评语:实验成绩:教师: 年 月 日。

实验三 串口实验

实验三  串口实验

实验三串口实验一.实验目的学习使用串口实现与PC机的通讯。

正确配置CC2530的串口来实现串口通信的功能。

二.实验环境硬件:PC机,EBDCC2530节点板,USB接口仿真器,6Pin串口线,交叉串口线。

软件:Windows98/2000/NT/XP,IAR集成开发环境,串口调试助手。

三.实验原理下面我们来介绍串口实验所学习到的主要寄存器。

CLKCONCMD:时钟频率控制寄存器。

D7 D6 D5~D3 D2~D032KHZ 时间振荡器选择系统时钟选择定时器输出标记系统主时钟选择D7位为32KHZ时间振荡器选择,0为32KRC震荡,1为32K晶振。

默认设置为1。

D6位为系统时钟选择。

0为32M晶振,1为16MRC震荡。

当D7位为0时D6必须为1。

D5~D3为定时器输出标记。

000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。

默认为001。

需要注意的是:当D6为1时,定时器最高可采用频率为16MHZ。

D2~D0:系统主时钟选择:000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。

当D6为1时,系统主时钟可采用的最高频率为16MHZ。

CLKCONSTA:时间频率状态寄存器。

D7 D6 D5~D3 D2~D032KHZ 时间振荡器选择当前系统时钟当前定时器输出标记当前系统主时钟D7位为当前32KHZ时间振荡器频率。

0为32KRC震荡,1为32K晶振。

D6位为当前系统时钟选择。

0为32M晶振,1为16MRC震荡。

D5~D3为当前定时器输出标记。

000为32MHZ,001为16MHZ,010为8MHZ,011为4MHZ,100为2MHZ,101为1MHZ,110为500KHZ,111为250KHZ。

单片机-实验三-串行口通信实验

单片机-实验三-串行口通信实验

实验三串行口通信实验一、实验目的1、掌握单片机串行口的工作原理及工作方式;2、掌握单片机串行口波特率的设置方法;3、掌握单片机串行口查询方式程序的设计方法。

二、实验内容及要求1、单片机的串行口经RS-232 电平变换后和PC 机相连;2、单片机系统的晶振频率选择11.0592MHz,串行口设置为9600bps、无校验位、8 位数据位、1 位停止位(简记为N81)模式;3、单片机采用查询方式收发数据,将PC 机送来的除回车/换行之外的数据加1 后送回。

三、实验设备硬件:PC 机,nKDE-51 单片机实验教学系统;软件:Keil C51 集成开发环境,FlashMagic 单片机程序烧写软件。

四、实验原理及步骤MCS-51 串行口的结构、原理及各种工作方式参阅教材相关内容。

本实验使用串行口工作方式1,通过定时器1(T1)产生波特率时钟,通过查询串行口收发中断标志RI 和TI 来判断单片机串行口数据收发的状态。

步骤如下:1、创建新项目:Project—New Project—命名、存储—CPU类型(philips P89C52X2)2、创建新程序:编译程序—完成后保存为“.c”格式3、添加程序:Target1—Source Group—add……(程序)4、检测程序:Project—Build Target5、选择烧录程序的方式(右键点target1--opption):output—Creat Execulate:Dubug Information Browse、Creat HexDebug 右侧选择use “Keil Monitor-51 Driver”6、选择程序执行点:在Debug程序烧路后,在开始执行的程序断点上鼠标右键—Set Program Counter7、Go执行五、实验过程1. 电路连接PC 机串行口为RS-232 标准的串行接口,用-15V~-5V 表示1,+5V~+15V 表示0,而单片机的串行口为TTL 电平,+5V 表示1,0V 表示0,因此单片机的串行口不能直接和PC 机的串行口相连,必须经过电平变换才能和PC 机通信。

串口通讯实验

串口通讯实验

实验三串口通讯实验专业:班级:学号:姓名:实验地点:实验时间:指导教师:一、实验目的:1、掌握ARM的串行口工作原理2、学习编程实现ARM的UART通讯3、掌握S3C2410寄存器配置方法二、实验环境:一台PC机,虚拟机系统,Red Had Linux 9.0系统盘ISO文件。

三、实验内容:1、了解ADS集成开发环境的基本功能2、学习串口通讯的基本知识3、熟悉S3C2410串口有关的寄存器4、实现查询方式串口的收发功能。

接受来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端四、实验记录:1、实验步骤::1)、参照模板工程,新建一个工程UART,添加相应的文件,并修改UART的工程设置; 2)、创建Main.C和mmu.c并加入到工程UART中;3)、编写串口操作函数实现如下功能:循环接收串口送来的数据,并将接收到的数据发送回去;4)、编译UART;5)、将计算机的串口接到开发板的UART0上;6)、运行超级终端,选择正确的串口号,并将串口设置为:波特率(115200)、奇偶校(None)、数据位数(8)和停止位数(1),无流控,打开串口;7)、运行程序,在超级终端中输入的将回显到超级终端上。

2、实验具体操作:3.实验程序如下:#include "s3c24xx.h"#include "serial.h"#define TXD0READY (1<<2) #define RXD0READY (1)#define PCLK 50000000 // init.c中的clock_init函数设置PCLK为50MHz #define UART_CLK PCLK // UART0的时钟源设为PCLK#define UART_BAUD_RA TE 115200 // 波特率#define UART_BRD ((UART_CLK / (UART_BAUD_RATE * 16)) - 1)/** 初始化UART0* 115200,8N1,无流控*/void uart0_init(void){GPHCON |= 0xa0; // GPH2,GPH3用作TXD0,RXD0GPHUP = 0x0c; // GPH2,GPH3内部上拉ULCON0 = 0x03; // 8N1(8个数据位,无较验,1个停止位)UCON0 = 0x05; // 查询方式,UART时钟源为PCLKUFCON0 = 0x00; // 不使用FIFOUMCON0 = 0x00; // 不使用流控UBRDIV0 = UART_BRD; // 波特率为115200}/** 发送一个字符*/void putc(unsigned char c){/* 等待,直到发送缓冲区中的数据已经全部发送出去*/while (!(UTRSTAT0 & TXD0READY));/* 向UTXH0寄存器中写入数据,UART即自动将它发送出去*/UTXH0 = c;}/** 接收字符*/unsigned char getc(void){/* 等待,直到接收缓冲区中的有数据*/while (!(UTRSTAT0 & RXD0READY));/* 直接读取URXH0寄存器,即可获得接收到的数据*/return URXH0;/** 判断一个字符是否数字*/int isDigit(unsigned char c){if (c >= '0' && c <= '9')return 1;elsereturn 0;}/** 判断一个字符是否英文字母*/int isLetter(unsigned char c){if (c >= 'a' && c <= 'z')return 1;else if (c >= 'A' && c <= 'Z')return 1;elsereturn 0;}五、实验小结:这是实验的内容是实现查询方式串口的收发功能。

实验三串操作实验微机原理与接口技术

实验三串操作实验微机原理与接口技术

2.完善以下程序,将数据段的sbuf指示的“Hello world!”字符串传送到数据段的dbuf 缓冲区。

要求在Turbo Debugger中调试该程序,数据区如下图所示。

DSEG SEGMENTsbuf DB 'Hello world!','$'dbuf DB13 dup(0) ;定义了13个字节的0DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEGMOV DS,AXMOV ES, AXMOV CX, 0DHMOV SI,OFFSET sbufMOV DI,OFFSET dbufCLDREP movsbLEA DX,dbuf ;取有效地址指令lea 将存储器地址送到一个寄存器MOV AH,09HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND START3.用简化段定义的源程序格式改写以上汇编语言源程序。

.model small.stack.datasbuf db 'Hello world!','$'dbuf DB 13 dup(0).codestart: mov ax,@datamov ds,axmov es, axmov cx, 0dhmov si,offset sbufmov di,offset dbufcldrep movsblea dx,dbufmov ah,09hint 21hmov ah,4chint 21hend start4.从DS:1000H开始存放有一个字符串”This is a string”,要求把这个字符串从后往前传送到DS:2000H开始的内存区域中(即传送结束后,从DS:2000H开始的内存单元的内容为”gnirts a si sihT”),试编写程序段并上机验证(将结果截图)。

assume cs:code,ds:datasg,ss:stackdatasg segmentdb 'THIS IS A STRING'db 1000 dup(1)datasg endsstack segmentdw 0,0,0,0,0,0,0,0stack endscode segmentstart: mov ax,datasg实验内容与实验结果mov ds,axmov es,axmov si,0mov di,30cldrep movsbmov cx,16tag: CLDLODSBSTDSTOSBLOOP tagmov ax,4c00hint 21hcode endsend start5.用简化段定义的源程序格式编写一个汇编语言源程序。

实验三串行口实验

实验三串行口实验

实验三串行口实验实验三串行口实验———单机实验一、实验目的:1.掌握8051串行口方式1的工作方式及编程方法。

2.掌握串行通讯中波特率的设置。

3.在给定通讯波特率的情况下,会计算定时时间常数。

二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验原理MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。

1)在工作方式0时,波特率固定不变,仅与系统振荡频率有关,其大小为f/12。

2)在工作方式2时,波特率也只固定为两种情况:当SMOD=1时,波特率=f/32当SMOD=0时,波特率=f/643)在工作方式1和3时,波特率是可变的:当SMOD=1时,波特率=定时器T1的溢出率/16当SMOD=0时,波特率=定时器T1的溢出率/32其中,定时器T1的溢出率=f/(12*(256-N)),N为T1的定时时间常数。

在实际应用中,往往是给定通讯波特率,而后去确定时间常数。

例如:f=6.144MHZ,波特率等于1200,SMOD=0时,则1200=6144000/(12*32*(256-N)),计算得N=F2H。

例程中设置串行口工作于方式1,SMOD=0,波特率为1200。

循环彩灯的变化花样与实验二相同。

也可自行设计变化花样。

四、实验题目利用8051串行口发送和接收数据,并将接收的数据通过扩展I/O 口74LS273输出到发光二极管显示,结合延时来模拟一个循环彩灯。

五、实验连线:8031的TXD接RXD;74LS273的CS273接CS0;O0~O7接发光二极管的L1~L8;。

微机原理第三次实验报告

微机原理第三次实验报告

实验三串口通信实验一、实验目的与要求利用开发板的串口仿真功能,掌握串口通信的编程方法。

实验要求:(1)利用串行口向PC机发送字符“0x55”,利用串口调试软件在计算机端观察接收到的数据是否与预期一致。

(2)利用串行口向PC机发送字符串,利用串口调试软件在计算机端观察接收到的数据是否与预期一致(3)观察分析参考程序3,利用开发板接收PC机发送过来的16进制数据并用数码管显示。

(4)掌握实验基础内容后根据参考源程序进行修改和拓展,自行设计程序目标并编程验证,比如修改发送程序的内容,实现由上位机控制数码管显示内容等。

二、实验注意事项1、启动KEIL软件,选择菜单“工程\新建工程”以建立工程(扩展名为.uv2,如T2a.uv2)。

2、选择菜单“文件\新文件”以建立一个新的文本编辑窗口,在窗口中输入参考源程序1并保存(扩展名为.asm),如test2a.asm,然后将其加入到源程序组1中。

3、在工程菜单的选项“目标1属性”中设置相应的选项,包括“输出\产生hex 文件”选项以便汇编生成HEX代码供编程器使用,在“调试\使用KeilMonitor-51 Driver”的设置中选择相应的串口号。

4、使用“工程”中的“编译全部文件”完成相应的文件编译,如果程序格式正确将生成相应HEX代码文件,如T2a.hex。

如果提示有编译错误请自行修改源程序然后再重新编译。

5、用单根连线将P1.0(JP44)连接到8路指示灯部分(JP32)的LED0,将P1.6、P1.7(JP44)分别连接到JP37的K01、K02。

6、完成仿真器与计算机之间的连线并通电。

7、在KEIL软件中启动“调试\开启仿真模式”,然后用“运行”命令实现全速运行的仿真。

8、观察实验现象并分别依次按下K01、K02,观察并记录实验现象然后在KEIL 软件中启动“中断运行-调试(debug)\关闭仿真模式”退出仿真,选择“工程\关闭工程”可关闭当前工程。

9、参考步骤1-4完成参考源程序2的建立与输入,如新项目T2b.uv2和新的源程序test2b.asm,完成编译与仿真设置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 'c':
Uart_Printf("\nYou Pressed 'c'");
点流水灯
break;
default :
break;
}
}
return 0;
}
//*************************[ MPLL ]*******************************
void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
三、实验步骤
1.新建工程文件。
2.定义与UART有关的各个寄存器地址和一些特殊的位命令,加以解释。
3.编写串口驱动函数:
4.在主函数中实现将从串口0接收到的数据发送到串口0(Main.c):
实验参考程序:
#include "def.h"
#include "option.h"
#include "2440addr.h"
#define RdURXH0()(*(volatile unsigned char *)0x50000024)
#define RdURXH1()(*(volatile unsigned char *)0x50004024)
void Uart_Init(int mclk,int baud);
void Uart_Select(int ch);
// pclk = PCLK;
3.串口初始化函数Uart_Init(0,115200),对其记录(截图,截和自己实验相关的串口),并进行注释;计算出波特率;
4.函数Uart_Select(0)是什么?解释清楚;
5.编写接收一个字节的函数aa= Uart_Getch();对其进行详细的记录和解释;
6.完成:如何发送一个字符?
7.画接收过程的流程图。
rGPCCON = 0xaaa956aa;
rGPCUP = 0xffff;
rGPDCON = 0xaaaaaaaa;
rGPDUP = 0xffff;
rGPECON = 0xa02aa800;
rGPEUP = 0xffff;
rGPFCON = 0x55aa;
rGPFUP = 0xff;
rGPGCON = 0x00a2aaaa;
void Uart_SendString(char *pt);
void Uart_Printf(char *fmt,...);
void dely(U32 tt)
{
U32 i;
for(;tt>0;tt--)
{
for(i=0;i<10000;i++){}
}
}
intMain(int argc, char **argv)
#define rUTRSTAT1(*(volatile unsigned *)0x50004010)
#define WrUTXH0(ch)(*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)
#define WrUTXH1(ch)(*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)
第三次实验 串口实验
第三次实验串口实验
一、实验报告内容:
1、实验目的和内容;
要求:通过串口0从PC机接收数据,再发给PC机显示出来,再结合流水灯显示。
2、自己编写的程序;
3、实验现象记录和相关截图;
4、实验中出现问题和调试分析。
二、实验任务:
1.看懂原理图的接口连接;
2.端口初始化函数Port_Init(),找到和串口相关的初始化语句,解释;
Uart_SendByte(aa );
Uart_SendByte(10);
switch(aa)
{
case 'a':
Uart_Printf("\nYou Pressed 'eak;
case 'b':
Uart_Printf("\nYou Pressed 'b'");
点流水灯
break;
#include "2440lib.h"
#include "2440slib.h"
#include <string.h>
#include <stdio.h>
//================================
#define rUTRSTAT0(*(volatile unsigned *)0x50000010)
{
char c1[1];
char err;
U8 aa;
ChangeMPllValue(68,1,1);
Port_Init();
Uart_Select(0);
Uart_Init(0,115200);
MMU_DisableICache();
MMU_DisableDCache();
while(1)
{
aa= Uart_Getch();
rEXTINT1 = 0x22222222;
rEXTINT2 = 0x22222222;
}
void Uart_Select(int ch)
{
whichUart = ch;
}
逐条注释语句
void Uart_Init(int pclk,int baud)
{
int i;
if(pclk == 0)
pclk = 38000000;
{
rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;//计算PCLK的大小?
}
在下面的函数中那条语句完成了对串口用到的端口的初始化?
void Port_Init(void)
{
rGPACON = 0x7fffff;
rGPBCON = 0x015550;
rGPBUP = 0x7ff;
void Uart_TxEmpty(int ch);
char Uart_Getch(void);
char Uart_GetKey(void);
void Uart_GetString(char *string);
int Uart_GetIntNum(void);
void Uart_SendByte(int data);
rGPGUP = 0xffff;
rGPHCON = 0x00faaa;
rGPHUP = 0x7ff;
rGPJCON = 0x02aaaaaa;
rGPJUP = 0x1fff;
//External interrupt will be falling edge triggered.
rEXTINT0 = 0x22222222;
相关文档
最新文档