電子秤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; // 小數(shù)點標志
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]="閩潘實業(yè)有限公司歡迎您 !!";
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; // 關(guān)鍵盤中斷
for(j=1;j
{while(key7289);
x=qingdan[j][2];
d_change(x); change(s2); // 顯示數(shù)據(jù)
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]; // 數(shù)字濾波
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; // 數(shù)據(jù)轉(zhuǎn)換
x=danjia[sh];
jine1=shizhong*x;
jine=jine1/1000;
d_change(shizhong); change(s2); // 顯示數(shù)據(jù)
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(0x98);
//while(1);
}
}
}
關(guān)鍵詞:
電子秤TM7710TM7709測試程
評論