//****************************************************
//连续写字符
//**************************************************** void LCD1602_write_word(unsigned char *s) {
while(*s>0) { LCD1602_write_data(*s); s++; } }
void Init_LCD1602() {
LCD1602_EN = 0; LCD1602_RW = 0; LCD1602_write_com(0x38); LCD1602_write_com(0x0c); LCD1602_write_com(0x06); LCD1602_write_com(0x01); }
称重模块.H文件:
#ifndef __HX711_H__ #define __HX711_H__ #include
sbit HX711_DOUT=P2^0; sbit HX711_SCK=P2^1;
//函数或者变量声明
extern void Delay__hx711_us(void); extern unsigned long HX711_Read(void);
#endif
//设置为写状态 //显示模式设定 //开关显示、光标有无设置、光标闪烁设置//写一个字符后指针加一 //清屏指令
称重模块.C程序
#include \
//**************************************************** //延时函数
//**************************************************** void Delay__hx711_us(void) {
_nop_(); _nop_(); }
//**************************************************** //读取HX711
//**************************************************** unsigned long HX711_Read(void) //增益128 {
unsigned long count; unsigned char 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;
count=count^0x800000;//第25个脉冲下降沿来时,转换数据 Delay__hx711_us(); HX711_SCK=0; return(count); }