程控放大器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开放实验报告
课题名称程控放大器的设计
学生姓名
系、年级专业信息工程系、11、12级电子信息工程
指导教师王少杰
2014年 5 月15日
程控放大器的设计
一.实验目的
1、了解程控放大器原理。
2、掌握在Proteus中进行电子电路设计与仿真方法。
3、学会Proteus虚拟仪器仪表的使用。
二.实验内容
1、在Proteus中,设计基于数字电位器的程控放大器,并进行仿真。
2、在Proteus中利用虚拟仪器仪表测量放大器的技术参数。
三.电路设计
1、程控放大器原理
2、程控放大器电路
3、程序设计
4、仿真结果与分析
5、结论
1、程控放大器电路原理如下:
其工作原理是:
通过单片机的SPI总线来控制数字电位器MCP41010,通过对数字电位器MCP41010写时序能够操作操控MCP41010的阻值大小,进一步控制电路中的电压大小,实现单片机对电路电压的放大与缩小。
四.实验分析
MCP41010是数字电位器MCP41XXX系列中的10K阻值的数字电位器,内部有256个抽头,能够精确地对电压实现放大与缩小,采用低功耗CMOS技术,结口是SPI串行接口,最大INL和DNL误差为1LSB,静态工作电流最大值为1uA,关断功能可断开所有的电阻电路,最大限度的节能功耗,单电源工作(),在上电时抽头复位到半量程(80h),MCP41XXX系列数字电位器分为变阻器模式和电位器模式。本次试验使用MCP41010的变阻器模式,通过对单片机的,,(CS,SI,SCK)三个引脚进行输出控制,利用单片机的计数功能对外部按键(增大,减少)进行计数,单片机内部通过按键数多少对MCP41010时序写入,进一步控制MCP41010的抽头数,来改变电路的电压大小,实现程序控制电压的放大与缩小。
五.仿真结果
仿真开始
放大波形
缩小波形
源程序附后:
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
uchar code P_P0[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar code P_Pshi[]={0x40,0x79,0x24,0x30,0x19,0x12,0x12,0x78,0x00,0x10};
sbit K1=P3^4;
sbit K2=P3^5;
sbit CS=P1^5;
sbit SI=P1^6;
sbit SCLK=P1^7;
uchar i=0,j=0,k=200,Count=175;
void delay(uint x) //延时
{
while(x--);
}
void Send_Data(uchar x) //发送数据
{
uchar n=2, i,command=0x11;
CS=0;
for(i=0;i<8;i++)
{
SCLK=0;
if(command&0x80)
{
SI=1;
}
else
{
SI=0;
}
SCLK=1;
for(;n!=0;n--); command<<=1;
}
for(i=0;i<8;i++) {
SCLK=0;
if(x&0x80)
{
SI=1;
}
else
{
SI=0;
}
SCLK=1;
for(;n!=0;n--);
x<<=1;
}
for(;n!=0;n--);
CS=1;
}
void Key_read(void) //读按键{
if(K1==0)
{
Send_Data(Count);
i=0;
do
{
i++;
Send_Data(Count);
}while(K1==0);
}
if(K2==0)
{
Send_Data(Count);
j=0;
do
{
j++;
Send_Data(Count);
}while(K2==0);
}
}
void led_scan(void) //数码管显示{
P0=P_Pshi[k/100]; P2=0x01;
delay(125);
P2=0x00;
P0=P_P0[k/10%10]; P2=0x02;
delay(125);
P2=0x00;
P0=P_P0[k%10];
P2=0x04;
delay(125);
P2=0x00;
P0=P_P0[0];
P2=0x08;
delay(125);
P2=0x00;
}
void main()
{
IE=0x8a;
IP=0x02;
TMOD=0x66;
TH0 = 255;
TL0 = 255;
TH1 = 255;
TL1 = 255;
TCON=0x55;