单片机电子秤设计报告共28页 下载本文

内容发布更新时间 : 2025/2/6 23:59:49星期一 下面是文章的全部内容请认真阅读。

else if (i>=100)

display_GB2312_string(5,52,str1); else if (i>=10)

display_GB2312_string(5,60,str1); else

display_GB2312_string(5,68,str1); //显示小数点

display_GB2312_string(5,76,\ //显示小数部分 int2str(j,str1); if (j<10)

display_GB2312_string(5,84,\ display_GB2312_string(5,92,str1); else

display_GB2312_string(5,84,str1); //显示重量,单位kg,两位整数,三位小数 void Display_Weight() unsigned int i,j;

display_GB2312_string(3,60,\ //weight单位是g

i = weight/1000; //得到整数部分 j = weight - i*1000;//得到小数部分

第 16 页

int2str(i,str1); if (i>=10)

display_GB2312_string(3,60,str1); else

display_GB2312_string(3,68,str1); display_GB2312_string(3,76,\ int2str(j,str1); if (j<10)

display_GB2312_string(3,84,\

display_GB2312_string(3,100,str1);

else if (j<100)

display_GB2312_string(3,84,\

display_GB2312_string(3,92,str1);

else

display_GB2312_string(3,84,str1); //显示总价,单位为元,四位整数,两位小数 void Display_Money() unsigned int i,j;

display_GB2312_string(7,44,\ if (money>999999) //超出显示量程

display_GB2312_string(7,44,\ return;

第 17 页

i = money/100; //得到整数部分 j = money - i*100;//得到小数部分 int2str(i,str1); //显示整数部分 if (i>=1000)

display_GB2312_string(7,44,str1); else if (i>=100)

display_GB2312_string(7,52,str1); else if (i>=10)

display_GB2312_string(7,60,str1); else

display_GB2312_string(7,68,str1); //显示小数点

display_GB2312_string(7,76,\ //显示小数部分 int2str(j,str1); if (j<10)

display_GB2312_string(7,84,\ display_GB2312_string(7,92,str1); else

display_GB2312_string(7,84,str1); //数据初始化

第 18 页

void Data_Init() price = 0; DotPos = 0; beep = 1; alert = 1; //管脚配置

void Port_Init() //定时器0初始化 void Timer0_Init()

ET0 = 1; //允许定时器0中断 TMOD = 1; //定时器工作方式选择 TL0 = 0x06;

TH0 = 0xf8; //定时器赋予初值 TR0 = 1; //启动定时器

//定时器0中断

void Timer0_ISR (void) interrupt 1 using 0

TL0 = 0x06;

TH0 = 0xf8; //定时器赋予初值 //每0.5秒钟刷新重量

Counter ++;

if (Counter >= 200) FlagTest = 1;

第 19 页

Counter = 0;

//按键响应程序,参数是键值 //返回键值:

// 7 8 9 10(清0) // 4 5 6 11(删除) // 1 2 3 12(未定义) // 14(未定义) 0 15(.) 13(确定价格) void KeyPress(uchar keycode) switch (keycode) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:

//目前在设置整数位,要注意price是整型,存储单位为分 if (DotPos == 0)

//最多只能设置到千位

第 20 页