实验5 系统时钟源
实验五-时间片轮转调度分析

上海应用技术学院程序设计语言实验报告图1图2将本实验文件夹中的multi.exe文件添加到软盘镜像的根目录中。
如图3。
图5图7图8 按F5启动调试。
如图9。
图10BIT_TEST(PspReadyBitmap, PspCurrentThread->Priority) PspReadyThread(PspCurrentThread);图13 按F5启动调试。
如图14。
图14图16 (2)F7生成项目。
如图17。
图18古今名言敏而好学,不耻下问——孔子业精于勤,荒于嬉;行成于思,毁于随——韩愈兴于《诗》,立于礼,成于乐——孔子己所不欲,勿施于人——孔子读书破万卷,下笔如有神——杜甫读书有三到,谓心到,眼到,口到——朱熹立身以立学为先,立学以读书为本——欧阳修读万卷书,行万里路——刘彝黑发不知勤学早,白首方悔读书迟——颜真卿书卷多情似故人,晨昏忧乐每相亲——于谦书犹药也,善读之可以医愚——刘向莫等闲,白了少年头,空悲切——岳飞发奋识遍天下字,立志读尽人间书——苏轼鸟欲高飞先振翅,人求上进先读书——李苦禅立志宜思真品格,读书须尽苦功夫——阮元非淡泊无以明志,非宁静无以致远——诸葛亮熟读唐诗三百首,不会作诗也会吟——孙洙《唐诗三百首序》书到用时方恨少,事非经过不知难——陆游问渠那得清如许,为有源头活水来——朱熹旧书不厌百回读,熟读精思子自知——苏轼书痴者文必工,艺痴者技必良——蒲松龄声明访问者可将本资料提供的内容用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本文档及相关权利人的合法权利。
谢谢合作!。
嵌入式系统led实验报告

嵌入式系统led实验报告嵌入式系统是融合了计算机技术、控制技术和通信技术的复杂系统。
它的应用范围涵盖了从智能家电到工业自动化等多个领域。
在嵌入式系统中,LED的应用非常广泛,它可以用于指示灯、背光源,还可以用于制作LED屏幕等。
本报告基于STM32F103RBT6开发板,介绍了一次LED实验的过程。
一、硬件准备实验所需的硬件包括:1. STM32F103RBT6开发板;2. 顶部插座模块(用于连接LED灯);3. LED灯;4. USB线(用于连接开发板和电脑)。
1. Keil uVision5开发环境;2. STM32 CubeMX配置软件。
三、实验步骤2. 在Pinout&Configuration界面,选择将LED灯连接到开发板的哪个引脚上。
这里选择PC13引脚。
3. 在Clock Configuration界面,设置时钟源和时钟频率。
本实验中,选择HSI时钟源和72MHz的频率。
4. 在Pinout&Configuration界面的USART1选项卡中,开启USART1串口通信。
5. 在Project Manager界面,选择Generate Code,生成代码。
6. 打开Keil uVision5软件,在File菜单中选择New Project,创建新工程。
选择STM32F103C8系列,单片机型号选择STM32F103RBT6,前面板及链接器设置选择STM32F10x。
然后选择Project菜单,点击Options for Target,进入Target Options窗口,将Use MicroLIB选项打钩。
然后在Project Manager界面中找到Inc和Src文件夹,右键选择Add Files to Group并导入STM32CubeMX生成的头文件和代码文件。
```#include "stm32f1xx_hal.h"void SystemClock_Config(void);static void MX_GPIO_Init(void);while (1){HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); //LED亮灭HAL_Delay(100); //延时100ms}}void SystemClock_Config(void){RCC_OscInitTypeDef RCC_OscInitStruct;RCC_ClkInitTypeDef RCC_ClkInitStruct;__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState = RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){_Error_Handler(__FILE__, __LINE__);}HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);}__HAL_RCC_GPIOC_CLK_ENABLE();GPIO_InitStruct.Pin = GPIO_PIN_13;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);}```8. 保存代码并使用USB线将开发板和电脑连接起来。
实验5 虚拟仪器的使用

