描述
这个proteus仿真是一个网友做的,该仿真可以生成方波、正弦波、锯齿波和三角波,并且还可以用按键调整波形。
不过,对初学者来讲,可能有点复杂。对于本科生来说,这个仿真几乎可以作为毕业论文了吧。当然,需要用实际元器件来调试,制作pcb,焊接。
我做的生成锯齿波和生成正弦波的仿真,可以作为学习这个仿真的阶梯。
这个仿真主要是用到溢出中断,和外部键盘中断。熟悉中断,和定时器的编程后,实现这个仿真其实也很简单。
仿真图:
C程序如下:
有三个C文件:
主函数文件如下:
#include
//unsigned char TIME0_H=0xec,TIME0_L=0x78; //定时器0的初值设置;全局变量
#include
#include《0832.h》
void main()
{
TMOD=0X01;
TH0=0xff;
TL0=0xd9;
IT0=1; //设置中断触发方式,下降沿
EA=1;
EX0=1;
ET0=1;
IP=0X01; //键盘中断级别高
TR0=1;
while(1)
{
// square();
;
}
}
0832.h文件如下:
#ifndef __0832_h__
#define __0832_h__
//#define INPUT XBYTE[0xbfff] //即cs 与xfer 轮流低电平。
//#define DACR XBYTE[0x7fff] //单通道输出,单缓冲就行了。
unsigned char i,sqar_num=128; //最大值100,默认值50
unsigned char cho=0; //0:正弦波。1:方波。2:三角波。3:锯齿波。
unsigned char num=0;
unsigned char TIME0_H=0xff,TIME0_L=0xd9; //定时器0的初值设置;全局变量。对应正弦波,锯齿波50HZ
sbit