电子称C语言程序_第1页
电子称C语言程序_第2页
电子称C语言程序_第3页
电子称C语言程序_第4页
电子称C语言程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对main.c主程序的编制和其他程序进行说明。(1)头文件和宏定义#include#include#include#include lcd.h #include hx711.h #include keyboard.h /范围系数的定义#define RATIO 2114/1623/标志的定义卷位标志测试=0; /定时测试标志每隔0.5秒测量一次位置,并清除0卷位标志密钥=0; 有/键按下标志,处理完成清除0volatile bit FlagSetPrice=0; /定价状态标志,设定为1。/管脚定义sbit LedA=P22;sbit beep=P10;sbit alert=P11;/显示用变量int Counter;uchar idata str16=000000 ;int i,iTemp;/称量用变量无符号长idata全比例; /全比例AD值/1000无符号长龙高级; /AD采样值无符号长权重; /重量值,单位g无符号长idata价格; /单价、长整数值、单位为分钟无符号龙idata money; /总价格、长整数值、单位为分钟/键盘处理变量uchar密钥代码;超点销售点; /小数点标记和位置/函数宣言void int2str(int,char * );void Data_Init ();void Port_Init ();void Timer0_Init ();void Timer0_ISR ();void INT1_Init ();void密钥(uchar )void To_Zero ();void Display_Price ();void Display_Weight ();void Display_Money ();/整数转换字符串函数,转换范围0-65536void int2str(int x,char* str )举止PS=1;int tmp=10;PPS!=0)举止I;tmp*=10;以下tmp=x;stri=0;PS (K1)举止str-i=0 (tmp );tmp/=10;以下str0=tmp 0;以下/取回零点,每次测量前调用void To_Zero ()举止full scale=读计数()/1000;价格=0;以下/显示单价。 单位是元、4位整数、2位小数void Display_Price () unsigned int i,j;display _ GB 2312 _ string (5,44, );I=价格/100; 得到/整数部分j=价格- I * 100; /得到小数部分int2str(i,str1)显示/整数部分if (i=1000 ) display _ GB 2312 _ string (5,44,str1);以下else if (i=100 ) display _ GB 2312 _ string (5,52,str1);以下else if (i=10 ) display _ GB 2312 _ string (5,60,str1);以下else display _ GB 2312 _ string (5,68,str1);以下/显示小数点display _ GB 2312 _ string (5,76,. );/显示小数部分PS2PS (PS、PS1)PK PS display _ GB 2312 _ string (5,84,0 );display _ GB 2312 _ string (5,92,str1)以下else display _ GB 2312 _ string (5,84,str1);以下以下/重量、单位公斤、两位整数、三位小数void Display_Weight () unsigned int i,j;display _ GB 2312 _ string (3,60, );/weight单位是gI=权重/1000; /得到整数部分j=weight - i*1000; /得到小数部分int2str(i,str1)if (i=10 ) display _ GB 2312 _ string (3,60,str1);以下else display _ GB 2312 _ string (3,68,str1);以下display _ GB 2312 _ string (3,76,. );PS2PS (j,str1)PS (K 10 ) display _ GB 2312 _ string (3,84, 00 );display _ GB 2312 _ string (3,100,str1)以下else if (j100 ) display _ GB 2312 _ string (3,84,0 );display _ GB 2312 _ string (3,92,str1)以下else display _ GB 2312 _ string (3,84,str1);以下以下/显示总价格。 单位是元、4位整数、2位小数void Display_Money () unsigned int i,j;display _ GB 2312 _ string (7,44, );超过if (money999999) /显示范围display _ GB 2312 _ string (7,44,- );返回;以下i=money/100; /得到整数部分j=money - i*100; /得到小数部分int2str(i,str1)显示/整数部分if (i=1000 ) display _ GB 2312 _ string (7,44,str1);以下else if (i=100 )显示_ GB 2312 _字符串(7,52,str1);以下else if (i=10 ) display _ GB 2312 _ string (7,60,str1);以下else display _ GB 2312 _ string (7,68,str1);以下/显示小数点display _ GB 2312 _ string (7,76,. );/显示小数部分PS2PS (PS、PS1)PK PS display _ GB 2312 _ string (7,84,0 );display _ GB 2312 _ string (7,92,str1)以下else display _ GB 2312 _ string (7,84,str1);以下以下/数据初始化void Data_Init () price=0;DotPos=0;beep=1;警报=1;以下/引脚配置void Port_Init ()举止以下/计时器0初始化void Timer0_Init ()ET0=1; /允许定时器0中断TMOD=1; /定时器动作方式选择TL0=0x06;TH0=0xf8; /定时器给出初始值TR0=1; /启动计时器以下/定时器0中断voidatimer0_ ISR (void )中断1使用0TL0=0x06;TH0=0xf8; /定时器给出初始值每隔/0.5秒更新一次重量Counter;PS (计数器=200 )标志测试=1;计数器=0;以下以下/键响应程序,参数是键值/返回值:/七八九十(清零)/45六十一(删除)/1 2 3 12 (未定义)/14 (未定义)0 15(.) 13 (价格决定)void密钥(uchar密钥代码)交换机(keycode )举止case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:/现在正在设定整数位。 请注意,price是整数,存储单位是足够的PS (PS=0)只能设定到最大千位if (价格100000 ) price=price*10 keycode*100;以下以下/现在正在设定小数点else if (DotPos=1) /小数点后第一位 price=price keycode*10;DotPos;以下else if (DotPos=2) price=price keycode;以下Display_Price ();break;case 10: /清除键To_Zero ();Display_Price ();FlagSetPrice=0;DotPos=0;break;按case 11:/删除键,一次删除最右边的数字PS (PS=2)价格=价格/10;价格=价格* 10;DotPos-;以下else if (DotPos=1)价格=价格/100;价格=价格* 100;DotPos-;以下else if (DotPos=0)价格=价格/1000;价格=价格* 100;以下Display_Price ();break;case 13: /确认键FlagSetPrice=1;break;case 15: /小数点以下PS (PS=0) DotPos=1; /小数点以下第一位以下break;以下以下我是主程序,我是主程序,我是主程序voidmain(voidmain ) Rom_CS=1;initial_lcd ();EA=0;Data_Init ();Port_Init ();Timer0_Init ();/初始化完成,中断EA=1;/背光LedA=1;clear_screen (); /clear all dotsdisplay _ GB 2312 _ string (1,1,电子秤初始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论