教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

称重仪毕业设计(9)

来源:网络收集 时间:2026-09-05
导读: COM0,而每一段段极需要另一个引脚驱动。 (2)2MUX驱动:使用两个引脚作为液晶公共端COM0、COM1每两段段极需要另一引脚驱动。 (3)3MUX驱动:使用三个引脚作为液晶公共端COM0、COM1、COM2,每3段段极需要另一引脚

COM0,而每一段段极需要另一个引脚驱动。

(2)2MUX驱动:使用两个引脚作为液晶公共端COM0、COM1每两段段极需要另一引脚驱动。

(3)3MUX驱动:使用三个引脚作为液晶公共端COM0、COM1、COM2,每3段段极需要另一引脚驱动。

(4)4MUX驱动:使用4个引脚作为液晶公共端COM0、COM1、COM2,每4段段极需要另一引脚驱动。

3.7 硬件电路设计小结

本章介绍的是称重系统的硬件电路,分别完成MSP430最小系统设计、电源管理模块设计、信号采集模块电路设计、信号调理电路设计、AD转换电路设计和显示电路设计。硬件电路是本设计的基础,各个模块的电路为称重系统各个功能的完成提供了基础。

19

基于MSP430的称重系统

4 称重系统软件设计

模块化思想:初始化程序模块、AD采集与数据处理程序模块、显示程序模块。

4.1 主程序设计

根据称重系统的性能指标要求,程序设计需要完成以下模块设计,AD模块,数据处理模块、LCD模块。由于系统需要实时显示被测量的重量,所以在显示完经测量处理的数据信息后,程序将自动跳回AD采样环节继续重复执行。如图4.1为主程序流程图。

开始初始化AD采样采样数据处理显示数据结束 图4.1 主程序流程图

20

基于MSP430的称重系统

4.2 初始化程序模块

如图4.2为初始化程序流程图。

开始关闭看门狗初始化AD初始化LCD结束

图4.2 初始化程序流程图

初始化程序代码:

