如果想知道更多的东西,建议看一本书:吴鉴鹰单片机实战精讲,网上能找到,代码我给你了。
/*******************************************************程序:吴鉴鹰基于单片机的电子秤的设计程序
** 这一讲的主要内容: 电子称是什么,讲的专业点就是:
利用物体的重力作用来确定物体质量的测量仪器,也可用来确定与物体质量相关的其他量的大小,迅槐粗
参数,或特性用我们自己话讲就是测重量的。
** 功能描述:
** 输 入:
** 内容:
** 输 出:
**
** 全局变量:
** 明茄调用模块:
**
** 作 者: 吴鉴鹰
** 日 期: 14.02.22
备注:有什么错误的地方,欢迎各大烧友指正
O(∩_∩)O~
*******************************************************/
#include <reg51.h>
#include <intrins.h>
#include<stdlib.h>
#include<math.h>
#define uchar unsigned char //宏的定义变量类型 uchar 代替 unsigned char
#define uint unsigned int //宏的定义变量类型 uint 代替 unsigned int
#define delay_time_max 50 //按键去抖动延时阀值
sbit RS = P2^0
sbit RW = P2^1
sbit SCLK = P2^2
sbit LCDRST = P2^3
sbit ST=P3^6 //启动信号
sbit EOC=P3^3 //转换结束信号,连到外部中断1口,转换结束后进入外部中断
sbit OE=P3^7 //输出使能
uchar KEY_VALUE
uchar key_data
uchar dis_buf //显示缓存
uchar temp
uchar key //键顺序码
uchar result
uint f
void delay(uchar x) //x*0.14MS
// 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71}
unsigned char ADC0809[],KONGBVAI[],DANJIA[]
void ADC0809_change()
/*************************************************************************************
** 函数名称: delayms
** 功能描述: 译码功能,将需要显示的数字转成相应的七段译码表
如要显示的字符为“0”,则为7e ---0111 1111,就中间的一个LED不亮
** 输 入: ms:需要延时的长度
**
**
** 输 出:
**
** 全局变量:
** 调用模块:
**
** 作 者: 吴鉴鹰
** 日 期: 14.02.22
**-----------------------------------------------------------------------------------
** 修改人:吴鉴鹰
** 日 期:
**----------------------------------------------------------------------------------
****************************************************************************************/
void 亩镇delayms(uint ms)
{
uchar i
while(ms--) for(i=0i<120i++)
}
/*********************************************************************************
** 函数名称: SendByte
** 功能描述: 串口给液晶发送数据
** 输 入: Dbyte
**
**
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者: 吴鉴鹰
** 日 期: 14.02.28
************************************************************************************/
void SendByte(uchar Dbyte)
{
uchar i
for(i=0i<8i++)
{
SCLK = 0
Dbyte=Dbyte<<1 //左移一位
RW = CY //移出的位给RW
SCLK = 1
SCLK = 0
}
}
/***********************************************************************************
** 函数名称: TransferCom
** 功能描述: 串口给液晶发送命令
** 输 入: data0
**
**
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者: 吴鉴鹰
** 日 期: 14.02.28
**********************************************************************************/
void TransferCom(uchar data0)
{
RS=1
SendByte(0xf8) //11111ABC,RW(0),RS(1),0
SendByte(0xf0&data0) //高四位
SendByte(0xf0&data0<<4) //低四位(先执行<<)
RS=0
}
/*******************************************************************************
** 函数名称: lcd_mesg
** 功能描述: 写数据,
** 输 入: data1
**
**
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者: 吴鉴鹰
** 日 期: 14.02.28
*****************************************************************************/
void TransferData(uchar data1)
{
RS=1
SendByte(0xfa) //11111ABC,RW(0),RS(1),0
SendByte(0xf0&data1) //高四位
SendByte(0xf0&data1<<4) //低四位(先执行<<)
RS=0
}
L-PSiii型号
压力传感器
输出的是0-5V的信号,可以通过
电态带压跟随器埋闭局
后输弯让入
ADC0809
,再进入单片机即可实现采集信号了。
1:校电子渣陪基秤 *** 作开机预热10分钟,再一次开机,在电子秤进行笔划自检的过程中,按“清零”键,显示将停止,再按“去皮”键,“起动”、“置零”键,就进入校电子秤程序,显示零位内码值,正常值在于11000以上,这时按“去皮”显示窗显示零,最右下角显示三角符号,说明进入1/3满量程调校程序,在如谨电子秤秤盘上放1/3满量程砝码,重量窗显示对应1/3满量程砝码的值,如果为砝码值,就说明已调校好,否则按“置零”键,此时重量窗将显示砝码值,再按一下“去皮”键,显示窗右下角的三符号将上跳一行,说明进入2/3满量程调校程序,在电子秤盘上放2/3满量程砝码,重量窗将显示对应砝码值,如果为砝码值,说明已校好,否则按“置零”键,此时重量窗将显示砝码值,再按一下“去皮”键,显示窗右下角的符号将上跳一行,说明进入江量程调校程序,在电子秤盘上放满量程砝码,重量窗显示对应砝码值,如果为砝码值,说明已校好,否则按“置零”键,此时重量窗将显示砝码值,重复上述乱改 *** 作直到对应1/3、2/3、3/3满量程的砝码分别显示正确。去皮如需去除器皿皮重,则先将器皿放于称盘上,待显示稳定后按“去皮”键,则天平显示“0.0g或0.00g”,然后将需称重物品放于器皿上,此时显示的数字为物品的净重,拿掉物品及器皿,天平显示的负值,仍按“去皮”键使天平显示回到“0.0g或0.00g”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)