一、称重系统设计简述

当小车通过自己搭建称重系统时,可以在小车通过的瞬间测出小车的重力。并且可以算出其价格,也可以通过按键调节单价,通过LCD1602可以显示数据。

二、代码

main.c
```#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"
#include "lcd1602.h"
#include "time.h"
#include "smg.h"
#include "adc.h"
#include "key.h"
#include "uart.h"
#include "oled.h"
#include "24cxx.h"
#define u8 unsigned char
#define u16 unsigned int
char key_val;
float adc_para;
char test[6];
#define BUF_SIZE   8 // Sample buffer sizechar adc_value[]="0000g 05yuan";
char adc_value1[]="0000g num:  ";
volatile unsigned int adc[4];volatile Uint16 SampleTable[BUF_SIZE];
//下面4项内容需要根据实际型号和量程修正//最小量程 根据具体型号对应手册获取,单位是g,这里以RP-18.3-ST型号为例,最小量程是20g
#define PRESS_MIN   20
//最大量程 根据具体型号对应手册获取,单位是g,这里以RP-18.3-ST型号为例,最大量程是6kg
#define PRESS_MAX   6000
#define VOLTAGE_MIN 100
#define VOLTAGE_MAX 3300
long PRESS_A[4];
int VOLTAGE_A[4];
u8 val_flag=0;
int parameter=2400;
/*******************************************************************************
* 函 数 名         : main
* 函数功能         : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/long map(long x, long in_min, long in_max, long out_min, long out_max) {return (x - in_min) * (out_max - out_min) *1.18/ (in_max - in_min) + out_min;
}void adc_test(u16 value_AD,u8 index){VOLTAGE_A[index] = map(value_AD, 0, 4095, 0, 3300);if(VOLTAGE_A[index] < VOLTAGE_MIN){PRESS_A[index] = 0;}else if(VOLTAGE_A[index] > VOLTAGE_MAX){PRESS_A[index]  = PRESS_MAX;}else{PRESS_A[index]  = map(VOLTAGE_A[index], VOLTAGE_MIN, VOLTAGE_MAX, PRESS_MIN, PRESS_MAX);}
//      printf("AD值 = %d,电压 = %d mv,压力 = %ld g\r\n",value_AD,VOLTAGE_AO,PRESS_AO);
//}
u8 fenyong=5;
u8 num=0;
int now_total,last_total;
void main(){u8 k=0;u8 p=0;Uint16 array_index;int i=0;InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();
//  UARTa_Init(115200);LED_Init();KEY_Init();TIM0_Init(150,1000);//1msSMG_Init();ADC_Init();LCD1602_Init();oled_init();// Clear SampleTablefor (i=0; i<BUF_SIZE; i++){SampleTable[i] = 0;}AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;               //软件启动转换功能OLED_ShowString(10,20,"sdsd",12);
//          LCD1602_DispString(1," Hello PRECHIN! ");
//          LCD1602_DispStringEx(2,1,"www.prechin.cn");AT24CXX_Init();while(AT24CXX_Check())  //检测AT24C02是否正常{LED4_ON;}while(1){if(adc_flag==1){adc_flag=0;LED1_TOGGLE;LCD1602_DispString(1,adc_value);LCD1602_DispString(2,adc_value1);}num=(now_total/1000+1)*fenyong;adc_value[0]=now_total/1000+'0';adc_value[1]=now_total%1000/100+'0';adc_value[2]=now_total%1000%100/10+'0';adc_value[3]=now_total%1000%100%10+'0';adc_value[6]=fenyong/10+'0';adc_value[7]=fenyong%10+'0';adc_value1[10]=num/10+'0';adc_value1[11]=num%10+'0';if(last_total>now_total){now_total=last_total;}else{last_total=PRESS_A[0]+PRESS_A[1]+PRESS_A[3]-parameter;}if(last_total<0)last_total=0;
//      OLED_ShowString(1,2,adc_value,12);
//      OLED_Clear();adc[0]  = map(SampleTable[0], 0, 4095, 0, 3300);adc[1]  = map(SampleTable[1], 0, 4095, 0, 3300);adc[2]  = map(SampleTable[2], 0, 4095, 0, 3300);adc[3]  = map(SampleTable[3], 0, 4095, 0, 3300);adc_test(adc[0],0);adc_test(adc[1],1);adc_test(adc[2],2);adc_test(adc[3],3);while (AdcRegs.ADCST.bit.INT_SEQ1== 0);AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1;if(array_index>=BUF_SIZE)array_index = 0;SampleTable[array_index++]= ( (AdcRegs.ADCRESULT0)>>4);SampleTable[array_index++]= ( (AdcRegs.ADCRESULT1)>>4);SampleTable[array_index++]= ( (AdcRegs.ADCRESULT2)>>4);SampleTable[array_index++]= ( (AdcRegs.ADCRESULT3)>>4);if(smg_flag==1){smg_flag=0;SMG_DisplayInt(now_total);}key_val=KEY_Scan(0);switch(key_val){case 1:AT24CXX_WriteOneByte(p+0,now_total/1000);DELAY_US(5000);AT24CXX_WriteOneByte(p+1,now_total%1000/100);DELAY_US(5000);AT24CXX_WriteOneByte(p+2,now_total%1000%100/10);DELAY_US(5000);AT24CXX_WriteOneByte(p+3,now_total%1000%100%10);p+=4;if(p>=40)p=0;now_total=0;LED3_TOGGLE;break;case 2:parameter=parameter+100;break;case 3:parameter=parameter-100;break;case 4:adc_value1[0]=AT24CXX_ReadOneByte(k+0)+'0';DELAY_US(5000);adc_value1[1]=AT24CXX_ReadOneByte(k+1)+'0';DELAY_US(5000);adc_value1[2]=AT24CXX_ReadOneByte(k+2)+'0';DELAY_US(5000);adc_value1[3]=AT24CXX_ReadOneByte(k+3)+'0';k+=4;if(k>=40)k=0;break;case 5:fenyong++; break;case 6:fenyong--; break;}}
}

【dsp】基于dsp28335的称重系统设计相关推荐

  1. c语言 称重系统设计,动态称重系统设计.doc

    动态称重系统设计 摘 要 目前我国经济正处于一个高速发展的阶段,人们的生活质量日益提高,财产也慢慢积累,渐渐富裕起来,买车的人也越来越多(家用车,客车,货车),但是随之而来的是一系列严峻而又急需要解决 ...

  2. c语言 称重系统设计,745【毕设课设】基于单片机智能电子秤称重系统设计(原理图 pcb 论文 程序)...

    [资源下载]下载地址如下: https://docs.qq.com/doc/DTlRSd01BZXNpRUxl 1.研究的主要内容 设计一基于单片机的压力计,要求该电子称除了可以用LCD显示压力的大小 ...

  3. 铨顺宏RFID:车辆运输管理途中怎么监控?RFID智能称重系统有用吗

    一.项目概述 在国内一些大型公共企业事业单位,如电厂.煤场.垃圾场等,每天都会有大量的物资运输车辆进出,在业务处理过程中需要停车.登记.称重等程序.目前,这些单位主要依靠操作人员将数据手动输入计算机. ...

  4. ad7714 c语言程序,基于AD7714的高精度数字化称重传感器设计.pdf

    第 3 1卷第 5期 2 0 0 9年 1 O月 电气电子教学学报 J OURNAL OF E EE Vo1 31 No 5 Oc t 2 0 0 9 基于 AD 7 7 1 4的高精度数字化称重传感 ...

  5. c语言程序仪表称重编程,基于WinCE的双台面动态汽车称重装置仪表设计

    摘要: 动态汽车衡技术在我国已有多年的发展,已广泛应用在高速公路计重收费与超限检测系统中,其核心技术为系统中的核心装置电子称重仪表的软硬件开发与设计.在传统的称重仪表开发模式中,一直采用单片机作为主控 ...

  6. 基于STM32设计智能称重系统(华为云IOT)

    伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术.而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重 ...

  7. 基于STM32设计物联网在线智能称重系统(OneNet)_2022

    1. 前言 本设计的模型来源于物流.矿山.高速公路等场合,车辆称重地螃的智能化升级要求.需要结合这些场合,设计基于物联网的智能在线称重方案,开发智能称重控制器,合理选择部署多个重量传感器和必要的算法. ...

  8. SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性

    SVPWM仿真和基于DSP28335的PIL(处理器在环) 仿真模型(将matlab仿真算法生成代码在DSP中在线运行返回数据给Matlab)验证算法可行性和实时性. 对于数字信号处理很有用. ID: ...

  9. 基于C#实现的零食售卖管理系统,支持称重,扫码,打印,彩虹兔零食售卖系统

    零售系统,支持扫码,初始版本类似于零食售卖系统,彩虹兔零食售卖系统. 1,称重,并根据单价计算该商品的价格: 2,支持商品折扣: 3,支持销售统计,按照收银员,日期的维度进行统计: 4,支持删除不用的 ...

  10. 基于华为云 IOT 设计智能称重系统 (STM32)【一】

    1.前言 伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术.而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息 ...

最新文章

  1. WebStorm、PHPStorm、IntelliJ IDEA配置scss自动编译
  2. 解析Markdown文件生成React组件文档
  3. 图解机器学习 github_使用Github和Cloudflare建立网站的图解指南
  4. MyEclipse 2017 CI 9 发布(附下载)
  5. android仿新浪引导界面
  6. python 随机选择字符串中的一个字符
  7. gif转换成jpg,这个方法很简单
  8. 《非洲归来 不必远方》读后感
  9. matlab栅格化处理,栅格化处理方法和栅格图像处理器的制造方法
  10. Cesium资料大集合
  11. 明明表没锁,却报SQL 错误: ORA-04021: 等待锁定对象 时发生超时
  12. Word2019版_去掉文档中的回车符
  13. 3dmax如何解决渲染画面模糊的问题
  14. form表单与模板引擎
  15. 计算机网络安全 第二章 物理安全
  16. OC语言——基本语法和思想
  17. 什么是期货反向跟单?
  18. s7android8国行,推荐刷入 国行三星S7/S7 Edge更新最新安卓8.0系统
  19. LYNC2010 标准版的安装
  20. 比尔·盖茨一生总结:从恶魔到天使

热门文章

  1. 图书管理系统c语言大二作业,c语言程序设计大作业--图书管理系统
  2. 微信小程序盲盒系统源码 带教程
  3. devc c语言调用图片,DevC++中使用EGE图形库
  4. 小米/VIVO/OPPO全系列救砖+解锁+工具+教程+激活账户技术
  5. 图书管理系统项目总结
  6. Navicat for mysql 破解版,安装与破解
  7. 【Docker 01】Docker简介与基于Docker构建第一个Spring Boot应用
  8. 海量视频资源【网盘直接取】
  9. 服务器运行按键精灵脚本,打开按键精灵自动运行脚本的方法_win7系统如何使用按键精灵的图文步骤...
  10. U盘安装linux找不到image,U盘安装出现vesamenu.c32 not a COM32R image解决方法