void ini_main() {

int i;

char j;

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

FLL_CTL0 |= XCAP18PF; // 设置晶振负载电容18pF for (i = 0; i < 10000; i++); // 略延迟,让震荡稳定

SD16CTL = SD16REFON+SD16VMIDON+SD16SSEL0+SD16DIV_1;

// 开启内部1.2V基准源, 开启缓冲器,ADC时钟选择为SMCLK/2(524KHz)

for (i = 0; i < 500; i++); // 略延迟,让基准电压稳定

SD16CCTL0 |= SD16DF+SD16GRP; // ADC0与ADC1编组,数据格式为有符号 SD16CCTL1 |= SD16DF+SD16GRP; // ADC1与ADC2编组,数据格式为有符号 SD16CCTL2 |= SD16DF+SD16IE; // 打开ADC2中断,数据格式为有符号 //ADC0/1/2已经被编为同一组,对ADC2的操作将同时作用于ADC0与ADC1 SD16INCTL0 |= SD16INCH_0+SD16GAIN_1; // ADC0输入选择为外部输入,1倍放大 SD16INCTL1 |= SD16INCH_0+SD16GAIN_1; // ADC1输入选择为外部输入,1倍放大 SD16INCTL2 |= SD16INCH_0+SD16GAIN_1; // ADC2输入选择为外部输入,1倍放大 BTCTL = BTDIV+BT_fCLK2_DIV8; // 1/16s BT Int

IE2 |= BTIE; // Enable Basic Timer interrupt;

21

基于MSP430的称重系统

char *pLCD = (char *)&LCDM1; // 取LCDM1寄存器(最低位)的地址 for (j = 0; j < 8; j++) // Clear LCD memory *pLCD++ = 0; // 清屏

LCDCTL = LCDSG0_1 + LCD4MUX + LCDON; // LCD模式:4mux LCD, segs0-15 BTCTL |= BT_fLCD_DIV64; // 设置 LCD 刷新率 P2DIR|=BIT2;

P2DIR|=BIT0+BIT1+BIT3;

P1DIR|=BIT0+BIT1+BIT2+BIT3+BIT4; //悬空不用的IO设为输出,避免不确 P1OUT=0; //定电平造成IO口额外耗电。 P2OUT=0;

_EINT(); //总中断允许 }

4.3 AD采集与数据处理程序模块

ADC模块采用单通道单次采样转换方式。当ASC16SC触发一次转换时,下一次转换就可以通过简单的设置SD16SC为来启动,累加12次采样结果,并去平均值,才每次采样开始前都会查询中断完成标志,再根据结果判断是否开始转换。如图4.3所示为流程图如下。

开始启动A/D转换否查询中断完成标志是采样转换转换结果缓存及读取AD转换值并处理数据结束

图4.3 AD模块流程图

22

基于MSP430的称重系统

AD采集与数据处理程序代码:

void ADC_Sample3() {

long int ADC_Sum0=0;

int i;

SD16CCTL2 |= SD16SC; // 向ADC2发出\开始采样\命令 //由于ADC0/1/2已经被编为一组,三个ADC将同时收到出\开始采样\命令 for(i=0;i<16;i++) //采样4次

{

while(ADC_Flag==0) LPM0; //CPU休眠,等待被采样结束唤醒 ADC_Flag=0;

ADC_Sum0+=ADC_Result0; //ADC0采样结果累加 }

SD16CCTL2 &=~ SD16SC; // 向ADC2发出\停止采样\命令 //由于ADC0/1/2已经被编为一组,三个ADC将同时收到出\停止采样\命令 ADC_Result0=(ADC_Sum0/16 -852) / 10; }

4.4 LCD显示程序模块

LED显示器有静态和动态两种方法。所谓静态显示,就是显示某一字符时,相应的发光二极管恒定得导通或截止,这种方法,每一显示位都需要一个8位的输出口控制,占用的硬件较多,一般仅用于显示位数较少的场合。而动态就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次,利用人的视觉留感达到显示的目的。为了显示字符和数字,要为LED显示器提供显示段码(或称字形代码),组成一个―8‖字形的7段,再加上一个小数点位,共计8段,因此提供LED显示器的显示段码为1个字节。 LCD显示程序代码:

//在LCD上显示一个带有小数点的长数据。

void LCD_DisplayLongDecimal( long int Number, char DOT) {

char Neg;

char i;unsigned char temp; char *pLCD = (char *)&LCDM1;

char PolarLocate; char DispBuff[8];

if(Number<0) {Number=-Number; Neg=1;} //处理负数 else Neg=0;

for(i=0;i<7;i++) //拆分数字 {

DispBuff[i]=Number;

23

基于MSP430的称重系统

Number/=10; }

for(i=6;i>DOT;i--) //消隐无效\ {

if (DispBuff[i]==0) DispBuff[i]=SP; else break;

}

PolarLocate=i+1; // 负号显示在第一个有效数字左边 if(DOT>3) DOT=255; // 无效的小数点不显示

if(DOT<1) DOT=255; // LCD048段码中只有123位数字有小数点 for(i=0;i<7;i++)

{

temp=LCD_Tab[DispBuff[i]]; //查表

if (DOT==i) temp|=DOTSEG;//显示小数点 if ((PolarLocate==i)&&(Neg)) temp|=NEGSEG;//负号 pLCD[i]=temp; //写入显存 } }

4.5 软件设计小结

本系统的软件程序设计是基于硬件电路而完成的。分别完成了以下模块的程序设计:初始化程序模块、AD采集与数据处理程序模块、显示程序模块。通过程序控制硬件电路完成称重系统的功能与指标。

…… 此处隐藏:1347字,全部文档内容请下载后查看。喜欢就下载吧 ……

称重仪毕业设计(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/613691.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)