河南城建学院本科毕业设计(论文) 系统软件方案的设计
正弦波发生程序如下: if(fun==1) {
DA0832=tosin[b]/4*A; //正弦波 b++; }
3.5.2. 三角波发生程序设计
由于三角波的函数值比较容易计算,所以不必要像正弦波那样还需用表格。可直接通过如下程序段实现。
else if(fun==2) //三角波 {
if(c<128)DA0832=c*2/4*A; else DA0832=(255-c)*2/4*A; c++; }
3.5.3. 方波发生程序设计
方波可直接由DAC0832产生,其发生程序如下: else if(fun==3) // 方波 { d++;
if(d<=128)DA0832=0x00; else DA0832=0xff/4*A; }
3.5.4. 锯齿波发生程序设计
锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同其发生程序如下:
else if(fun==4) // 锯齿波 { e++;
DA0832=e/4*A;}
18
河南城建学院本科毕业设计(论文) 仿真结果与分析
4. 仿真结果与分析
4.1. 仿真和编译工具
4.1.1. Proteus仿真软件
有了protel、Multisim、proteus、psice等一系列的软件的存在,就此便可以以虚代实、以软代硬,独立建立一个完善的虚拟实验室。代替了在实验室和教室里的以实物进行实践的方式,可以在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。因此这一系列的软件受到广大电子设计爱好者的青睐,是他们工作、学习上难得的工具软件,也因此它们在全球得到了广泛应用。
其中,Proteus软件提供多达30多个元件库,元件涉及到数字和模拟、交流和直流等,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IC器件,编译方面支持Keil和MPLAB等编译器。它的功能强大,集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。它还提供多种现实存在的虚拟仪器,这些仪表有极高的输入阻抗、极低的输出阻抗,可以尽可能减少仪器对测量结果的影响。
此外,Proteus软件还有图形显示功能,可以将线路上变化的信号以图形的方式实时地显示出来。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:系统总体执行效果和对软件的分步调试。它还提供了比较丰富的测试信号用于电路的测试,这些测试信号包括模拟信号和数字信号。在用Proteus进行仿真和程序调试时,可以从工程的角度直接看程序运行和电路工作的过程和结果。它还提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真PIC、AVR、51系列等常用的MCU,并提供周边设备的仿真,例如示波器、373、led等。
4.1.2. KEIL编译软件
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半
19
河南城建学院本科毕业设计(论文) 仿真结果与分析
功倍。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,与汇编相比,C语言有明显的优势,用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,是一个非常实用的编译软件。
4.2. 仿真结果
打开PROTEUS软件,选择所需器件连接导线,连接成功后的电路图如图4-1所示:
图4-1 总体电路图
打开KEIL软件,调出程序进行编译,生成HEX文件,编译窗口如图4-2所示:
20
河南城建学院本科毕业设计(论文) 仿真结果与分析
图4-2 编译窗口
编译后没有错误就可以生成hex文件用于单片机仿真,采用PROTEUS进行单片机仿真,可以大大缩短单片机的开发周期。它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
以下为四种波形的仿真结果示例。
正弦波仿真:频率分别为31HZ和260HZ。仿真结果分别如图4-3、4-4所示。
图4-3 正弦波仿真输出(31HZ)
21
河南城建学院本科毕业设计(论文) 仿真结果与分析
图4-4 正弦波仿真输出(257HZ)
三角波仿真:频率60HZ,仿真结果如图4-5所示。
图4-5 三角波仿真输出
方波仿真:频率86HZ,仿真结果如图4-6所示。
22