实验五虚拟仪器的使用一、实验目的1 了解虚拟仪器的特点;2 掌握虚拟示波器的使用方法;3 掌握虚拟频谱分析仪的用途和使用方法;4 掌握虚拟逻辑分析仪的用途和使用方法。
二、USB口DSO-2902/512K型测试仪简介1 主菜单2 基本配置:(1)DSO-2902金属铝外壳.(2)1个逻辑POD盒(每个逻辑盒有8个通道).(3)2个HP9100探头.(4)10根彩色线和E-Z牌测试夹(5)USB2.0适配器及线一套.(6)直流电源一个.(7)测控软件光盘CD一张.3操作指南(1)硬件当用DSO-2902/2904数字存储示波器/逻辑分析仪进行测量时,意味着被测电路的数据特性是事先知道的。
在进行任何测量之前,示波器必须设定控制程序。
见手册后面里的部分关于这些步骤的介绍。
连接数字存储示波器到测试电路, 有二个标准的BNC探头,每个探头对应一个模拟通道,有一个逻辑POD盒连接在主机上,并有一系列迷你夹子连到POD盒上,在示波器探头一端有一个可插拔的探测夹和一鳄鱼形状的夹子接地,逻辑分析仪POD盒可接8个通道(D0-D7)或16个通道DSO-2904(D0-D15)的输入端,D0 通道还可用做外部时钟输入端,还有4个接地输入端。
数据通道可同步进行捕捉,外部时钟源连接在D0 通道。
有时,把测试电路同计算机系统本身连接也是必要的,这样做,将消除由于接地电压的微小差别而导致测试应用时产生更多的噪音。
特别是在高速时域分析下,用比较粗的线连接测试电路地和计算机外壳是必要的。
每一个模拟通道探头上都有一个效验调节螺钉,初次使用时必须效验,每年做二次效验是必要的,见示波器效验一章。
注意:当用探头连接信号时,被测信号的电压必须满足DSO29XX电压测量范围之内,请查看技术指标有关绝对输入电压值,一定要在许可范围之内。
在探头1:1状态下,瞬态电压:100V,连续电压:50V。
逻辑分析仪Pod盒的标记内容:D0-D7 是dso2902的数据输入通道D0-D15 是dso2904的数据输入通道GND 是连接信号地连线和测试夹同POD盒构成一个模块,连线和测试夹,与POD是可拆卸的,测试夹可测量电路到0.64mm,不要使测试夹超过它的使用极限,以免造成测试夹更大的损坏。
通信原理实验5

实验五抽样定理实验一、实验目的1、了解抽样定理在通信系统中的重要性。
2、掌握自然抽样及平顶抽样的实现方法。
3、理解低通采样定理的原理。
4、理解实际的抽样系统。
5、理解低通滤波器的幅频特性对抽样信号恢复的影响。
6、理解低通滤波器的相频特性对抽样信号恢复的影响。
7、理解带通采样定理的原理。
二、实验器材1、主控&信号源、3号模块各一块2、双踪示波器一台3、连接线若干三、实验原理1、实验原理框图图1-1 抽样定理实验框图2、实验框图说明抽样信号由抽样电路产生。
将输入的被抽样信号与抽样脉冲相乘就可以得到自然抽样信号,自然抽样的信号经过保持电路得到平顶抽样信号。
平顶抽样和自然抽样信号是通过开关S1切换输出的。
抽样信号的恢复是将抽样信号经过低通滤波器,即可得到恢复的信号。
这里滤波器可以选用抗混叠滤波器(8阶3.4kHz的巴特沃斯低通滤波器)或FPGA数字滤波器(有FIR、IIR两种)。
反sinc滤波器不是用来恢复抽样信号的,而是用来应对孔径失真现象。
要注意,这里的数字滤波器是借用的信源编译码部分的端口。
在做本实验时与信源编译码的内容没有联系。
四、实验步骤实验项目一抽样信号观测及抽样定理验证概述:通过不同频率的抽样时钟,从时域和频域两方面观测自然抽样和平顶抽样的输出波形,以及信号恢复的混叠情况,从而了解不同抽样方式的输出差异和联系,验证抽样定理。
信号源:MUSIC 模块3:TH1(被抽样信号)将被抽样信号送入抽样单元信号源:A-OUT 模块3:TH2(抽样脉冲)提供抽样时钟模块3:TH3(抽样输出)模块3:TH5(LPF-IN) 送入模拟低通滤波器2、开电,设置主控菜单,选择【主菜单】→【通信原理】→【抽样定理】。
调节主控模块的W1使A-out输出峰峰值为3V。
3、此时实验系统初始状态为:被抽样信号MUSIC为幅度4V、频率3K+1K正弦合成波。
抽样脉冲A-OUT为幅度3V、频率9KHz、占空比20%的方波。
嵌入式系统实验报告

