8路Walsh码单片机发生器设计毕业设计论文.docx_第1页
8路Walsh码单片机发生器设计毕业设计论文.docx_第2页
8路Walsh码单片机发生器设计毕业设计论文.docx_第3页
8路Walsh码单片机发生器设计毕业设计论文.docx_第4页
8路Walsh码单片机发生器设计毕业设计论文.docx_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计报告8路walsh码单片机发生器设计班 级 : 电子信息工程1201班 学 生 姓 名 : 学 号 : 120402116 指 导 教 师 : 成 绩 : 沈阳工业大学 课题设计任务简介1、课题题目:8路walsh码单片机发生器设计2、课题要求:利用单片机设计软件编写一个能通过按键控制输出的8路沃尔什(walsh)码的程序;按照课程设计各个单片机的原理图完成硬件的设计,利用电压比较器和示波器的输出来不断改变并完善程序设计。3、开发平台本设计使用的是keil uvision4开发平台。程序下载软件 stc_isp_v480。4、设计简介本设计中采用的是stc12c5608ad系统,当指定k1按键按下时,主程序开始运行,8路高低电平方波波形通过p1端口同时输出,然后经过双电源电压比较器来转换波形为最终的walsh码图形。目 录第一章 绪论-41.1研究目的-41.2研究背景-41.3研究意义-6第二章 设计方案-72.1设计理念-72.2硬件模块-8第三章 硬件设计-103.1原理图-103.2原理图介绍-103.3各硬件模块简介-10第四章 软件设计-134.1设计思路-134.2程序流程图-134.3设计程序-14第五章 实物图片及参考文献-19第一章 绪论1.1研究目的本课程设计主要针对电子信息工程专业课程体系设置的要求,安排的一种综合性的课程设计,通过让学生利用自己大学中学到的关于单片机、walsh码的知识,对单片机进行有目的地编程,使得最终输出符合于walsh码的变化规律。一方面为了培养学生在查阅资料、复习、学习知识的基础上,进行包括机、电系统的设计、计算、仿真、编程、调试等多个环节的综合能力培养;另一方面,也是对学生进行毕业设计前的一次大型练兵,进一步培养学生独立地分析、解决实际问题的实际能力。另外还培养学生用专业的、简洁的文字,清晰的图表来表达自己设计思想的能力。1.2研究背景波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机的延时定时技术,输出方波,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。at89c51单片机walsh码发生器,此波形发生器可产生方波,波形的幅值可以用程序进行改变,并可根据需要选择单极性输出,具有线路简单、结构紧凑、价格低廉、性能优越等优点。在本设计的基础上,加上按键用来更改不同波形之间的切换,实现不同波形的输出。walsh码是一种同步正交码, 即在同步传输情况下, 利用walsh码作为地址码具有良好的自相关特性和处处为零的互相关特性。此外, walsh码生成容易, 应用方便。walsh码来源于h矩阵,根据h矩阵中“+1”和“1”的交变次数重新排列就可以得到walsh矩阵,该矩阵中各行列之间是相互正交(mutual orthogonal)的,可以保证使用它扩频的信道也是互相正交的。对于cdma前向链路,采用64阶walsh序列扩频, 每个w序列用于一种前向物理信道(标准),实现码分多址功能。信道数记为w0-w63,码片速率:1.2288mc/s。沃尔什序列可以消除或抑制多址干扰(mai)。理论上,如果在多址信道中信号是相互正交的,那么多址干扰可以减少至零。然而实际上由于多径信号和来自其他小区的信号与所需信号是不同步的,共信道干扰不会为零。异步到达的延迟和衰减的多径信号与同步到达的原始信号不是完全正交的,这些信号就带来干扰。来自其他小区的信号也不是同步或正交的,这也会导致干扰发生,在反向链路中,沃尔什码序列仅用作扩频。c51程序开发是在keil uvision4开发环境下进行的。keil software公司2009年2月发布keil uvision4,keil uvision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的arm芯片,还添加了一些其他新功能。2011年3月arm公司发布最新集成开发环境realview mdk开发工具中集成了最新版本的keil uvision4,其编译器、调试工具实现与arm器件的最完美匹配。1.3研究意义通过设计8路walsh码单片机发生器,提升学习者的分析问题能力得以提升,让其在熟悉单片机书中的编程的同时,更加深了对walsh码的理解。并通过此项设计,掌握单片机信号发生器的基本设计理念。第二章 设计方案2.1设计理念2.2硬件模块1、主要模块介绍:stc12c5608adstc12c5608ad系列单片机是stc生产的单时钟/机器周期(it)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,速度快。 2、ch451是一个整合了数码管显示驱动和键盘扫描控制以及监控的多功能外围芯片。内置振荡电路,可以直接动态驱动位数码管或者位,具有译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。内置大电流驱动级,段电流不小于,字电流不小于,并有 级亮度控制功能;在键盘控制方面,该器件内置键键盘控制器,可实现矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能;在外部接口方面,可选择简洁的线串行接口或高速线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路。提供有引脚的与封装以及封装形式,脚与脚在功能上稍有差别,本次设计中运用的为24脚ch451。3. lm339电压比较器模块第三章 硬件设计3.1原理图3.2原理图介绍原理图包括:(1)stc12c5608ad及外部电路组成的处理模块;(2)ch451和按键组成的键盘扫描模块;(3)ch451和数码管组成的显示驱动模块。3.3各硬件模块简介(1)按键模块 通过查询ch451的按键返回值,即0x40, 0x43,对单片机p1端口是否输出进行控制,输出为8路方波。(2)stc12c5608ad系统stc12c5608ad系列单片机是stc生产的单时钟/机器周期(it)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,速度快。 (3)电压比较器模块要通过p1端口实现以上波形的连续输出,可以通过延时程序来实现八个波形的同时输出,但由于单片机输出只有0和1,要实现以上图形,需要用到一个电压比较器,这里运用lm339电压比较器,采用双电源供电方式,如图所示+ucc接+5v,-ucc接-5v,ur为基准电压2.5v,uin为单片机p1端口输出电压,若电压大于2.5v小于5v,示波器显示为uoh,若电压大于0v小于2.5v,示波器显示为uol,这样就将输出的walsh码波形表示了出来。程序最终通过两个按键控制p1端口的输出与否。第四章 软件设计4.1设计思路 设计一个8路同时输出方波的程序,通过按键来控制是否进行输出,通过高低电平的改变,以及延时程序和双电源供电的电压比较器来实现8路walsh码连续波形发生器的设计。 4.2程序流程图开始 程序初始化按键查询按键是否按下否则p1端口不输出按下则p1端口输出电压比较器输出示波器产生输出波形4.3设计程序#include#include sbit p0_1=p01;sbit p0_2=p02;sbit p0_0=p00;sbit p2_6=p26;#define uint unsigned int#define uchar unsigned char#define left_moto_go p0_1=0,p0_2=1; /p3_3 p3_4 接in1 in2 #define left_moto_pwm p0_0 unsigned char pwm_val_left =0;/变量定义unsigned char push_val_left =0;bit left_moto_stop =1;unsigned int time=0;uchar a11=0x7e,0x06,0xbc,0x9e,0xc6,0xda,0xfa,0x0e,0xfe,0xde,0xee;uchar bb ; /*/ void run(char speed) push_val_left = speed; left_moto_go ; /*/void pwm_out_left_moto(void) if(left_moto_stop) if(pwm_val_left=10)pwm_val_left=0; else left_moto_pwm=0;/*/*/*timer0中断服务子函数产生pwm信号*/ void timer0()interrupt 1 using 2 th0=0xf8; /1ms定时 tl0=0x30; time+; pwm_val_left+; pwm_out_left_moto(); void delay(unsigned int k) unsigned int x,y; for(x=0;xk;x+) for(y=0;y1;load=1; /加载数据,load上升沿for(j=0;j=1; /往右移一位 dclk=1; /产生时钟上升沿锁通知ch451输入位数据 load=1;/产生加载上升沿通知ch451处理命令数据 for(j=0;j100;j+) keycode=0; /清除keycode for(i=0;i!=7;i+)keycode=1; /数据移入keycode,高位在前,低位在后if (dout) keycode+; /从高到低读入451的数据 /keycode|=ch452_dout; dclk=0; /产生时钟下升沿通知ch451输出下一位 dclk=1;void main(void) int w;w=5;tmod=0x01;th0= 0xf8; /1ms定时 tl0= 0x30;tr0= 1;et0= 1;ea = 1; bb=a5;/cmd=0x092f;ch452_write(ch452_reset);ch452_write(ch452_no_bcd ); / 选择bcd译码方式,扫描极限为4个数码管ch452_write(ch452_syson2); / 开启显示while(1) ch452_read();if(keycode=0x40)while(1) p1=0xff; delay(50); p1=0xfe; delay(50); p1=0xc3; delay(50); p1=0xcc; delay(50); p1=0x99; delay(50); p1=0x96; delay(50); p1=0xa5; delay(50); p1=0xaa; delay(50); ch452_read(); if(keycode=0x43) break; ch452_write(ch452_dig0 | 0x7e);if(keycode=0x43)while(1) ch452_read(); ch452_write(ch452_dig0 | 0x06);第五章 实物图片及参考文献1.实物图片2.总结需要说明的是,经过多次调试,最终用示波器测量时发现我们这种方法用延时函数产生的波形不完美,有明显的上升

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论