电子秤AD TM7710/TM7709测试程序
#include
//ad 控制线
#define ad_244 XBYTE[0xbfff];
sbit ad_stb=P3^3;
sbit ad_start=P1^1;
//lcd 控制线
sbit lcd_di=P1^7;
sbit lcd_rw=P1^2;
sbit lcd_e=P1^0;
//7289 控制线
sbit cs7289=P1^3;
sbit clk7289=P1^4;
sbit dio7289=P1^5;
//sbit key7289=P1^6; //7289 查询方式
sbit key7289=P3^2; //7289 中断方式
sbit baoj=P3^5;
//7289 子程序
void ini_7289(void);
void send7289(short);
short receive(void);
void keyin(void);
//lcd 子程序
void ini_lcd(void);
void lcdd_send(short);
void lcdi_send(short);
void chk_busy(void);
//ad 子程序
void ad(void);
void baojing(void);
void d_change(long);
// 初始化,编号,日期
void ini();
void error1(void);
void nop1()
{}
void change(s)
int dealy; // 全局变量
short sh=0; // 商品号
short dot=0; // 小数点标志
bit list=0;
short qb=0;
char xdata shuju[7]="";
short xdata bcd[5];
char xdata s1[16]=" 单价 : 元 ";
char xdata s2[16]=" 重量 : Kg";
char xdata s3[16]=" 金额 : 元 ";
char xdata s4[16]=" 累计 : 元 ";
char code message0[]=" 大学 ";
char code message1[]=" 输入收银员代号 :";
char code message2[]=" 输入日期 :";
char code message3[16]=" -- 大学 -- ";
char code message5[16]="闽潘实业有限公司欢迎您 !!";
char xdata bianhao[16]=" 收银员: ";
char xdata riqi[16]=" - - ";
long int xdata zongjia=0,jine=0,jine1=0;
int xdata shizhong=0,pizhong=0,zhongliang=0;
long int xdata qingdan[20][4];
char code shangpin[11][4]={{" 单价 "},{" 苹果 "},{" 梨 "},{" 花生 "},{" 大米 "},
{" 桃子 "},{" 塑料 "},{" 瓜子 "},{" 桔子 "},{" 香蕉 "},{" 玉米 "}};
long int xdata danjia[11]=
{0,2000,3635,5502,6660,3320,5502,660,3210,6600,5600};
char xdata jiage[6]={0x0,0x0,0x0,0xfe,0x0,0x0}; // 0.00
short xdata xiuzheng[]={0,2,5,6,7,8,9,12,13};
char s[16];
{s[6]=shuju[0];
s[7]=shuju[1];
s[8]=shuju[2];
s[9]=shuju[3];
s[10]=shuju[4];
s[11]=shuju[5];
s[12]=shuju[6];
}
//****************************************************************
void main()
{short i,j;
long int x,z;
int y;
int xdata duilie[3]={0};
P1=0xff;
ini_lcd(); // 初始化 LCD
lcdi_send(0x8a);
while(message0[i]) lcdd_send(message0[i++]);
ini_7289(); // 初始化 7289
pizhong=ad1();
lcdi_send(0x1); // 总清 屏
ini(); // 初始页面 , 收银员编号,日期
lcdi_send(0x1); // 总清 屏
EA=1;EX0=1; // 中断
//EX1=1;
//ad_start=1;
while(1)
{if(list){lcdi_send(0x80); // 显示单位名称
for(i=0;i<16;i++) lcdd_send(message3[i]);
x=qingdan[0][0]; // 商品名 单价
for(i=0;i<4;i++) s1[i]=shangpin[x][i];
x=qingdan[0][1];
d_change(x); change(s1);
lcdi_send(0x90);
for(i=0;i<16;i++) lcdd_send(s1[i]);
x=qingdan[0][2]; // 显示重量
d_change(x); change(s2);
s2[10]=s2[9];s2[9]=.;
if(s2[8]==32) s2[8]=0x30;
lcdi_send(0x88);
for(i=0;i<16;i++) lcdd_send(s2[i]);
x=qingdan[0][3];
d_change(x); change(s3);
lcdi_send(0x98);
for(i=0;i<16;i++) lcdd_send(s3[i]); // 以上为第一页
EA=0;EX0=0; // 关键盘中断
for(j=1;j {while(key7289); x=qingdan[j][2]; d_change(x); change(s2); // 显示数据 s2[10]=s2[9]; s2[9]=.; if(s2[8]==32) s2[8]=0x30; lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(s2[i]); x=qingdan[j][1]; d_change(x); change(s1); x=qingdan[j][0]; for(i=0;i<4;i++) s1[i]=shangpin[x][i]; lcdi_send(0x80); for(i=0;i<16;i++) lcdd_send(s1[i]); x=qingdan[j][3]; d_change(x); change(s3); lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(s3[i]); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(0x20); lcdi_send(0x98); while(key7289==0); } while(key7289); d_change(zongjia); change(s4); lcdi_send(0x80); for(i=0;i<16;i++) lcdd_send(s4[i]); lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(bianhao[i]); lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(message5[i]); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(riqi[i]); list=0; while(key7289==0); while(key7289==1); while(key7289==0); EA=1;EX0=1; } else{ y=0; /* duilie[2]=duilie[1]; // 数字滤波 duilie[1]=duilie[0]; y=ad1(); duilie[0]=y>>1; x=duilie[0]; x=x<1; x=x+duilie[1]+duilie[2]; */ zhongliang=ad1(); shizhong=zhongliang-pizhong; // 数据转换 x=danjia[sh]; jine1=shizhong*x; jine=jine1/1000; d_change(shizhong); change(s2); // 显示数据 s2[10]=s2[9]; s2[9]=.; if(s2[8]==32) s2[8]=0x30; lcdi_send(0x90); for(i=0;i<16;i++) lcdd_send(s2[i]); d_change(danjia[sh]); change(s1); for(i=0;i<4;i++) s1[i]=shangpin[sh][i]; lcdi_send(0x80); for(i=0;i<16;i++) lcdd_send(s1[i]); d_change(jine); change(s3); lcdi_send(0x88); for(i=0;i<16;i++) lcdd_send(s3[i]); d_change(zongjia); change(s4); lcdi_send(0x98); for(i=0;i<16;i++) lcdd_send(s4[i]); lcdi_send(0x
电子秤TM7710TM7709测试程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)