📄 main.c
字号:
/*******************************************************************************************************
File name: banlance demo // 文件名
Author: xcwy // 作者
Version: 2.0 // 版本
Date: 2008年5月 // 完成日期
MCU: AT89S52 // 单片机型号
11.0592M // 单片机使用的晶体频率
keilc v3.05c // 软件开发环境
Description: 本程序是深圳市天微电子有限公司电子秤延时程序,采用C语言编写
1.本程序使用TM7705(TM7715,TM7714)测试重量并通过LED,lcd显示出来
// 用于详细说明此程序文件完成的主要功能,与其他模块
// 或函数的接口,输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系
Others: 本程序为深圳市天微电子有限公司自主开发,任何个人或企业不得抄袭或者转载
// 其它内容的说明
Function List:
// 主要函数列表,每条记录应包括函数名及功能简要说明
History: // 修改历史记录列表,每条修改记录应包括修改日期、修改
// 作者及修改内容简述
1. Date: 2008年5月17日
Author: xcwy
Modification:
1)只称重,并显示物体的重量
*******************************************************************************************************/
#include<def.h>
#if board==finishboard
#include<eeprom.h> //读写EEPROM
#include<keyscan.h> //按键扫描
#include<intt.h> //T0中断处理
#endif
uchar bdata configbyte;
sbit adcbit0=configbyte^0;
sbit adcbit1=configbyte^1;
sbit disbit=configbyte^2;
sbit keybit=configbyte^3; //为0则用MCU扫描,否则用LED驱动芯片扫描
//------------------------------------------初始化-------------------------------------------------
void init()
{
//初始化端口
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
}
//-------------------------------------------配置程序----------------------------------------------
void configprom()
{
uchar configres=0; //低4为选择显示板,高4为选择ADC,默认选择TM7705+LED显示板
//显示板的配置
LED=1;
_nop_();
_nop_();
if(LED==1)
{
disbit=1; //外接LED显示板
keybit=1;
}
else
{
disbit=0; //外接LCD显示板
keybit=0;
}
//ADC的配置
#if tm7707
{
//已经选定了ADC为TM7707
adcbit1=1;
}
#else
{
adcbit1=0;
SET=1;
_nop_();
_nop_();
if(SET==1)
{
adcbit0=0; //选择TM7705
}
else
{
adcbit0=1; //选择TM7715
}
}
#endif
}
//------------------------------------------主程序-------------------------------------------------
void main()
{
// uint uartdatah,uartdatal;
init();
adcdata_int=0;
adcdata_mea=0;
weight=0;
price=0;
money=0;
// uartinit();
#ifdef ONKEYSCAN
store_cyc=0;
point_cyc=0;
#endif
configbyte=0; //配置寄存器初始化
configprom(); //调用配置程序
adcinit(); //调用ADC初始化
discheck(); //调用显示自检程序
LED=0;
#ifdef ONINTT_T0
//配置T0,定时20mS
IE=0x82; //开全局中断,开T0中断,禁止其他中断
TMOD=0x11; //选择T0的方式1
TCON=0x00;
TH0=0xb8;
TL0=0x00; //设置定时器的初值
TR0=1; //启动T0
#endif
while(1)
{
LED=0;
adcdata_mea=adccon(); //调用AD转换程序,得到称重物体的重量
// uartdatah=adcdata_mea/65536;
// uartdatal=adcdata_mea%65536;
// printf("%x%x%x%x\n",0x78,uartdatah,uartdatal,0x79);
datamanage(); //数据采集结束做数据处理
ser_display_a(); //调用显示程序
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -