1、软件信息处理课程设计 - 1 - 题目:题目:射频信号相位分析与测量软件模块设计射频信号相位分析与测量软件模块设计 一、一、 设计目的设计目的简介简介 1、通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理 论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力; 2、掌握 C 语言的编程方法,能熟练运用; 3、通过软件信息处理实践的课程设计,掌握设计信息处理系统的思维方法 和基本开发过程。 二、二、 设计主要方案及理论介绍设计主要方案及理论介绍 方案方案: 设计一个基于单片机或 WINDOW 的小程序,实现轮询结构的嵌入式程序。通 过按键控制(模拟的)单片机产生模拟的
2、 LMK03000 串行总线时序控制信号 理论介绍理论介绍: 1、嵌入式系统程序结构:嵌入式系统通常执行的是带有特定要求的预先定 义的任务,嵌入式系统一般指非 PC 系统,它包括硬件和软件两部分。硬件 包括处理器微处理器、存储器及外设器件和 IO 端口、图形控制器等。 软件部分包括操作系统软件(OS) (要求实时和多任务操作)和应用程序编 程。 2、轮询程序:轮询(Polling)IO 方式或程序控制 IO 方式,是让 CPU 以 一定 的周期按次序查询每一个外设,看它是否有数据输入或输出的要求, 若有,则进行相应的输入输出服务;若无,或 IO 处理完毕柏,CPU 就接 着查询下一个外设。 3
3、、键抖动:当机械触点断开、闭合时,由于机械触点的弹性作用,一个按 键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在 闭合及断开的瞬间均伴随有一连串的抖动 4、SPI 串行总线时序: (SPI 是 Serial Peripheral interface 的缩写,顾 名思义就是串行外围设备接口) 软件信息处理课程设计 - 2 - 5、延时子程序:例如单片机 1ms 延时程序 void delay1ms( unsigned int i) unsigned char j; while( i ) for ( j=0;jv.size()-1)/v.size()代表输入元素的个数 f-=v
4、.size(); printf(“%d,“,vf);/依次输出元素 if(kbhit()/键盘触发事件 scanf(“%s“, Second(K); start=end; else end=clock(); 、void OutPut()大体思路同上,主要是输出定义的全局变量数组 int wave2=1,0; 软件信息处理课程设计 - 8 - 部分程序: void OutPut() char K; int start=clock(), end,f=-1;/clock()方法获取目前时间 while(1) if (end != start if(f1) f-=2; printf(“%d,“,wav
5、ef); if(kbhit()/kbhit()键盘触发事件 scanf(“%s“, Second(K); start=end; else end=clock(); 三三、程序源代码程序源代码 #include #include /与时间有关 #include/与动态数组有关 #include /与动态数组有关 #include /与键盘事件有关 using namespace std; void Select(int t); void Second(int y); void StartTime(); void OutPut(); /程序入口 void main() int k; 软件信息处理课
6、程设计 - 9 - printf(“请选择开关状态:n“); printf(“1代表开关K1,2代表开关K2,3代表暂停K3n“); scanf(“%d“, Select(k); vector v; int f=-1; int wave2=1,0; /开关k1触发方法 void Select(int t) int k; switch(t) case 1: printf(“波形如下n“); OutPut(); break; case 11: printf(“开关闭合状态n“); scanf(“%d“, Select(k); break; default: printf(“开关操作有误,请重新操作:n“); scanf(“%d“, Select(k); break; /开关k2,k3触发方法 void Second(int y) int a; int i; int aa