集成电路设计方案Word下载.docx
- 文档编号:16996963
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:19
- 大小:97.24KB
集成电路设计方案Word下载.docx
《集成电路设计方案Word下载.docx》由会员分享,可在线阅读,更多相关《集成电路设计方案Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
在读书过程中不可避
免地会引入人为的测量误差(例如视差),并且还容易造成视觉疲劳,数字电压表则采用了先进的数显技术,使显示结果一目了然,只要仪表不发生跳数现象,测量结果就是唯一的,不仅保证了读书的客观性与准确性,还符合人们的读数习惯,能够缩短读书和记录的时间。
2.准确度高
数字电压表的准确度是测量结果中系统误差与随机误差的综合。
它便是测量结果与真值的一致程度,也反映测量误差的大小,一般讲准确度愈高,测量误差愈小,反之亦然。
数字电压表的准确度远优于模拟式电压表,后者的准确度只有7个等级:
0.1、0.2、0.5、1.0、1.5、2.5、5.0。
而普通的数字电压表的准确度就已经超过这几个等级[2]。
3.分辨率高
分辨率是数字电压表能够显示的被测电压的最小变化值,也就是使显示器末位跳一个字所需的输入电压值,通常用百分数表示。
12位DVM的分辨率为1/4096,这是符合要求的准确度。
4.扩展能力强
在数字电压表的基础上,还可以扩展成各种专用及通用数字仪表、数字多用表。
5.测量速度快
数字电压表在每秒内对被测量电压的测量次数,叫测量速率,单位是“次/S”。
它主要取决于A/D转换器的转换速率。
目前,数字电压表的最高测量速率已达到10万次/S[3]。
6.输入阻抗高
数字电压表具有很高的输入阻抗,通常为
-
最高可到104
。
这样在测量时从测量点路上吸取的电流极小,不会影响被测信号源的工作状态,由此可减小由信号源内阻带来的附加误差。
7.集成度高,微功耗
新型的数字电压表普遍采用CMOS大规模集成电路,整机功耗很低。
8.抗干扰能力强
数字电压表的内部干扰有漂移及噪声,外部干扰有串模干扰及共模干扰。
经过数字滤波和浮地保护等技术,数字电压表具有很高的抗干扰能力。
由于数字电压表具有以上诸多优点优点,所以在国内外已得到很广泛的应用,具有很好的发展前景。
1.2本课题研究目的和意义
MSP430F149是德州仪器公司(TI)新推出的高性能的超低功耗16位微控制器,在测量系统、工业控制、数据采集和智能仪器仪表领域有着广泛的应用,MSP430F149内嵌12位高精度A/D转换器[4]。
采用MSP430F149的数字电压表精度高、抗干扰能力强,可扩展性强、集成方便,价格低廉,目前在国内外得到了广泛的应用,有很好的发展前景。
1.3本课题的设计任务及要求
1.基于MSP430F149数字电压表系统软件设计的设计任务
设计由MSP430F149为控制器的直流数字电压表模块,对输入的直流电压进行测量,并通过12864C-1液晶显示器显示测量电压值。
学习并掌握MSP430F149工作原理及应用系统的开发,学习并掌握IAR公司的IAREmbeddedWorkbenchEW430开发平台使用和操作。
在EW430设计平台上完成数字电压表模块系统初始化及A/D转换、LCD显示等程序的设计、编写和调试工作。
2.基于MSP430F149数字电压表系统软件设计的设计要求
要求直流电压测量范围:
0V~3V,误差为0.001V。
完成数字电压表模块软件程序的设计工作。
1.4本章小结
随着电子技术的发展,需要高精度的测量工具,而基于MSP430F149数字电压表度高、抗干扰能力强,可扩展性强、集成方便,价格低廉,目前在国内外得到了广泛的应用,前景可观,具有极其深远的研究意义。
2基于MSP430F149的数字电压表系统
2.1系统总体设计方案
数字电压表设计主要部分有电源部分、AD转换部分、LCD显示部分、JTAG程序下载接口。
1.电源采用USB电源加分压电路为整个系统供电。
2.AD转换部分采用MSP430F149单片机,单片机自带ADC12高精度12位模数转换电路。
3.LCD部分选用YJD12864C-1液晶做显示器,实现测量的4位电压显示。
4.单片机自带程序下载接口可用14脚JTAG接口连接,之后就可以通过下载器直接下载程。
5.除以上主要部分还有32.768的单片机外接晶振电路,连接在单片机复位端脚的复位电路。
以上是主要部分介绍具体连接电路在下面介绍。
图2.1是系统总体结构图:
2.2MSP430F149单片机介绍
2.2.1简单概述
MSP430F149芯片是美国TI公司推出的超低功耗微处理器,有60KB+256字节FLASH,2KBRAM,包括基本时钟模块、看门狗定时器、带3个捕获/比较寄存器和PWM输出的16位定时器、带7个捕获/比较寄存器和PWM输出的l6位定时器、2个具有中断功能的8位并行端口、4个8位并行端口、模拟比较器、12位A/D转换器、2个串行通信接口等模块。
[5]
2.2.2MSP430F149主要特点
1.低功耗:
电压1.8~3.6V低电压,RAM数据保持方式下耗电仅0.1pA,活动模式下耗电250pA/MIPS(MIPS:
每秒百万条指令数),I/O输入端口的漏电流最大仅50nA。
2.强大的处理能力:
MSP430系列单片机采用了目前流行的精简指令集(RISC)结构,一个时钟周期可以执行一条指令,因此在8MHz晶振工作时,指令速度可达到8MIPS。
3.丰富的片上外围模块:
MSP430系列单片机结合TI的高性能模拟技术,各成员都集成了较丰富的片内外设,具体到MSP430F149单片机有以下功能模块:
看门狗(WDT),模拟比较器A,定时器A(TimerA),定时器B(TimerB),串口,1(USART0,1),硬件乘法器,液晶驱动器,12位ADC,直接数据存取(DMA),端口l-6(P1~P6),基本定时器。
[6]
4.系统工作稳定:
MSP430系列单片机均为工业级器件,运行环境温度为-40一+85℃,运行稳定、可靠性高,所设计的产品适用于各种民用和工业环境。
5.方便高效的开发环境:
因为器件片内有JTAG调试接口,还有可电擦写的FLASH存储器,因此采用先通过JTAG接口下载程序到FLASH内,再由JTAG接口控制程序运行、读取片内CPU状态,以及存储器内容等信息供设计者调试,整个开发(编译、调试)都可以在同一个软件集成环境中进行。
[7]
2.2.3MSP430F149芯片引脚功能介绍
MSP430F149芯片设计时的封装方式为贴片式封装,64个引脚,引脚间距为0.5mm,单片机面积很小很难手工焊接,所以够买的是带有转接板的单片机,贴片式的单片机转接成4列2*8排针的引脚,排针脚间距约为2.54mm,能与万能板匹配[8]。
MSP430F149单片机引脚如图2.2所示:
图2.2MSP430F149单片机引脚图
表2.1描述了MSP430F149单片机各端口功能。
表2.1MSP430端口功能
端口
功能
P1、P2
I/O、中断功能、其他片内外设功能
P3、P4、P5、P6
I/O、其他片内外设功能
S、COM
I/O、驱动液晶
端口使用特性:
1.所有端口都可以单独进行编程;
2.可以进行输入输出和中断条件的任意组合;
3.对具有中断功能的引脚输入沿可进行选择;
4.具有第2功能选择,以适合不同I/O口操作;
5.所有指令支持端口控制寄存器的读写操作。
2.3本章小结
本章主要介绍本课题的总体设计方案以及对于单片机MSP430F149的核心芯片的特点及引脚功能进行了介绍。
4系统软件设计
4.1简单概述
本系统设计中采用IAREmbeddedWorkbenchforMSP4306.0软件,这是一款非常优秀的LED开发环境具有强大的编译能力和调试功能。
4.2软件设计总体流程图
根据模块划分原则,将改程序划分为初始化模块、A/D转换子程序、LCD显示子程序,这三个程序模块构成了整个系统软件的主程序,软件设计总体流程图如图4.1所示:
图4.1总体流程图
4.3程序设计
4.3.1初始化程序
所谓初始化,是对将要用到的MSP430系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
[9]
初始化程序如下:
#include<
msp430x14x.h>
unsignedcharflag=1;
/*****************初始化程序*****************/
voiduart_org(void)
{
ME1|=UTXE0+URXE0;
//EnableUSART0TXD/RXD
UCTL0|=CHAR;
//8-bitcharacter
UTCTL0|=SSEL0;
//UCLK=ACLK
UBR00=0x03;
//32768/9600
UBR10=0x00;
UMCTL0=0x4a;
P3SEL|=0x30;
//P3.4,5=USART0TXD/RXD
P3DIR|=0x10;
UCTL0&
=~SWRST;
//InitializeUSARTstatemachine
IE1|=URXIE0;
//EnableUSART0RXinterrupt
}
4.3.2A/D转换程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图4.2所示:
A/D转换程序如下:
/*********************************************************
程序功能:
MCU的片内ADC对P6.0端口的电压进行转换
将模拟电压值显示在12864c-1液晶上。
----------------------------------------------------------
*********************************************************/
msp430X14X.h>
/////////////////////
#defineRSBIT0;
//P3.0
#defineRWBIT1;
//P3.1
#defineEBIT2;
//P3.2
#definePSBBIT5;
//控制端口P1.5
#defineRESBIT6;
//复位P3.6
#defineNumber_of_Results200
voiduart_org(void);
voidUartStr(unsignedchar*p);
voiddelay(unsignedinti);
////////////////////////////
voiddelay(unsignedintt);
voidwrite_com(unsignedcharcmdcode);
voidwrite_data(unsignedcharDispdata);
voidlcdreset();
voidhzkdis(char*s);
voidceshi();
voidclrscreen();
unsignedcharshuzi[]={"
0123456789."
};
staticunsignedintresults[Num_of_Results];
//保存ADC转换结果的数组
voidTrans_val(unsignedintHex_Val);
voidInitADC12();
/************************主函数****************************/
voidmain(void)
WDTCTL=WDTPW+WDTHOLD;
P3DIR|=0x47;
P3OUT&
=~RES;
P3OUT=0x00;
P1DIR|=0X20;
P1OUT=0x00;
P1OUT&
=~PSB;
delay(300);
P1OUT|=PSB;
//PSB=1;
P3OUT|=RES;
=~RW;
//RW=0;
LCDreset();
//初始化LCD屏
ceshi();
delay(25000);
Clrscreen();
delay(5000);
uartorg();
UartStr("
开始上传数据请稍候----\r\t\n"
);
电压测量开始:
\r\t\n"
P6SEL|=0x01;
//使能ADC通道A0
ADC12IE=0x01;
ADC12CTL0=ADC12ON+MSC;
//开ADC12内核,设SHT0=2(N=4)//应该加上MSC和SHT
ADC12CTL1=SHP+CONSEQ_2;
//SAMPCON信号选为采样定时器输出//应该加上CONSEQ_2选择单通道多次转化
//ADC12内部参考电压设置
ADC12CTL0|=REF2_5V;
//选用内部参考电压为2.5V
ADC12CTL0|=REFON;
//内部参考电压打开
ADC12MCTL0|=SREF_1;
//R+=3.3VR-=VSS
//转换允许
ADC12CTL0|=ENC;
//转换允许(上升沿)
_EINT();
//使能转换
ADC12CTL0|=ADC12SC;
////////////////////////////////
/*******************************************
函数名称:
ADC12ISR
功能:
ADC中断服务函数,在这里用多次平均的
计算P6.0口的模拟电压数值
参数:
无
返回值:
无
********************************************/
#pragmavector=ADC_VECTOR
__interruptvoidADC12ISR(void)
staticunsignedintindex=0;
results[index++]=ADC12MEM0;
//Moveresults
if(index==Number_of_Results)
{
unsignedchari;
unsignedlongsum=0;
index=0;
for(i=0;
i<
Number_of_Results;
i++)
sum+=results[i];
}
sum=sum/200;
//除以200
sum=sum*3000/4095;
//转换结果,将AD12中数据线性平均后的结果,乘以量程再除以最大数字值,
//转换为可以在LCD上显示的模拟电压值,量程扩大1000倍,是在后面的数字切割算法中使用方便。
Trans_val(sum);
Trans_val
将16进制ADC转换数据变换成4位10进制
真实的模拟电压数据,并在液晶上显示
voidTrans_val(unsignedintHex_Val)
intm,n,j=0;
unsignedcharp[5];
p[0]=shuzi[Hex_Val/1000];
m=Hex_Val%1000;
p[2]=shuzi[m/100];
n=Hex_Val%100;
p[3]=shuzi[n/10];
j=Hex_Val%10;
p[4]=shuzi[j];
write_com(0x80);
hzkdis("
测量电压:
"
write_com(0x89);
for(inti=0;
i<
=4;
i++)
{
unsignedintl=p[i];
if(i==1)
."
gotollb;
switch(l)
case'
0'
:
0"
delay(1000);
break;
1'
1"
2'
2"
3'
3"
4'
4"
5'
UartStr("
5"
6'
6"
7'
7"
8'
8"
9'
9"
llb:
if(i!
=1)
write_data(p[i]);
V"
V\r\t\n"
delay(5000);
lcdreset();
4.3.3LCD显示子程序
LCD程序几乎没有算法只是按寄存器送控制字,就可以实现数据接收显示,所以只要掌握12864的控制命令字就可以自由的实现显示功能。
LCD显示子程序如下:
MSP430x14x.h>
#defineFIRST_ADDR0
/*------------------延时子程序-----------------------------*/
voiddelay(unsignedintt)
{
unsignedinti,j;
for(i=0;
t;
i++)
for(j=0;
j<
10;
j++);
}
/*------------------写命令到LCD------------------------------*/
voidwrite_com(unsignedcharcmdcode)
//chk_busy();
P3OUT&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集成电路设计 方案