




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统课程设计(论文)第 PAGE 13 页 共 NUMPAGES 13 页 基于ARM的失重秤设计 1 失重秤介绍失重秤,是一种间断给料连续出料的称重设备,由于失量控制是在料斗中进行,可达到较高的控制精度,结构又易于密封,故在粉料控制时与用螺旋秤来相比是一大提高。适用于水泥、石灰粉、煤粉等微细物料的控制配料。 2 设计任务及要求1、输出为12V的直流稳压电源为传感器供电,输出为3.3V的直流电源为逻辑控制器供电2、设计出键盘输入与显示电路(键盘显示板),用来显示当前的重量3、将托盘的重力转换为电压输出,并对输出的差动信号放大4、运用逻辑控制器将输出放大信号进行A/D采样,完成自动校零与自
2、动校满,并将重量在键盘显示板上进行显示与通过键盘显示板控制系统的运行。3 设计方案3.1 设计12V与3.3V稳压电源要得到一个输出为12V的稳压电源,必须把220V的交流电经过变压器降压为16V 30V的交流电压,然后接入整流桥。经过滤波以后接入12V直流稳压管,将电压输出稳定在12V,作为电桥及运放的电源。然后再将12V的输出电压接入可调电压稳压管,将输出电压调整为3.3V,作为逻辑器件的电源。3.2 设计键盘输入与显示电路键盘显示板的设计可以运用一般人眼的滞留时间在0.1s左右这一个生理特点,用2片8位的移位寄存器芯片串联来共同驱动两个四共阴极的LED数码显示管,一个移位寄存器芯片控制八
3、个数码管中的位码(即:第几位点亮),另一个控制被点亮的数码管的段码(即:所显示的数)。这样每隔2ms的时间,用SPI将段码和位码发送到移位寄存器里,这样数码管所显示的数的“存活期”为2ms。当2ms以后,就应该显示下一个数码管应该显示的数字,这时通过SPI又将新的段码与位码发送到移位寄存器里。可以计算得知,八个数码管的扫描周期为16ms,完全小于人眼的分辨时间0.1s,将看到连续的数字显示在显示板上。同时,8个按键是公共端接上拉电阻,并将按键的公共端引出,作为按键按下的输入到逻辑器件的借口,按键的另一端分别接到保存数码管位码的移位寄存器引脚上。这样,相当于每隔2ms在显示数字的同时也扫描了一个
4、按键。3.3 设计重力感应与放大电路将重力的变化转换为电压的变化可以采用三个压力传感器,选择三个压力传感器是为了固定托盘和更好的然每一个压力传感器都能感应到压力的变化,当重力发生变化时,每一个传感器的输出电压差发生等比例的变化,但是变化的电压及其微弱,一般小于1mv,从而必须将输出电压变化的部分用于放大电路进行放大。信号放大部分可以使用两级放大,前一级使用运算放大器做加减差动放大,将三个传感器输出的正负信号输出端分别接入放大器的正负输入端,放大电路将把输入信号做加减运算后将传感器输出的差动电压信号进行10倍放大,后一级主要用于电压的调零于(抵消掉因为托盘的重量引起的电压输出)与放大。由于传感器
5、输出的差动电压也会受到外部环境的影响,所以在调零时通常将最低电压调整在100mv 左右,给环境变化的影响留出100mv的余量。 这100mv 可以在后面的逻辑控制器件的程序处理时将其减去,从而减少了环境变化对测量数据的影响。将最高的输出电压定在3300mv的A/D可采样电压范围以内,以免超出A/D的采样范围影响测量。3.4 逻辑控制器的软件实现方案逻辑控制器件主要完成的功能是控制A/D对输入的电压进行采样并将A/D的采样值与重量的量纲相对应,运用(初始化的AD值,为放入固定重量的砝码后的AD值,为放入砝码的重量,为放入未知重物后的AD值, 为未知重物的重量)计算出托盘里面重物的重量,然后输出到
6、键盘显示板上进行显示。具体方案:每隔20ms通过A/D对输入的电压进行采样,在采样50次以后求出所有采样和的平均值在每次系统启动后自动进入校零和校满程序并保存,在校零和校满以后进入测量程序,根据每次采样出来的AD值运用计算公式将重量通过键盘显示板显示出来4 器件选择4.1 稳压电源器件的选择采用LM7812作为电桥及放大电路的供电稳压管。LM317是通过调节端口1的电压就可以调节输出电压的可调稳压管,因此选择将其输出调为3.3V为逻辑控制器件提供电压。4.2 八位移位寄存器芯片与数码显示管的选择 74LS164 8位移位寄存器 四共阴极的LED数码显示管, 4.3 压力传感器与运算放大器的选择
7、应变片压力传感器bLM324是四运放集成电路 4.4 逻辑控制器的选择LPC2131是基于一个支持实时仿真和嵌入式跟踪的3216位 ARMTTDMI-STM CPU的微控制器,并带有32KB的嵌入的高速Flash存储器。6 软件设计本系统软件部分的主要功能是完成对外部输入信号的AD采样,并且在对重量自校零和校满后使AD值与重量的量纲相对应,并且将所测得的重量通过SPI发送到键盘显示板上进行显示,其流程图(图10)如下:图10 程序流程图9 附录9.1 总电路图输出12V直流电压输出3.3V直流电压应变片压力传感器动信号放大电路差9.3主要程序清单#include config.huint8 c
8、onst wm8 = 0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;uint8 const dm10 = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uint8 const M_8pai8 = 0 x01,0 x03,0 x02,0 x06,0 x04,0 x0C,0 x08,0 x09;uint8 data_buf8;uint32 xs_cs=0; /需要显示的数值 uint32 ADC_Data=0; uint8 count; /正在发送第几位段码uint32 ti
9、me_ds = 0; /定时共用变量uint8 time_20ms_flag = 0; /定时20ms标志uint8 time_2ms_flag = 0; /2ms定时标志uint8 key_n=9; /保存第几号键被按下/*uint8 dw0 (uint8 n)/对IO0PIN 第n位进行读操作 uint8 i;if(IO0PIN&(10; dly-)for (i=0; i5000; i+);/*uint8 key_sm(void) /按键函数,在使用完key_n后 /要将key_n置为大于7的数 uint8 static key; uint8 static key_befor=0,key_
10、now=0,ax_flag=0; key_befor = key_now; key_now = dw0(3); if(key_befor=1) & (key_now=0) & (ax_flag=0) ax_flag=1; key=count; if(key_befor=1) & (key_now=1)& (ax_flag=1) & (key=count) ax_flag=0; return key; return 9;/*void ad_int(void)/AD初始化函数 PINSEL1 = 1 28;/ P0.30连接到AD0.3/* 进行ADC模块设置 */AD0CR = (1 3)|/
11、SEL=8,选择通道3(Fpclk / 1000000 - 1) 8)|/转换时钟为1MHz(0 16)|/ BURST=0,软件控制转换操作(0 17)|/ CLKS=0, 使用11clock转换(1 21)| / PDN=1,正常工作模式(0 22)| / TEST1:0=00,正常工作模式(1 24)|/ START=1,直接启动ADC转换(0 27);/ 直接启动ADC转换时,此位无效DelayNS(10);ADC_Data = AD0DR;/ 读取ADC结果,并清除DONE标志位/*void bin_bcd (uint32 xs_data) /二进制转BCD码函数 uint32 su
12、m; uint8 i; sum=xs_data; for(i=0;i=8) count=0; time_2ms_flag = 1; /2ms定时,置1 time_ds+; if(time_ds = 5001) /最长定时10s time_ds = 0; if(time_ds % 10 = 0) /20ms定时 time_20ms_flag = 1; T0IR = 0 x01; VICVectAddr = 0 x00;/*void vic_timer0_int(void)/定时器0中断初始化函数 VICIntSelect &= 14; VICVectCntl0 = 0 x20|4; VICVec
13、tAddr0 = (uint32)timer0_isr; VICIntEnable |= 14; IRQEnable();/*void mspi_int(void)/SPI初始化函数 PINSEL0 = (PINSEL0 & (0 xFF 8) | (0 x55 8) ; S0PCR = (03)| (14)| (15)| (06)| (07); S0PCCR = 10;int main(void) uint8 key_7_n = 0;uint16 adc_base = 0;uint16 adc_base_400 = 0;uint8 adc_count = 0;uint16 ad_data_5
14、0 = 0; /求50平均值后的AD值uint16 zl_g = 0; /重量,单位为guint32 adc_data_buf = 0;PINSEL0 &= (36); /将p0.3设为gpio IO0DIR &= (13); /p0.3设为输入功能PINSEL2 &= (13); /选择P1.16P1.25为GPIO功能IO1DIR |= 0 xFF18; /将P1.18P1.25设为输出功能IO1CLR |= 0 xFF18; /输出低电平 timer0int(); vic_timer0_int(); mspi_int();ad_int(); while(1) if(time_20ms_f
15、lag = 1) time_20ms_flag = 0; if(adc_count 50) AD0CR |= 1 24;/ 进行第一次转换while (ADDR & 0 x80000000) = 0);/ 等待转换结束AD0CR |= 1 6) & 0 x3ff;ADC_Data = ADC_Data * 2480;/ 参考电压经过3/4分压ADC_Data = ADC_Data / 1024;adc_data_buf += ADC_Data;adc_count+;elseadc_count = 0;ad_data_50=adc_data_buf/50;adc_data_buf = 0;if(
16、key_n = 0) key_n = 9; key_7_n+; if(key_7_n = 1) /按下第一次记下AD基数 adc_base = ad_data_50; if(key_7_n = 2) adc_base_400 = ad_data_50; /按下第二次,记下AD key_7_n = 0; break; xs_cs = ad_data_50 + key_7_n*10000;bin_bcd(xs_cs); while(1) if(time_20ms_flag = 1) time_20ms_flag = 0; if(adc_count 50) AD0CR |= 1 24;/ 进行第一次转换while (ADDR & 0 x80000000) = 0);/ 等待转换结束AD0CR |= 1 6) & 0 x3ff;ADC_Data = ADC_Data * 2480;/ 参考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024届浙江省温州市高三上学期第一次适应性考试物理试题
- 泵考试题及答案
- 中日文化交流史知到智慧树答案
- 2025年度建材环保性能第三方检测与认证合同范本
- 2025版售楼处项目全生命周期服务合同
- 2025年度政府机关节能型电脑采购服务协议
- 2025版生猪养殖食品安全检测与监管合同
- 2025年图书店铺股权转让及版权合作框架协议范本
- 2025年度标准教育项目委托代理合同
- 2025年商铺租赁合同范本涵盖租赁期限及租金调整机制
- T-CITSA 57-2025 高速公路基础设施主数据标准
- 住院病人防止走失课件
- 2025年临床助理医师考试试题及答案
- GB/T 45767-2025氮化硅陶瓷基片
- 2025年云南省初中学业水平考试物理及答案
- 《化工安全技术》教学设计(教学教案)
- 主持人妆 男主持人上镜妆
- 安全伴我行-大学生安全教育智慧树知到答案章节测试2023年哈尔滨工程大学
- GB/T 2423.18-2021环境试验第2部分:试验方法试验Kb:盐雾,交变(氯化钠溶液)
- 安全文明施工措施费清单五篇
- 医院总务设备科管理制度
评论
0/150
提交评论