資源簡介
本代碼是基于51單片機的電子稱設(shè)計系統(tǒng),使用應(yīng)變片搭成惠更斯電橋,然后使用hx711對電阻應(yīng)變變化進行放大,然后通過51單片機進行采集,然后實現(xiàn)標(biāo)準(zhǔn)電子稱各種功能,精準(zhǔn)度為0.1g

代碼片段和文件信息
#include?
#include???//
#define?uint?unsigned?int
#define?uchar?unsigned?char
sbit?rs=P2^6;????????????//1602的數(shù)據(jù)/指令選擇控制線
sbit?rw=P2^5;???????????//1602的讀寫控制線
sbit?en=P2^7;??????????//1602的使能控制線
sbit?trig=P3^1;??????//超聲波測距模塊Trig
sbit?echo=P3^2;?????//超聲波測距模塊Echo
bit?flag1;?????????//觸發(fā)信號標(biāo)志位//
uchar?count;???????????//中斷累加變量
long?int?distance;????//測量所得距離
unsigned?char?code?table[?]={“0123456789“};?//定義字符數(shù)組顯示數(shù)字
void?delay(uint?n)??????????????????????????
{
????uint?xy;?
????for(x=n;x>0;x--)
????for(y=110;y>0;y--);
}
void?delayt(uint?x)
{
????uchar?j;
????while(x--?>?0)
????{
??????????????for(j?=?0;j?125;j++)
????????{
??????????;
????????}
????}
}
void?lcd_wcom(uchar?com)???????????
{
????rs=0;????????????????//選擇指令寄存器
????rw=0;???????????????//選擇寫
????P0=com;????????????//把命令字送入P0
????delay(5);?????????//延時一小會兒,讓1602準(zhǔn)備接收數(shù)據(jù)
????en=1;????????????//使能線電平變化,命令送入1602的8位數(shù)據(jù)口這點非常重要
????en=0;
?}
void?lcd_wdat(uchar?dat)???????
{
????rs=1;?????????????//選擇數(shù)據(jù)寄存器
????rw=0;????????????//選擇寫
????P0=dat;?????????//把要顯示的數(shù)據(jù)送入P0
????delay(5);??????//延時一小會兒,讓1602準(zhǔn)備接收數(shù)據(jù)也就是檢測忙信號,這點非常重要。
????en=1;?????????//使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口
????en=0;
??}
void?lcd_init()?????????????
{
????lcd_wcom(0x38);???????//8位數(shù)據(jù),雙列,5*7字形??,用到功能設(shè)定指令????
????lcd_wcom(0x0c);??????//開啟顯示屏,關(guān)光標(biāo),光標(biāo)不閃爍,用到顯示開關(guān)控制指令
????lcd_wcom(0x06);?????//顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位,用到了寫入模式設(shè)置指令
????lcd_wcom(0x01);????//清屏,用到了清屏指令
}
?
void?lcd_xianshi()?????????????
{
????lcd_wcom(0x80+0x40);
????????lcd_wdat(‘D‘);
????????lcd_wdat(‘i‘);
????????lcd_wdat(‘s‘);
????????lcd_wdat(‘t‘);
????????lcd_wdat(‘a(chǎn)‘);
???????????lcd_wdat(‘n‘);
????????lcd_wdat(‘c‘);
????????lcd_wdat(‘e‘);
????????lcd_wdat(‘:‘);
????????lcd_wcom(0x80+0x4c);
????????lcd_wdat(‘.‘);
????????lcd_wcom(0x80+0x4e);//單位是厘米//
????????lcd_wdat(‘c‘);
????????lcd_wdat(‘m‘);
}
void?init_t0()
{
????????TMOD=0x01;????????
?????????TL0=0x66;
????????TH0=0xfc;??????????????//1ms
????ET0=1;????????????
????????EA=1;?????????????????????
}
void?trigger()
{
????trig=0;
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????_nop_();
????????trig=1;??????
}
void?init_measuring()
{
????????trig=1;
????????echo=1;
????????count=0;
}
void?measuring()
{
????????uchar?l;
????????uint?hy;
????????TR0?=?1;
????????while(echo==1)
????{
????????;
????}???????
????????TR0?=?0;
????????l?=?TL0;
????????h?=?TH0;
????????y?=?(h?<8)?+?l;
????????y?=?y?-?0xfc66;//us部分
????????distance?=?y?+?1000?*?count;//計算總時間單位是微秒
????????TL0?=?0x66;
????????TH0?=?0xfc;
????????delayt(30);
????????distance?=?3453*?distance?/?20000;//原始為:(0.34毫米/us)*時間/2//???????
}
void?display(uint?x)
{
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-23?22:04??17電設(shè)\
?????目錄???????????0??2017-06-03?13:25??17電設(shè)\1602顯示\
?????目錄???????????0??2017-06-03?13:41??17電設(shè)\1602顯示\超聲波\
?????文件???????11106??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main
?????文件????????4545??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.c
?????文件????????2932??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.hex
?????文件??????????56??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.lnp
?????文件????????8490??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.LST
?????文件???????16349??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.M51
?????文件???????11468??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\main.OBJ
?????文件?????????166??2017-06-03?13:41??17電設(shè)\1602顯示\超聲波\main.plg
?????文件???????55311??2017-06-03?13:41??17電設(shè)\1602顯示\超聲波\main.uvopt
?????文件???????13421??2017-06-03?13:35??17電設(shè)\1602顯示\超聲波\main.uvproj
?????文件???????55319??2017-06-03?13:35??17電設(shè)\1602顯示\超聲波\main_uvopt.bak
?????文件???????????0??2017-06-03?13:26??17電設(shè)\1602顯示\超聲波\main_uvproj.bak
?????文件????????6376??2009-05-07?14:37??17電設(shè)\1602顯示\超聲波\STARTUP.A51
?????文件???????14049??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\STARTUP.LST
?????文件?????????758??2017-06-03?13:30??17電設(shè)\1602顯示\超聲波\STARTUP.OBJ
?????目錄???????????0??2017-06-07?16:33??17電設(shè)\5110\
?????目錄???????????0??2017-06-05?23:02??17電設(shè)\5110\5110?HX711\
?????文件???????12649??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main
?????文件????????7737??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.c
?????文件????????6109??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.hex
?????文件??????????56??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.lnp
?????文件???????14673??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.LST
?????文件???????18143??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.M51
?????文件???????14393??2017-06-05?22:31??17電設(shè)\5110\5110?HX711\main.OBJ
?????文件?????????166??2017-06-05?23:02??17電設(shè)\5110\5110?HX711\main.plg
?????文件???????55317??2017-06-05?23:02??17電設(shè)\5110\5110?HX711\main.uvopt
?????文件???????13421??2017-06-04?23:10??17電設(shè)\5110\5110?HX711\main.uvproj
?????文件???????55317??2017-06-05?22:39??17電設(shè)\5110\5110?HX711\main_uvopt.bak
............此處省略275個文件信息
- 上一篇:王兆安劉進軍電力電子技術(shù).rar
- 下一篇:ADF4351控制代碼
評論
共有 條評論