称重仪毕业设计(9)
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采集与数据处理程序模块、显示程序模块。通过程序控制硬件电路完成称重系统的功能与指标。
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




