给大家分享个电子秤仿真+单片机源代码
ADC0804+LCD1602+矩阵键盘
电子秤仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /**********************************************************************************
- 注:质量计算函数:位于adc0804.c文件
- 价格计算函数:位于key.c文件
- 仿真:使用方法———键盘输入一个数,再输入+ - * /,最后输入等号,得到结果
- eg:4*=
- **********************************************************************************/
- #include <reg52.h>
- #include "function.h"
- #include "setting.h"
- #include "lcd.h"
- #include "key.h"
- #include "adc0804.h"
- uchar quantity_analog=0; //存放物体质量数据_ADC读取的模拟量
- float quantity_digital=0; //存放物体质量数据_ADC转换后的数字量
- float price=0; //存放价格参数
- void main(void)
- {
- // char *string = "Total:"; //字符
- lcd_init(); //初始化lcd
- init_interrupt(); //中断打开、选择函数
- write_com(0x80); //数据指针定位到第一行第一个字处
- write_com(0x80+8); //将光标移到 距离数字的位置
- delay_ms(100);
- // print_string_location(0,2,string); //显示Price 字符串
- print_string_location(0,2,"Total:"); //显示Price 字符串
- while(1)
- {
- key_scan(); //扫描按键函数
- quantity_digital=quantity_count(); //获取物体质量———————————————浮点型(float)
- price =price_count(); //获取键盘输入,计算后的价格——浮点型(float)
- print_weight(0,1); //显示质量
- if(price>0) //大于0时显示价格
- {
- print_price(0,2); //显示价格
- while(1) //计算结束,等待清零键按下
- {
- key_scan();
- if(key == ' ')
- {
- system_init(); //系统复位函数
- break;
- }
- }
- }
- if(key == ' ')
- system_init(); //系统复位函数
- }
- }
- /*******************************************************************************/
- /*
- //外部中断 P3^3 ,用于识别键盘输入
- void temer1() interrupt 3
- {
- EX1=0;
- Matrix_key_num=key_scan();
- EX1=1;
- }
- */
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
电子秤.zip
(118.88 KB, 下载次数: 145)
|