嵌入式系统实验报告学号:姓名:班级:13电子信息工程指导老师:苏州大学电子信息学院2016年12月实验一:一个灯的闪烁1、实验要求实现PF6-10端口所连接的任意一个LED灯点亮2、电路原理图图1 LED灯硬件连接图3、软件分析RCC_Configuration(); /* 配置系统时钟*/GPIO_Configuration(); /* 配置GPIO IO口初始化*/ for(;;){GPIOF->ODR = 0xfcff; /* PF8=0 --> 点亮D3 */Delay(1000000);GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */Delay(1000000);4、实验现象通过对GPIOF8的操作,可以使LED3闪烁5、实验总结这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。
通过本实验对STM32开发板的硬件原理有了初步了解。
实验二:流水灯1、实验要求实现PF6-10端口所连接的5个LED灯顺次亮灭2、电路原理图图1 流水灯硬件连接图3、软件分析int main(void){RCC_Configuration();/* 配置系统时钟*/GPIO_Configuration();/* 配置GPIO IO 口初始化*/for(;;){GPIOF->ODR = 0xffbf;/* PF6=0 --> 点亮LED1 */Delay(5000000);GPIOF->ODR = 0xff7f;/* PF7=0 --> 点亮LED2 */Delay(5000000);GPIOF->ODR = 0xfeff;/* PF8=0 --> 点亮LED3 */Delay(5000000);GPIOF->ODR = 0xfdff;/* PF9=0 --> 点亮LED4 */Delay(5000000);GPIOF->ODR = 0xfbff;/* PF10=0 --> 点亮LED5 */ }}4、实验现象LED1~LED5依次点亮,亮灭的时间间隔都为1S。
实验五Tomasulo算法

实验五 Tomasulo算法5.1 实验目的1.加深对指令级并行性及其开发的理解;2.加深对Tomasulo算法的理解;3.掌握Tomasulo算法在指令流出、执行、写结果各阶段对浮点操作指令以及load和store指令进行什么处理;4.掌握采用了Tomasulo算法的浮点处理部件的结构;5.掌握保留站的结构;6.给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。
5.2 实验平台Tomasulo算法模拟器,《计算机系统结构实践教程》附书光盘中提供,清华大学出版社。
设计:张晨曦教授(*******************),版权所有。
开发:刘璐。
5.3 实验内容及步骤首先要掌握Tomasulo模拟器的使用方法。
(见5.4节)1. 假设浮点功能部件的延迟时间为:加减法2个时钟周期,乘法10个时钟周期,除法40个时钟周期。
(1)对于下面的代码段,给出当指令MUL.D即将确认时,保留站、load缓冲器以及寄存器状态表中的内容。
L.D F6, 34(R2)L.D F2, 45(R3)MUL.D F0, F2, F4SUB.D F8, F6, F2DIV.D F10, F0, F6ADD.D F6, F8, F2(2)按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察每一个时钟周期前后各信息表中内容的变化情况。
2. 对于与上面相同的延迟时间和代码段,(1)给出在第5个时钟周期时,保留站的内容;(2)步进10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容;(3)再步进10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。
3. 假设浮点功能部件的延迟时间为:加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。
自己编写一段程序(要在实验报告中给出),重复上述2的工作。
5.4 Tomasulo算法模拟器使用方法1.设置指令和参数本模拟器最多可以模拟10条指令。
最新数字钟实验报告

最新数字钟实验报告实验目的:本实验旨在设计并构建一个数字时钟,通过编程和电子组件的使用,实现时间的精确显示和设置。
实验过程中,我们将学习如何使用微控制器、数码管显示以及编写相应的软件代码来控制时钟的运行。
实验材料:1. 微控制器(如Arduino UNO)2. 数码管显示模块3. 电阻、电容4. 跳线5. 电源适配器6. 编程软件(如Arduino IDE)实验步骤:1. 准备实验材料,并确保所有组件完好无损。
2. 连接微控制器与数码管显示模块,通过跳线将数码管的各个引脚与微控制器对应引脚相连。
3. 在Arduino IDE中编写数字钟的程序代码,包括时间设置、显示更新和闹钟功能。
4. 将编写好的代码上传至微控制器中。
5. 连接电源,测试数字钟是否能够正常运行,包括时间的显示、设置和闹钟功能。
6. 调整代码中的参数,确保时间显示的准确性和稳定性。
7. 记录实验数据和观察结果,对出现的问题进行分析和调试。
实验结果:通过实验,我们成功构建了一个数字钟,它能够显示小时、分钟和秒。
用户可以通过特定的按钮组合来设置时间,并且设定闹钟。
在测试过程中,时钟的显示准确无误,设置功能也运作正常。
闹钟在设定的时间准时响起,满足了实验的基本要求。
实验结论:本次实验验证了通过微控制器和数码管可以成功实现数字钟的设计和功能。
实验过程中遇到的问题主要涉及代码的优化和硬件的稳定性,通过调整代码和重新检查硬件连接,问题得到了解决。
最终,我们得到了一个功能完善、运行稳定的数字钟原型。
数字控制系统实验五报告

《数字控制系统》实验报告专业:班级:学号:姓名:电气工程及其自动化实验中心实验五积分分离法PID控制一、实验目的1、了解PID参数的整定方法及对系统性能的影响;2、掌握积分分离法PID控制规律。
二、实验设备PC机一台,TD-ACC+实验系统一套,SST51系统板一块。
三、实验原理和内容1、运算原理在模拟调节系统中,PID算法表达式为:为控制器输入;为控制器输出。
在计算机系统中,离散的数字PID算法可以表示为位置PID控制算式::采样周期,:采样序号,:第次采样调节器输出,:第次采样误差值,:第次采样误差值。
2、实验原理典型的PID闭环控制系统方框图如图3-1所示图3-1硬件电路原理及接线图如图3-2所示图3-2上图中,用P1.7来模拟1#定时器的输出,通过“OUT1”排针引出,方波周期=定时器时常2,“IRQ7”表示51的外部中断1,用作采样中断,“DIN0”表示51的I/O管脚P1.0,在这里作为输入管脚用来检测信号是否同步。
系统误差信号E通过模数转换单元“IN7”端输入,控制机的定时器作为基准时钟(初始化为10ms),定时采集“IN7”端的信号,并通过采样中断读入信号E的数字量,并进行PID计算,得到相应的控制量,再把控制量送到数模转换单元,由“OUT1”端输出相应的模拟信号,来控制对象系统。
在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,会有较大的误差,以及系统有惯性和滞后,因此在积分分项的作用下,往往会使系统超调变大,过渡时间变长。
为此,可采用积分分离法PID控制算法,即:当误差较大时,取消积分作用;当误差较小时,才将积分作用加入。
3、参考程序流程图积分分离法PID控制实验的参考程序流程图如下图所示:图3-3参考程序请参照example51目录中的ACC-3-2-1文件夹中的A CC-3-2-1.Uv2。
为了便于实验参数的调整,分析讨论PID参数对系统性能的影响:(1)增大比例系数K P一般讲加快系统的响应,再有静差的情况下有利于减少静差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int i; while(1) {
/* 选择16MHz RC振荡器作为系统时钟源(主时钟源) ,然后闪烁 LED */
SystemClockSourceSelect(RC_16MHz); for(i=0;i<8;i++)
BlinkLeds();
/* 选择32MHz晶体振荡器作为系统时钟源(主时钟源) ,然后闪烁
实验 5 系统时钟源(主时钟源)的选择
【实验目的】 通过本实验的学习,使实验者熟悉 CC2530 芯片系统时钟源(主时钟源)的 选择,掌握高速晶体振荡器或 RC 振荡器的配置和使用。 【实验内容】 编写 IAR 程序,实现分别选择 32MHz 晶体振荡器和 16MHz RC 振荡器作为 CC253x 系列片上系统的系统时钟源(主时钟源);并查看相同的 LED 闪烁代码在 这两种时钟源下的闪烁速度的区别。 【实验原理】 在 PM0 功耗模式下,可配置 32MHz 晶体振荡器或者 16MHz RC 振荡器作为系 统时钟,设置系统时钟需要操作两个缓存器 CLKCONCMD(时钟控制缓存器,如表 4-1 所示)和 SLEEPCMD(睡眠模式控制缓存器,如表 4-2 所示),高速时钟系统 如 图 1-23 所 示 , CLKCONCMD.OSC 用 于 选 择 系 统 时 钟 为 XTAL 或 RC , SLEEPCMD.MODE[1:0]设置为系统功耗模式为 0。
/************************************************************* ******** * 函数名称:main * 功 能:main函数入口 * 入口参数:无 * 出口参数:无 * 返 回 值:无
************************************************************** ******/ void main(void) {
16MHz RC振荡器
CLKCONCMD.TICKSPD[b5..b3] = 001 定时器tick设置为16MHz
CLKCONCMD.CLKSPD[b2..b0] = 001 时钟速度设置为16MHz
*/
if(source == RC_16MHz)
{
CLKCONCMD &= 0x80;
CLKCONCMD |= 0x49; //01001001
/************************************************************* *******/ #include "ioCC2530.h" // CC2530的头文件,包含对CC2530的寄存器、 中断向量等的定义 /************************************************************* *******/
* 功 能:选择系统时钟源(主时钟源)
* 入口参数:source
*
XOSC_32MHz 32MHz晶体振荡器
*
RC_16MHz 16MHz RC振荡器
* 出口参数:无
* 返 回 值:无
************************************************************** ******/ void SystemClockSourceSelect(enum SYSCLK_SRC source) {
CLKCONCMD.CLKSPD[b2..b0] = 000 时钟速度设置为32MHz
*/
else if(source == XOSC_32MHz)
{
CLKCONCMD &= 0x80;
}
/* 等待所选择的系统时钟源(主时钟源)稳定 */
clkconcmd = CLKCONCMD;
// 读取时钟控制寄存器
CLKCONCMD
do
{
clkconsta = CLKCONSTA;
// 读取时钟状态寄存器
CLKCONSTA
}while(clkconsta != clkconcmd); // 直到CLKCONSTA寄存器的值与
CLKCONCMD寄存
// 器的值一致,说明所选
择的系统时钟源(主
// 时钟源)已经稳定 }
/************************************************************* ******** * 函数名称:BlinkLeds * 功 能:闪烁LED * 入口参数:无 * 出口参数:无 * 返 回 值:无
************************************************************** ******/ void BlinkLeds(void) //闪烁LED {
unsigned char j; for(i = 0; i < time; i++) { for(j = 0; j < 240; j++)
{ asm("NOP"); // asm是内嵌汇编,nop是空操作,执行一个 指令周期
asm("NOP"); asm("NOP"); } } }
/************************************************************* ******** * 函数名称:init * 功 能:初始化系统IO,定时器T1控制状态寄存器 * 入口参数:无 * 出口参数:无 * 返 回 值:无
unsigned char clkconcmd,clkconsta;
/*
系统时钟源(主时钟源)选择16MHz RC振荡器,定时器tick设置为
16MHz,时钟速度设置为16MHz
CLKCONCMD.OSC32K[b7]不改变
32KHz时钟源选择保持先前设
置
CLKCONCMD.OSC[b6] = 1
系统时钟源(主时钟源)选择
LED */ SystemClockSourceSelect(XOSC_32MHz); for(i=0;i<8;i++) BlinkLeds();
}
} 3. 配置项目设置 参照实验 1 的操作步骤,配置项目设置。 4. 下载程序到 CC2530 参照实验 1 的操作步骤,下载程序到 CC2530 进行调试。 【思考题】 1. 为什么指示灯闪烁的频率不一样? 2. 可以设置比 32M 更高的频率吗?
/************************************************************* ******** * 函数名称:delay * 功 能:软件延时
* 入口参数:无 * 出口参数:无 * 返 回 值:无
************************************************************** ******/ void delay(unsigned int time) { unsigned int i;
}
/*
系统时钟源(主时钟源)选择32MHz晶体振荡器,定时器tick设置为
32MHz,时钟速度设置为32MHz
CLKCONCMD.OSC32K[b7]不改变
32KHz时钟源选择保持先前设
置
CLKCONCMD.OSC[b6] = 0
系统时钟源(主时钟源)选择
32MHz晶体振荡器
CLKCONCMD.TICKSPD[b5..b3] = 000 定时器tick设置为32MHz
LED3 = !LED3; LED4 = !LED4; delay(30000); // 延时 }
/************************************************************* ********
* 函数名称:SystemClockSourceSelect
/* 定义枚举类型 */ /************************************************************* *******/ enum SYSCLK_SRC{XOSC_32MHz,RC_16MHz}; // 定义系统时钟源(主时 钟源)枚举类型 /************************************************************* *******/ //定义led灯端口:p1.3, p1.4: #define LED3 P1_3 // P1_3定义为P1.3 #define LED4 P1_4 // P1_4定义为P1.4
图 1-23 高速时钟系统示意图
【实验步骤】 1.建立一个新项目 参照实验 1 操作步骤,在指定路径建立一个新的工作空间“Test05”,在该 空间下新建一个 IAR 项目“clockPrj.ewp” 并保存。 2.添加或新建程序文件 参照实验 1 的操作步骤, 往项目中添加或者新建程序文件 clock.c。 【实验相关代码】
************************************************************** ******/
void init(void) { P1SEL &= ~0x18;
P1DIR |= 0x018 ; LED3 = 0; LED4 =0; //灭 通IO口 // 设置LED3、LED4为输出