单片机源程序如下:
#include #include #include #include "main.h" #include "LCD1602.h" #include "HX711.h" #include "eeprom52.h" #define uchar unsigned char #define uint unsigned int unsigned long HX711_Buffer = 0; unsigned long Weight_Maopi = 0; unsigned long Weight_Maopi_0 = 0; long Weight_Shiwu = 0; unsigned int qupi=0; //键盘处理变量 unsigned char keycode; unsigned char key_press_num=0; uint GapValue,GapValue1; //定义标识 volatile bit FlagTest = 0; //定时测试标志,每0.5秒置位,测完清0 volatile bit FlagKeyPress = 0; //有键按下标志,处理完毕清0 //校准参数 //因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。 //当发现测试出来的重量偏大时,增加该数值。 //如果测试出来的重量偏小时,减小改数值。 //该值可以为小数 //#define GapValue 349 sbit LED=P1^1; sbit ROW1=P3^0; sbit ROW2=P3^1; sbit ROW3=P3^2; sbit ROW4=P3^3; volatile bit ClearWeighFlag = 0; //传感器调零标志位,清除0漂 /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); GapValue1=GapValue&0x00ff; byte_write(0x2000, GapValue1); GapValue1=(GapValue&0xff00)>>8; byte_write(0x2001, GapValue1); byte_write(0x2060, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { GapValue = byte_read(0x2001); GapValue = (GapValue<<8)|byte_read(0x2000); a_a = byte_read(0x2060); } /**************开机自检eeprom初始化*****************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { GapValue = 3500; a_a = 1; write_eeprom(); //保存数据 } } //显示重量,单位kg,两位整数,三位小数 void Display_Weight() { LCD1602_write_com(0x80+0x40+8); if(Weight_Shiwu/10000==0) LCD1602_write_data(' '); else LCD1602_write_data(Weight_Shiwu/10000 + 0x30); LCD1602_write_data(Weight_Shiwu%10000/1000 + 0x30); LCD1602_write_data('.'); LCD1602_write_data(Weight_Shiwu%1000/100 + 0x30); LCD1602_write_data(Weight_Shiwu%100/10 + 0x30); LCD1602_write_data(Weight_Shiwu%10 + 0x30); } //定时器0初始化 void Timer0_Init() { ET0 = 1; //允许定时器0中断 TMOD = 1; //定时器工作方式选择 TL0 = 0xb0; TH0 = 0x3c; //定时器赋予初值 TR0 = 1; //启动定时器 } //定时器0中断 void Timer0_ISR (void) interrupt 1 using 0 { uchar Counter; TL0 = 0xb0; TH0 = 0x3c; //定时器赋予初值 //每0.5秒钟刷新重量 Counter ++; if (Counter >= 10) { FlagTest = 1; Counter = 0; } } //按键响应程序,参数是键值 //返回键值: // 7 8 9 10(清0) // 4 5 6 11(删除) // 1 2 3 12(未定义) // 14(未定义) 0 15(.) 13(确定价格) void KeyPress() { if(ROW1==0) //去皮键 { Delay_ms(5); if(ROW1==0) { // Get_Maopi(); if(qupi==0) qupi=Weight_Shiwu; else qupi=0; Buzzer=0; Delay_ms(50); Buzzer=1; while(ROW1==0); } } if(ROW2==0) //加 { Delay_ms(5); if(ROW2==0) { while(!ROW2) { key_press_num++; if(key_press_num>=100) { key_press_num=0; while(!ROW2) { if(GapValue<10000) GapValue+=10; Buzzer=0; Delay_ms(10); Buzzer=1; Delay_ms(10); Get_Weight(); } } Delay_ms(10); } if(key_press_num!=0) { key_press_num=0; if(GapValue<10000) GapValue++; Buzzer=0; Delay_ms(50); Buzzer=1; } write_eeprom(); } } if(ROW3==0) //减 { Delay_ms(5); if(ROW3==0)
上一篇:MPX4115压力自动检测系统设计
下一篇:单片机+FDC2214手势识别装置设计
推荐阅读
史海拾趣
作为一家有社会责任感的企业,义隆电子一直积极履行社会责任,致力于可持续发展。公司注重环境保护和资源节约,采用环保材料和节能技术生产产品。同时,公司还积极参与公益事业和社会活动,回馈社会。这种注重社会责任和可持续发展的企业文化使得义隆电子在行业内树立了良好的形象。
以上五个故事简要概述了义隆电子股份有限公司(Elan Microelectronics Corp.)在不同发展阶段的关键事件和成就。这些故事展示了义隆电子在技术创新、市场拓展、人才培养和社会责任等方面的努力和成就。
随着技术的不断积累,ATP公司开始加大产品创新的力度。他们推出了一系列具有竞争力的热管理产品,不仅满足了市场对于高效散热的需求,还凭借其优异的性能赢得了客户的青睐。同时,公司积极拓展市场,与多家电子设备制造商建立了长期合作关系,产品广泛应用于手机、电脑、服务器等领域。
Bourns公司的创立源自Marlan和Rosemary Bourns夫妇在自家车库中的创新努力。在1947年,这两位创始人成功研发出了创新的航天传感器,这一突破性的发明为飞行员提供了精确校正飞机垂直定位的方法。这一创新不仅解决了航空领域的关键问题,也为Bourns公司的诞生奠定了坚实的基础。
随着技术的不断进步和市场需求的不断变化,Fairchild Imaging开始拓展其产品线。除了继续推出具有竞争力的图像传感器外,公司还涉足了高端的科研级相机市场。这些科研级相机不仅具有出色的成像性能,还具备高度的可靠性和稳定性,满足了科研领域的特殊需求。此外,Fairchild Imaging还推出了一系列CCD及CMOS芯片,这些芯片在图像传输、处理和控制等方面表现出色,被广泛应用于各种电子设备和系统中。
随着公司规模的扩大和产品线的丰富,Ark-Les Connectors公司开始积极寻求市场拓展。公司制定了针对不同区域和行业的市场拓展策略,通过参加国际电子展会、建立销售网络、开展合作伙伴计划等方式,不断扩大品牌影响力。同时,公司还根据市场需求调整产品策略,推出定制化解决方案,满足不同客户的个性化需求。这些举措使得Ark-Les的市场占有率稳步提升,公司业绩也实现了稳步增长。
Ark-Les Connectors公司从一家小型电子连接器制造商起步,凭借其不断的技术创新,逐渐在行业中崭露头角。公司研发团队致力于开发高性能、高可靠性的连接器产品,满足日益增长的电子设备连接需求。通过对材料科学的深入研究,Ark-Les成功研发出新型耐高温、耐腐蚀的连接器材料,大大提高了产品的使用寿命和稳定性。这一创新不仅赢得了客户的广泛认可,也为公司带来了可观的市场份额。
1.音频pcm编码DA转换芯片cirrus logic的cs4344,cs4334 4334是老封装,据说已经停产,4344封装比较小,非常好用。还有菲利谱的。 8211等。 2.音频放大芯片4558,833,此二芯片都是双运放。为什么不用324等运放 个人觉得应该是对音频 ...… 查看全部问答∨ |
|
问题:一个正弦波50HZ,20毫秒,每个周期采样2000个点,连续采样10个周期,共2万个点,存在数组中,需要对其中数组绝对值小于20点,进行位置判断,并记录出来,统计发送。针对这个有什么好的快速算法? 常规思路:从数组把数据读出来,记录点数据 ...… 查看全部问答∨ |
|
altium designer 6原理图与PCB设计 [ 本帖最后由 babyblue8 于 2010-7-6 15:51 编辑 ]… 查看全部问答∨ |
|
如果知道了immr这个寄存器的地址,可以直接用这个地址访问寄存器吗? 或者是不是需要把这个地址重新映射一下才可以。 刚开始弄这个,问题初级了一点。… 查看全部问答∨ |
目录第1章 可编程逻辑器件与eda技术 1.1 可编程逻辑器件及其特征 1.1.1 简单pld 1.1.2 cpld 1.1.3 fpca 1.1.4 门阵列 1.1.5 标准单元法 1.2 ppga的应用及设计要求 1.2.1 fpga的应用 1.2.2 fpga设计要求 1.3 eda技术简介及软件 ...… 查看全部问答∨ |
从同学那借了块狗板过来,写了点基础的东西。 第一个文件是从TI网站下一个安装包,并根据提供的文档制作成可用于启动的TF卡, 其中遇到的一些问题,在我的系统上都已经解决了。 第二个文件是用于测试linux下串口的文件。希望对大家有用。… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 有奖直播:TI 的故事—— IC 创世纪
- 开启Altera SoC体验之旅,玩转Altera Cyclone V系列SoC
- 有奖直播:ADI在中国能源互联网应用中的技术及产品 1月8日上午10:00-11:30 准时开启!
- 造个车,一起驶向诗和远方!学习 TI 汽车参考设计,参加技能小测试赢好礼!
- STM32 线上技术日开播【40块新品开发板等你抽】|解读多款新品技术及应用
- 有奖直播预报名|TI 新一代Sitara™ AM62处理器革新人机交互——加速边缘AI的开发
- 泰克移动多媒体总线系列专题来袭~《HDMI2.0规范测试方案》下载有礼!
- 干货下载|ADI 系统方案精选 第6辑
- 栅极驱动挑花眼?看英飞凌来支招