嵌入式系统实验报告-串行通信实验-答案
- 格式:doc
- 大小:28.00 KB
- 文档页数:1
嵌入式系统实验报告在本学期的嵌入式系统课程中,我与我的实验伙伴进行了多次实验。
在这篇报告中,我将分享我们实验的过程和结果。
实验一:GPIO控制LED灯在这个实验中,我们使用了Raspberry Pi 3B+开发板和一根杜邦线。
我们在电路板上将一盏LED灯与GPIO引脚连接起来,并编写了一个程序来控制这个引脚的电平状态。
在这个实验中,我们学习了GPIO的基本概念以及如何使用Python编程语言编写GPIO控制程序。
我们成功地让LED灯在不同的时间间隔内闪烁,并且了解了如何使用GPIO.setup()和GPIO.output()函数来控制GPIO引脚的输入和输出。
实验二:串口通信在第二个实验中,我们使用了两个Raspberry Pi 3B+开发板和两根串口线。
我们连接了两个板子的GPIO引脚,使得它们可以通过串口进行通信。
我们使用Python编写了两个程序来进行通信。
一个程序将发送一条消息,另一个程序将接收这个消息并将其打印出来。
通过使用串口通信,我们学会了如何使用Python编写程序来完成数据交换,并掌握了串口通信的基本概念。
实验三:Pi camera模块在第三个实验中,我们使用了Pi camera模块和一个Raspberry Pi 3B+开发板。
我们将摄像头连接到开发板上,并编写了一个程序来捕捉摄像头图像。
我们学习了如何使用Python编程语言来控制Pi camera模块,包括如何设置摄像头参数并如何捕捉静态图像。
我们还尝试了使用OpenCV库来处理图像。
实验四:蓝牙控制在最后一个实验中,我们使用了一个蓝牙透传模块、Raspberry Pi 3B+开发板和一些电路元件。
我们将蓝牙透传模块连接到GPIO引脚,并编写了一个程序来通过蓝牙信号控制电机。
在这个实验中,我们学习了如何使用蓝牙模块进行无线控制。
我们通过使用Python编写控制程序,成功地将蓝牙信号转换成GPIO引脚的电平信号来控制电机。
总结在这个嵌入式系统的实验中,我们学习了许多关于嵌入式系统的知识和技能。
《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。
2.掌握Keil与Proteus的联调技巧。
3.掌握串行通信在单片机系统中的使用。
4.掌握调度器设计的基础知识:函数指针。
二、实验设备1.PC机一套2.Keil C51开发系统一套3.Proteus 仿真系统一套三、实验容1.甲机通过串口控制乙机LED闪烁(1)要求a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时闪烁,关闭所有的LED。
b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。
i.甲机发送“A”,控制乙机LED1闪烁。
ii.甲机发送“B”,控制乙机LED2闪烁。
iii.甲机发送“C”,控制乙机LED1,LED2闪烁。
iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。
c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。
两机的程序要分别编写。
d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:i.设置串口模式(SCON)ii.设置定时器1的工作模式(TMOD)iii.计算定时器1的初值iv.启动定时器v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。
(2)电路原理图Figure 1 甲机通过串口控制乙机LED闪烁的原理图(3)程序设计提示a.模式1下波特率由定时器控制,波特率计算公式参考:b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。
2.单片机与PC串口通讯及函数指针的使用(1)要求:a.编写用单片机求取整数平方的函数。
b.单片机把计算结果向PC机发送字符串。
c.PC机接收计算结果并显示出来。
d.可以调用Keil C51 stdio.h 中的printf来实现字符串的发送。
嵌入式技术及应用实验四
实验四串行通信实验
一、实验目的
掌握单片机系统中串行端口的编程控制方法,学会实时程序的调试技巧。
二、实验原理
89C51单片机的串行端口结构上有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。
单片机的串口可以由特殊功能寄存器SCON设置其工作方式,是否允许接受等,由PCON设置其波特率是否倍增。
发送和接收工作可以由中断完成,也可以不用中断,其中断矢量编号为4。
串口的处理主要涉及以下几个方面的内容:
串口初始化
发送程序设计(字节,字符串)
接收程序设计
是否用中断
三、实验内容
利用TX-1C实验板上及串口助手实现PC机与单片机的互相通信。
编写程序实现:当PC机给单片机发送一个字符后,单片机回传PC机发送给它的字符的十六进制数。
四、实验步骤
1、按实验内容要求在µ Vision中创建项目,编辑、调试、编译程序。
2、将编译生成的目标码文件(后缀为.Hex)下载到实验板上。
3、观察实验运行结果并记录。
1。
boot实验报告本次实验由于时间限制,共完成了三种不同的变化方式,但是课后又设计了一些其他的变化方式。
1、从左到右,再从右到左亮灯,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000)))#define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 1; i < =8; i++){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i > 1; i--){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}2、先从左到中,后从右到中,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 0; i <4; i++){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i >= 4; i--){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}3、从左到右,从右到左,隔一个跳#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0xff;for (i = 1; i <8; i=i+2){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}for (i = 7; i > 1; i=i-2){LED_CS4 = (LED_VALUE << i) -1;Delay(200);}}}课后补做:1、从左到右灯灭#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0x00;for (i = 8; i > =1; i--){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}}}2、从左到右,再从右到左灯灭,不断循环#define LED_CS4 (*((volatile unsigned char *)(0x10500000))) #define LED_VALUE (0xff)int i;void Delay(unsigned int x){unsigned int i, j, k;for (i =0; i <=x; i++)for (j = 0; j <0xff; j++)for (k = 0; k <0xff; k++);}void dummyOs(void){while (1){LED_CS4 = 0x00;for (i = 8; i >= 1; i--){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}for (i = 1; i <7; i++){LED_CS4 = (LED_VALUE >> i) +1;Delay(200);}}}实验总结:数码管显示实验报告实验目的1.在实验一引导程序的基础上进一步了解ARM体系结构和编程方法;2.掌握外设访问的方法;3.理解8段数码管的显示原理实验内容1 显示同组的两位同学的四位学号2032 2033;2 显示一组大于九的四位十六进制数字,如abcd。
实验一串口通讯实验一.实验目的:1,掌握ARM的串行口工作原理2,学习编程实现ARM的UART通讯3,掌握S3C2410寄存器配置方法二.实验设备:Up-tNETARM2410-S教学实验箱JLink仿真器IAR Embedded Workbench集成开发环境串口连接线三.实验内容:1,了解ADS集成开发环境的基本功能2,学习串口通讯的基本知识3,熟悉S3C2410串口有关的寄存器4,实现查询方式串口的收发功能。
接受来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端四.实验思考:1, 232串行通讯的数据格式是什么?答案:开始前,线路处于空闲状态,送出连续“1”。
传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。
每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。
后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。
也可以约定不要奇偶校验,这样就取消奇偶校验位。
最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。
至此一个字符传送完毕,线路又进入空闲,持续为“1”。
经过一段随机的时间后,下一个字符开始传送才又发出起始位。
每一个数据位的宽度等于传送波特率的倒数。
微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600 等。
2,串行通讯最少需要几根线,分别如何连接?答案:三根线。
TXD/RXD 是一对数据线,TXD 称发送数据输出,RXD 称接收数据输入。
当两台微机以全双工方式直接通信(无MODEM 方式)时,双方的这两根线应交叉联接(扭接)。
输出端五号口(SG)接输入端五号口(SG)输出端二号口(RXD)接输入端三号口(TXD)输出端三号口(TXD)接输入端二号口(RXD)3, ARM的串行口有几个,相应的寄存器是什么?答案:ARM 自带三个UART 端口,每个UART 通道都有16 字节的FIFO(先入先出寄存器)用于接受和发送。
串口通信实验一、实验内容实现查询方式串口的收发功能。
介绍来自串口的字符,并将接收到的字符发送到超级终端。
二、实验代码void Main(void){/* 配置系统时钟*/ChangeClockDivider(1,1); // 1:2:4ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz/* 初始化端口*/Port_Init();/* 初始化串口*/Uart_Init(0,115200);Uart_Select(0);/* 打印提示信息*/PRINTF("\n---UART测试程序---\n");PRINTF("\n请将UART0与PC串口进行连接,然后启动超级终端程序(115200, 8, N, 1)\n");PRINTF("\n从现在开始您从超级中断发送的字符将被回显在超级终端上\n");/* 开始回环测试*/while(1){unsigned char ch = 'a';ch = Uart_Getch();Uart_SendByte(ch);if(ch == 0x0d)Uart_SendByte(0x0a);}}三、实验结果及分析1.成功运行程序后,建立一个超级终端,然后在”Debug”中依次选择”Remote Connect”, “Download “之后,会出现如图1-1所示。
图1-12.然后在”Debug”中选择”Go”之后,超级终端(已在超级终端上输入字符串)会出现如图1-2所示的界面。
图1-2四、实验体会简述串行接口的工作原理以及串行接口的优缺点。
答:当两台数字设备之间的传输距离较远时,数据往往以串行方式传输。
串行通信的数据时一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度。
串行接口具有传输线少、成本低等优点,特别适合远距离传送。
但是如果传送的数据比较多时,传输的速度就比较慢了。
一、实验目的1. 理解串行通讯的基本原理和通信方式。
2. 掌握串行通讯的硬件设备和软件实现方法。
3. 学会使用串行通讯进行数据传输。
4. 通过实验,提高动手能力和分析问题、解决问题的能力。
二、实验原理串行通讯是指用一条数据传输线将数据一位一位地按顺序传送的通信方式。
与并行通讯相比,串行通讯具有线路简单、成本低等优点。
串行通讯的基本原理如下:1. 异步串行通讯:每个字符独立发送,字符间有时间间隔,不需要同步信号。
每个字符由起始位、数据位、奇偶校验位和停止位组成。
2. 同步串行通讯:数据块作为一个整体发送,需要同步信号。
同步串行通讯分为两种方式:面向字符方式和面向比特方式。
三、实验设备1. 计算机:一台2. 串行通讯设备:串行数据线、串行接口卡、串口调试助手等3. 单片机实验平台:一台4. 数码管显示模块:一个四、实验内容1. 异步串行通讯实验(1)硬件连接:将计算机的串口与单片机实验平台的串行接口连接。
(2)软件设计:编写程序,实现单片机向计算机发送数据,计算机接收数据并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据。
c. 编写接收程序,实现计算机接收数据并显示在屏幕上。
2. 同步串行通讯实验(1)硬件连接:与异步串行通讯实验相同。
(2)软件设计:编写程序,实现单片机向计算机发送数据块,计算机接收数据块并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据块。
c. 编写接收程序,实现计算机接收数据块并显示在屏幕上。
3. 双机通讯实验(1)硬件连接:将两台单片机实验平台通过串行数据线连接。
(2)软件设计:编写程序,实现两台单片机之间相互发送和接收数据。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
串行通信实验报告实验报告:串行通信实验一、实验目的本实验旨在通过搭建串行通信系统,了解串行通信的基本原理和工作方式,掌握串行通信的相关知识和技术。
二、实验仪器和材料1. Arduino开发板B数据线3.跳线若干4.电脑三、实验原理串行通信是一种通过连续的、位的形式传输数据的通信方式。
在串行通信中,数据通过一个数据线一位一位地传输,与并行通信相比,串行通信的线路数量较少,适用于数据传输距离较远的场景。
在本实验中,我们使用Arduino开发板作为串行通信的发送和接收端,通过USB数据线连接电脑与Arduino开发板进行数据交互。
四、实验步骤1. 连接电路:将Arduino开发板通过USB数据线连接至电脑,确保连接稳定。
2. 编写Arduino代码:使用Arduino IDE软件编写Arduino代码,实现数据发送和接收的功能。
代码示例://发送端void setuSerial.begin(9600); //设置串行通信波特率为9600void looString message = "Hello World!"; //待发送的消息Serial.println(message); //通过串行通信发送消息delay(2000); //延迟2秒//接收端void setuSerial.begin(9600); //设置串行通信波特率为9600void looif (Serial.available() { //如果串行通信接收到数据String message = Serial.readString(; //读取接收到的数据Serial.println("Received: " + message); //打印接收到的数据}3. 上传代码:将编写好的代码上传至Arduino开发板,使其开始工作。
4. 打开串行监视器:在Arduino IDE中点击“工具”菜单并选择“串行监视器”(或使用快捷键Ctrl+Shift+M)打开串行监视器。
一、实验目的1. 理解串行通信的基本原理和概念;2. 掌握串行通信的常用接口和协议;3. 学会使用串行通信进行数据传输;4. 熟悉串行通信在嵌入式系统中的应用。
二、实验原理串行通信是一种数据传输方式,通过一根或多根数据线,将数据一位一位地按顺序传送。
与并行通信相比,串行通信在传输速度和成本上具有优势,广泛应用于嵌入式系统、工业控制、远程通信等领域。
串行通信的基本原理如下:1. 数据格式:串行通信中,数据以字节为单位进行传输,每个字节由起始位、数据位、校验位和停止位组成。
2. 通信方式:串行通信主要有同步通信和异步通信两种方式。
a. 同步通信:通信双方使用统一的时钟信号进行数据传输,数据在传输过程中保持同步。
b. 异步通信:通信双方使用不同的时钟信号进行数据传输,数据在传输过程中不保持同步。
3. 串行通信接口:常用的串行通信接口有RS-232、RS-485、USB等。
三、实验设备1. 单片机开发板:STC89C52;2. 串口通信模块:MAX232;3. 串口通信线;4. 电脑;5. 串口调试助手。
四、实验步骤1. 连接电路:将单片机开发板、串口通信模块和电脑通过串口通信线连接起来。
2. 初始化单片机串口:设置单片机串口的工作方式、波特率、校验位和停止位等参数。
3. 编写串口发送程序:在单片机上编写程序,实现数据的串行发送。
4. 编写串口接收程序:在单片机上编写程序,实现数据的串行接收。
5. 使用串口调试助手进行测试:在电脑上打开串口调试助手,设置相应的通信参数,发送和接收数据。
五、实验结果与分析1. 实验结果:通过串口调试助手,成功实现了单片机与电脑之间的数据传输。
2. 分析:a. 在初始化单片机串口时,设置了正确的波特率、校验位和停止位等参数,保证了数据的正确传输。
b. 在编写串口发送程序时,正确地实现了数据的串行发送。
c. 在编写串口接收程序时,正确地实现了数据的串行接收。
六、实验总结1. 通过本次实验,掌握了串行通信的基本原理和概念;2. 学会了使用串行通信进行数据传输;3. 熟悉了串行通信在嵌入式系统中的应用。
嵌入式实验报告_ARM的串行口实验一、实验目的本次实验的主要目的是深入了解和掌握 ARM 处理器的串行口通信原理及编程方法。
通过实际操作和编程实践,能够实现基于 ARM 的串行数据收发功能,为后续在嵌入式系统中的应用打下坚实的基础。
二、实验原理串行通信是指数据一位一位地顺序传送。
在 ARM 系统中,串行口通常由发送器、接收器、控制寄存器等组成。
发送器负责将并行数据转换为串行数据并发送出去,接收器则将接收到的串行数据转换为并行数据。
控制寄存器用于配置串行口的工作模式、波特率、数据位长度、停止位长度等参数。
波特率是串行通信中的一个重要概念,它表示每秒传输的比特数。
常见的波特率有 9600、115200 等。
在本次实验中,需要根据实际需求设置合适的波特率,以保证数据传输的准确性和稳定性。
三、实验设备与环境1、硬件设备:ARM 开发板、USB 转串口线、电脑。
2、软件环境:Keil MDK 集成开发环境、串口调试助手。
四、实验步骤1、建立工程在 Keil MDK 中创建一个新的工程,选择对应的 ARM 芯片型号,并配置工程的相关参数,如时钟频率、存储分配等。
2、编写代码(1)初始化串行口首先,需要设置串行口的工作模式、波特率、数据位长度、停止位长度等参数。
例如,设置波特率为 115200,数据位长度为 8 位,停止位长度为 1 位。
(2)发送数据通过编写发送函数,将要发送的数据写入串行口的数据寄存器,实现数据的发送。
(3)接收数据通过中断或者查询的方式,读取串行口的接收寄存器,获取接收到的数据。
(4)主函数在主函数中,调用发送函数发送数据,并处理接收的数据。
3、编译下载编写完成代码后,进行编译,确保代码没有语法错误。
然后,将生成的可执行文件下载到 ARM 开发板中。
4、连接设备使用 USB 转串口线将 ARM 开发板与电脑连接起来,并在电脑上打开串口调试助手,设置与开发板相同的波特率等参数。
5、测试实验在串口调试助手中发送数据,观察开发板是否能够正确接收并回传数据。
串行通信的实验报告一、实验目的了解串行通信的基本概念和原理,并通过实际搭建串行通信系统,掌握串行通信的实验过程和操作方法。
二、实验设备1. 一台个人电脑2. 两台串行通信设备3. USB转串口线三、实验原理串行通信是将数据按位顺序传输,相对于并行通信来说,节省了传输线的数量。
串行通信一般采用帧的方式进行数据传输,包括起始位、数据位、校验位和停止位。
在实验中,我们将使用两台串行通信设备通过串口进行数据传输。
四、实验步骤1. 将一台串行通信设备连接到个人电脑的USB转串口线上,使用USB接口将其连接到个人电脑的USB接口上。
2. 打开串行通信设备的电源,并将其与个人电脑连接好。
3. 在个人电脑上打开串行通信软件,根据实际情况选择波特率、数据位、校验位和停止位等参数,并建立通信连接。
4. 在串行通信软件中,输入要发送的数据,并点击发送按钮。
5. 在另一台串行通信设备上观察接收到的数据。
五、实验结果与分析经过实验,我们成功地建立了串行通信系统,并进行了数据传输。
在发送端输入的数据在接收端得到了正确的接收,表明串行通信系统正常工作。
通过实验我们可以得出以下结论:1. 串行通信较并行通信更经济和节省资源,因为它只需一根传输线,而并行通信需要多根。
2. 串行通信的传输速率相对较慢,但可以通过改变波特率提高传输速度。
3. 串行通信的稳定性较强,不容易出现数据冲突和传输错误。
六、实验总结通过本次实验,我们了解到了串行通信的基本概念和原理,并通过搭建串行通信系统实际操作了一次串行通信。
实验结果表明串行通信系统正常工作,实验目的得到了满足。
在实验过程中,我们也注意到了一些问题,例如串行通信的传输速率较慢,不适合传输大量数据;同时,串行通信的配置稍显复杂,需要设置多个参数。
综上所述,本次实验使我们对串行通信有了更深入的理解,并有助于我们在日后的相关研究和应用中更好地应用和掌握串行通信技术。
实验名称:串行通信实验实验目的:1. 了解串行通信的基本原理和常用接口。
2. 掌握串行通信的编程方法和数据传输过程。
3. 验证串行通信在实际应用中的可行性。
实验器材:1. PC机一台2. 串口通信模块(如USB转串口模块)3. 短路板4. 连接线若干5. 相关软件(如串口调试助手)实验原理:串行通信是指数据在一条线路上按位进行传输的通信方式。
与并行通信相比,串行通信具有线路简单、传输速率较低等特点。
在串行通信中,数据按照一定的顺序一位一位地传输,每个数据位占用一个固定的位时间。
串行通信通常采用以下接口:RS-232、RS-485、RS-422等。
本实验采用USB转串口模块实现串行通信。
实验步骤:1. 将USB转串口模块插入PC机USB接口。
2. 在PC机上安装驱动程序,确保模块正常工作。
3. 使用短路板将USB转串口模块与PC机的串口连接。
4. 打开串口调试助手,设置串口参数:波特率、数据位、停止位、校验位等。
5. 编写串行通信程序,实现数据发送和接收。
6. 运行程序,观察串口调试助手中的数据传输情况。
实验内容:1. 发送数据(1)编写发送数据函数,实现数据的串行发送。
(2)在PC机上发送一段文本数据,观察串口调试助手中的接收情况。
2. 接收数据(1)编写接收数据函数,实现数据的串行接收。
(2)在PC机上发送一段文本数据,观察串口调试助手中的接收情况。
实验结果与分析:1. 发送数据实验结果:在串口调试助手中成功接收到了发送的文本数据,证明发送数据功能正常。
2. 接收数据实验结果:在串口调试助手中成功接收到了发送的文本数据,证明接收数据功能正常。
结论:通过本次实验,我们掌握了串行通信的基本原理和编程方法,验证了串行通信在实际应用中的可行性。
在实验过程中,我们遇到了以下问题:1. 串口参数设置不正确导致数据无法正常传输。
2. 编程时,数据发送和接收函数编写不正确。
针对以上问题,我们进行了以下改进:1. 仔细阅读相关资料,正确设置串口参数。
《嵌入式系统实验报告》串行通信实验南昌航空大学自动化学院050822XX 张某某一、实验目的:掌握μC/OS-II操作系统的信号量的概念。
二、实验设备:硬件:PC机1台;MagicARM2410教学实验开发平台台。
软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境。
三、实验内容:实验通过信号量控制2个任务共享串口0打印字符串。
为了使每个任务的字符串信息(句子)不被打断,因此必须引入互斥信号量的概念,即每个任务输出时必须独占串口0,直到完整输出字符串信息才释放串口0。
四、实验步骤:(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。
(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。
(3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程UART0_uCOSII。
(本范例在ADS文件夹中操作)(4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。
将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。
(5)在src组中的main.c中编写主程序代码。
(6)选用DebugRel生成目标,然后编译链接工程。
(7)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。
注意:CZ11安装在MagicARM2410实验箱的机箱右侧。
(8)PC机上运行“超级终端”程序(在Windows操作系统的【开始】->【程序】->【附件】->【通讯】->【超级终端】),新建一个连接,设置串口波持率为115200,具体设置参考图3.5,确定后即进入通信状态。
实验报告ARM嵌入式系统原理及应用开发目录实验一 ARM汇编指令实验1 (1)实验二 ARM汇编指令实验2 (4)实验三汇编与C语言的相互调用实验 (8)实验一ARM汇编指令实验1一、实验目的1.初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器;2.通过实验掌握简单ARM汇编指令的使用方法。
二.实验设备1.硬件:PC机;2.软件:Embest IDE 2004集成开发环境。
Windows98/2000/NT/XP。
三.实验内容1.熟悉开发环境的使用,并使用LDR/STR和MOV等指令访问寄存器或存储单元。
2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。
四.实验原理ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC),这些寄存器都是32位;6个状态寄存器,这些寄存器也是32位,但只使用了其中的12位。
1.ARM通用寄存器通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。
2.存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。
字节0~3存放第一个字,字节4~7存放第2个字,以此类推。
ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
3.GNU基础知识Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。
因此,编写程序要符合CNU的语法和规则。
关于as.gcc和ld的具体使用,请参照Embest IDE 所带的电子文档ProgRef.chm。
五.实验操作步骤1. 实验A(1)新建工程:先建一个文件夹如:H:\ test1。
然后运行ADS1.2集成开发环境,选择File→New 菜单项,弹出一个对话框,然后出来图1.1新建工程类型选择对话框,选择project,在“Project name”中输入工程文件名”test1”,点击确定,同时创建一个与工程名相同的工作区。
昆明理工大学机电工程学院嵌入式系统设计与应用实验报告书实验名称:串行通信实验年级专业及班级:级机自班姓名:学号:指导教师:张文斌、高贯斌评定成绩:教师评语:实验时间: 2014 年 12 月 27 日实验三串行通信实验一、实验目的熟悉XS128单片机的SCI串口的使用,掌握查询和中断方式的发送和接收功能。
二、实验原理SCI允许单片机和其他器件(包括其他单片机)进行全双工、异步、串行通信。
SCI 由波特速率发生器、发射器和接收器组成。
发射器和接收器独立运行,尽管它们使用同一波特率发生器。
在正常运行期间,单片机监控SCI的状态,写入将要发送的数据,读出接收到的数据。
XS128单片机的SCI模块的功能框图如下图所示图1.SCI模块的功能框图扩展板的左上部提供了TTL 电平与RS-232C 电平的转换芯片MAX232,MAX232 提供了2 组电平转换。
第一组:RS-232C 电平(R1IN)→TTL 电平(R1OUT)TTL 电平(T1IN)→RS-232C 电平(T1OUT)第二组:RS-232C 电平(R2IN)→TTL 电平(R2OUT)TTL 电平(T2IN)→RS-232C 电平(T2OUT)在实际使用中,TTL 电平的输入、输出引脚分别与MCU 的发送、接收引脚连接;RS-232C电平的输入、输出引脚分别与其它设备(如PC 机)的发送、接收引脚连接。
串行通信的原理图如图2所示。
图中T1OUT 和T2OUT 信号各接一盏小灯,当微处理器发送数据时,小灯会点亮。
三、实验连线及要求图2.SCI通信模块原理图本实验有4个小实验组成,分别为:查询方式发送实验、中断方式发送实验、查询方式接收实验、中断方式接收实验。
查询方式发送是指单片机按照一定时间间隔按时读取串口的状态,如果串口处于空闲状态,就将待收的数据发送出去。
中断方式发送是指,一旦串口处于空闲状态,串口就对单片机触发一个中断,单片机则将待收的数据发送出去。
计算机与信息学院《嵌入式系统》实验报告学生姓名:学号:专业班级:2014 年 6 月20 日实验一(1):熟悉Linux 开发环境一、实验目的熟悉Linux 开发环境,学会基于Mini6410 的Linux 开发环境的配置和使用。
使用Linux 的arm-linux-gcc 编译,minicom串口方式下载调试二、实验内容本次实验使用Fedora 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。
创建一个新目录,并在其中编写hello.c 和Makefile 文件。
学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。
下载已经编译好的文件到目标开发板上运行。
三、实验设备及工具(包括软件调试工具)硬件:Mini6410嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。
软件:PC机操作系统Fedora9+MINICOM+ARM-LINUX 开发环境四、实验步骤1 、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2 、编写程序源代码在 Linux 下的文本编辑器有许多,常用的是 vi 和 Xwindow 界面下的 gedit 等,开发过程中推荐使用 vi。
Kdevelope、anjuta 软件的界面与 vc6.0 类似,使用它们对于熟悉 windows 环境下开发的用户更容易上手。
实际的 hello.c 源代码较简单,如下:#include <stdio.h>main() {printf(“hello world \n”);}我们可以是用下面的命令来编写 hello.c 的源代码,进入 hello 目录使用 vi 命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按 Esc 键进入命令状态,再用命令“:wq”保存并退出。
《嵌入式系统实验报告》
串行通信实验
南昌航空大学自动化学院050822XX 张某某
一、实验目的:
掌握μC/OS-II操作系统的信号量的概念。
二、实验设备:
硬件:PC机1台;MagicARM2410教学实验开发平台台。
软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境。
三、实验内容:
实验通过信号量控制2个任务共享串口0打印字符串。
为了使每个任务的字符串信息(句子)不被打断,因此必须引入互斥信号量的概念,即每个任务输出时必须独占串口0,直到完整输出字符串信息才释放串口0。
四、实验步骤:
(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。
(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。
(3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程UART0_uCOSII。
(本范例在ADS文件夹中操作)
(4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。
将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。
(5)在src组中的main.c中编写主程序代码。
(6)选用DebugRel生成目标,然后编译链接工程。
(7)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。
注意:CZ11安装在MagicARM2410实验箱的机箱右侧。
(8)PC机上运行“超级终端”程序(在Windows操作系统的【开始】->【程序】->【附件】->【通讯】->【超级终端】),新建一个连接,设置串口波持率为115200,具体设置参考图3.5,确定后即进入通信状态。
(9)选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。
(10)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。
(11)可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,在超级终端上观察任务0和任务1的打印结果。
五、实验结论与思考题(手写,打印无效):
1、如果任务0删除语句“OSSemPost(UART0_Sem);”,那么程序还能否完全正常无误运行?
答:OSSemPost (OS_EVENT *pevent),这个函数是释放资源,执行后资源数目会加1。
在该函数中,删除对应语句则使串口资源UART0_Sem始终无法释放。