基于单片机方波发生器仿真设计-学习笔记

Proteus简介
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

 

#include<math.h>
#include<reg52.h>
#include"output_type_select.h"

//输出波形数据
static uchar output_data[MAX_ARRAY_LENGTH];
//当前的输出波形类型
static enum output_type current_type=sine;
//方波占空比
static float square_factor=0.5;
//当前波形幅值
static uchar current_mag=255;

static void write_sine(uchar mag){
	uchar i=0;
	float temp=0;
	TR0=0;
	for(i=0;i<MAX_ARRAY_LENGTH;i++){
		temp=sin(2*3.14/MAX_ARRAY_LENGTH*i);
		output_data[i]=(uchar)(temp*mag/2+mag/2);
	}
	TR0=1;
}

static void write_square(uchar mag){
	uchar i=0;
	TR0=0;
	for(i=0;i<MAX_ARRAY_LENGTH;i++){
		output_data[i]=mag*(i>(MAX_ARRAY_LENGTH*square_factor));
	}
	TR0=1;
}

 

posted @ 2021-03-11 19:17  MCU创新DIY  阅读(123)  评论(0)    收藏  举报