完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #include #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long int weight; uint temp; ***it lcdrs=P3^5; ***it lcdwr=P3^6; ***it lcden=P3^4; ***it hx711_dout=P2^0; ***it hx711_sck=P2^1; ***it dula=P2^6; ***it wela=P2^7; /**********延时程序*************/ void delayms(uint k) { uint i,j; for(i=k;i>0;i--) for(j=110;j>0;j--); } /**********LCD1602显示程序*************/ void write_com(uchar com) //写命令 { lcdrs=0;P0=com;delayms(5); lcden=1;delayms(5);lcden=0; } void write_date(uchar date) //写数据 { lcdrs=1;P0=date;delayms(5); lcden=1;delayms(5);lcden=0; } void init_1602() { dula=0; wela=0; lcden=0; lcdwr=0; write_com(0x38);//设置16x2 显示5x7点阵,8位数据接口 write_com(0x0c);//设置开显示,不显示光标 write_com(0x06);//写一个字符后地址指针加1 write_com(0x01);//显示清0,数据指针清0 } void displaywpm(void) { uchar code table[]="W:kg"; write_com(0x80); write_date(table[0]); write_date(table[1]); write_com(0x80+0x07); write_date(table[2]); write_date(table[3]); } void weight_shuzhi(uint aaa) { uchar idata weighttable[4]={0,0,0,0}; weighttable[3]=aaa%10; weighttable[2]=aaa/10%10; weighttable[1]=aaa/100%10; weighttable[0]=aaa/1000; write_com(0x80+0x02); //设置显示位置 write_date(0x30+weighttable[0]); write_com(0x80+0x03); //设置显示位置 write_date('.'); write_com(0x80+0x04); //设置显示位置 write_date(0x30+weighttable[1]); write_com(0x80+0x05); //设置显示位置 write_date(0x30+weighttable[2]); write_com(0x80+0x06); //设置显示位置 write_date(0x30+weighttable[3]); write_com(0x0c); //不显示光标 } /*************hx711程序***************/ void Delay__hx711_us(void) { _nop_(); _nop_(); } ulong ReadCount(void) //增益128 { ulong count; uchar i; hx711_dout=1; Delay__hx711_us(); hx711_sck=0; count=0; while(hx711_dout); for(i=0;i<24;i++) { hx711_sck=1; count=count<<1; hx711_sck=0; if(hx711_dout) count++; } hx711_sck=1; Delay__hx711_us(); hx711_sck=0; return(count); } /*************皮重,获得重量的程序*************/ void get_pizhong() //获取皮重,秤盘重量 { uint j; ulong hx711_dat; for(j=0;j<5;j++) delayms(1); hx711_dat=ReadCount(); //HX711AD转换数据处理 temp=(uint)(hx711_dat/100); }//缩放long数据为int型,方便处理 void get_weight() //获取被测物体重量 { ulong hx711_data,a; uint get,aa; hx711_data=ReadCount(); //HX711AD转换数据处理 get=(uint)(hx711_data/100); if(get<(temp+4)) //判断是否有正向重量 { while(1) { weight=0; weight_shuzhi(weight); //显示重量 hx711_data=ReadCount(); //HX711AD输出数据处理 get=(uint)(hx711_data/100); if(get>(temp+4)) break; }} a=ReadCount(); aa=(uint)(a/100)-temp; weight=(uint)((float)aa/2.15+0.05);}//重量转换函数 void main() { get_pizhong(); init_1602(); displaywpm(); while(1) { get_weight();//得到重量 weight_shuzhi(weight);}//显示重量 } |
|
相关推荐 |
|
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
203 浏览 0 评论
761 浏览 0 评论
806 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
743 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1195 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11806 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 19:44 , Processed in 0.636564 second(s), Total 37, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号