基于单片机的电子秤毕业设计,南京理工大学紫金学院 - 图文(10)

2020-04-02 23:23

本科毕业设计说明书(论文)

KEY_NUM = KEY_Scan();

第 34 页 共 42 页

if( KEY_NUM != 0x55) //当返回的不是初值时候

{

if(KEY_NUM == 16) { }

if(KEY_NUM == 15) //数字B键清除键,二次测量

{ }

if(KEY_NUM == 12) //数字C输入单价错误时返回 {

Price_Count--; if( Price_Count < 0) { }

Price_Buffer[Price_Count] = 0; switch(Price_Count) {

case 0:

LCD1602_write_com(0x83); LCD1602_write_data(' '); break;

//清除上一个输入的数据

Price_Count = 0; goto loop; Get_Maopi();

//去皮

//数字A键,去皮功能

case 1:

LCD1602_write_com(0x84); LCD1602_write_data(' '); break;

case 2:

本科毕业设计说明书(论文)

}

if(KEY_NUM == 13) { }

if(KEY_NUM >= 0 && KEY_NUM <= 9) {

Price_Buffer[Price_Count] = KEY_NUM; switch(Price_Count) {

case 0:

LCD1602_write_com(0x83);

LCD1602_write_com(0x86); LCD1602_write_data(' '); break;

第 35 页 共 42 页

default : break;

}

//数字D键,计算总价

Money = Price_Buffer[0] * 100 + Price_Buffer[1] * 10 + Price_Buffer[2];

Money = Money * Weight_Shiwu / 1000; LCD1602_write_com(0xC7);

LCD1602_write_data(Money/1000 + 0x30);

LCD1602_write_data(Money00/100 + 0x30); LCD1602_write_data(Money0/10 + 0x30); LCD1602_write_data('.');

LCD1602_write_data(Money + 0x30); Flag_OK = 1;

//显示输入的价格值

LCD1602_write_data(Price_Buffer[0] + 0x30); break;

case 1:

LCD1602_write_com(0x84);

本科毕业设计说明书(论文)

break;

第 36 页 共 42 页

LCD1602_write_data(Price_Buffer[1] + 0x30);

case 2: LCD1602_write_com(0x86);

LCD1602_write_data(Price_Buffer[2] + 0x30);

break;

default : break;

}

Price_Count++; if( Price_Count >= 3) { Price_Count = 3; }

}

}

}

}

unsigned char KEY_Scan() //{ unsigned char temp = 0;

unsigned char com = 0x55 , com1 = 0 , com2 = 0; P3=0xf0; if(P3!=0xf0) { com1=P3; P3=0x0f;

com2=P3;

}

P3=0xf0;

while(P3!=0xf0);

矩阵键盘扫描 本科毕业设计说明书(论文)

temp=com1|com2;

第 37 页 共 42 页

if(temp==0xee)com=1; //数字1 if(temp==0xed)com=4; //数字4 if(temp==0xeb)com=7; //数字7 if(temp==0xe7)com=11; //备用键*号键 if(temp==0xd7)com=0; //数字0 if(temp==0xb7)com=14; //备用键*号键

if(temp==0xde)com=2; //数字2 if(temp==0xdd)com=5; //数字5 if(temp==0xdb)com=8; //数字8

if(temp==0xbe)com=3; //数字3 if(temp==0xbd)com=6; //数字6 if(temp==0xbb)com=9; //数字9 if(temp==0x7e)com=16; //数字A去皮 if(temp==0x7d)com=15; //数字B,二次测量

}

if(temp==0x7b)com=12; //数字C单价返回 if(temp==0x77)com=13; //数字D键,计算总价 return(com);

void Get_Weight() //称重 {

Weight_Shiwu = HX711_Read();

Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取净重 if(Weight_Shiwu > 0) {

Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/GapValue);

//计算实物的实际重量

if(Weight_Shiwu > 5000)

//超重报警

本科毕业设计说明书(论文)

第 38 页 共 42 页

{ Buzzer = 0;

} else { Buzzer = 1; }

} else { Weight_Shiwu = 0; Buzzer = 0;

// }

}

void Get_Maopi() //{ Weight_Maopi = HX711_Read();

}

void Delay_ms(unsigned int n) //MS{ unsigned int i,j; for(i=0;i

for(j=0;j<123;j++); }

#include \

void Delay__hx711_us(void) //{ _nop_();

_nop_();

} //负重报警

获取毛皮重量 延时函数(12M) 延时函数 读取HX711


基于单片机的电子秤毕业设计,南京理工大学紫金学院 - 图文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:普通高等教育十五国家级规划教材

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: