久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 21799|回復: 46
收起左側

基于單片機的電子稱設計綜合包 HX711傳感器 16鍵 1602顯示 帶論文

  [復制鏈接]
ID:201968 發(fā)表于 2017-5-17 21:42 | 顯示全部樓層 |閱讀模式
幫助廣大51hei論壇友人快速解決HX711傳感器的單片機電子稱的設計問題
還帶開題報告與完整的設計論文,畢業(yè)黨這下有救了.

制作的成品實物圖:
0.png 0.png 0.png
0.png 0.png

元件清單:
元件型號
元件名稱
元件標號
數(shù)量
蜂鳴器
Bell
B1
1
10uF
電容
C1
1
20pF
電容
C2, C3
2
LCD1602
液晶
LCD1
1
Header 2
電源接口
P1
1
9012
三極管
Q5
1
2.7K
電阻
R1
1
10K
電阻
R2
1
SW-PB
按鍵
S1, S3, S4, S5, S6,  S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18
17
sw-灰色
電源開關
SW1
1
U1
單片機
U1
1
12M
晶振
Y1
1

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png
DXP格式用            Altium designer Summer 軟件打開
protel99格式用       protel99SE 軟件打開
PDF格式用            PDF 軟件打開
Word格式用           Word 或用WPS 軟件打開

4種格式的原理圖都內容是一樣的  只是打開方式不同
請看原理圖焊接,不要看仿真圖焊接。
wrod格式里面的原理圖是復制出來的,有一點點變行變形,麻煩大家注意一下,盡量看其他三種格式的圖焊接,
如果論文里面的原理圖和原理圖文件夾內的圖不一樣的話,請大家以原理圖文件夾內的為準,原理圖文件夾的圖是和實物配套的,可以自己截圖或復制,然后粘貼到論文里面去。
0.png

資料包含以下目錄(里面很多都有詳細的視頻教程,非常值得大家學習)
Altium Designer Sunner畫圖軟件學習視頻\
Altium Designer Sunner畫圖軟件安裝視頻\
AltiumDesignerSummer9 畫圖軟件安裝包\
C語言視頻教程\
KEIL 軟件安裝視頻\
keil4軟件安裝包 開發(fā)工具地址\
MCU 單片機芯片資料\
PCB圖\
Protel 99 軟件安裝包\
Protel 99 軟件安裝視頻\
Protel 99畫圖軟件學習視頻\
Proteus ISIS  仿真軟件學習視頻\
Proteus 軟件安裝包\
PROTEUS仿真軟件的安裝方法\
元件清單\
制作過程\
單片機初學者視頻教程 郭天祥老師\
單片機初學者視頻教程 霖鋒老師\
單片機程序下載軟件 STC-ISP-V4.83\
原理圖 電子稱\
原理圖 電子稱  沒有字\
參考論文\
實物照片\
工程新建  程序下載 視頻教程\
開發(fā)工具地址 keil4軟件安裝包\
開題報告\
操作視頻地址\
畢設答辯技巧\
焊接注意事項和調試講解\
程序\
答辯常見問題解答\
設計資料\
使用前必讀.doc
原理圖 打開方式.txt
基于單片機的電子秤系統(tǒng)設計任務書.doc
電子秤文獻翻譯.doc
程序打開方法.txt


單片機源程序如下:
  1. #include <reg52.h>                 //調用單片機頭文件
  2. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535

  4. #define ulong unsigned long

  5. #include<intrins.h>

  6. uchar code table_num[]="0123456789abcdefg";

  7. sbit rs=P1^0;         //寄存器選擇信號 H:數(shù)據(jù)寄存器          L:指令寄存器
  8. sbit rw=P1^1;         //寄存器選擇信號 H:數(shù)據(jù)寄存器          L:指令寄存器
  9. sbit e =P1^2;         //片選信號   下降沿觸發(fā)

  10. sbit hx711_dout=P2^1;
  11. sbit hx711_sck=P2^0;

  12. sbit beep = P1^3;     //蜂鳴器

  13. long weight;

  14. uint temp,qi_weight;
  15. bit chaozhong_flag;
  16. bit leiji_flag;
  17. bit flag_300ms ;

  18. ulong price,z_price;   //單價 總價
  19. uchar flag_p;

  20. /***************
  21. 刪除鍵
  22. 去皮
  23. 價格清零

  24. ***************/

  25. /******1ms延時函數(shù)***12M晶振**************/
  26. void delay_1ms(uint q)
  27. {
  28.         uint i,j;
  29.         for(i=0;i<q;i++)
  30.                 for(j=0;j<120;j++);
  31. }

  32. /********************************************************************
  33. * 名稱 : delay_uint()
  34. * 功能 : 小延時。
  35. * 輸入 : 無
  36. * 輸出 : 無
  37. ***********************************************************************/
  38. void delay_uint(uint q)
  39. {
  40.         while(q--);
  41. }

  42. /********************************************************************
  43. * 名稱 : write_com(uchar com)
  44. * 功能 : 1602命令函數(shù)
  45. * 輸入 : 輸入的命令值
  46. * 輸出 : 無
  47. ***********************************************************************/
  48. void write_com(uchar com)
  49. {
  50.         e=0;
  51.         rs=0;
  52.         rw=0;
  53.         P0=com;
  54.         delay_uint(3);
  55.         e=1;
  56.         delay_uint(25);
  57.         e=0;
  58. }

  59. /********************************************************************
  60. * 名稱 : write_data(uchar dat)
  61. * 功能 : 1602寫數(shù)據(jù)函數(shù)
  62. * 輸入 : 需要寫入1602的數(shù)據(jù)
  63. * 輸出 : 無
  64. ***********************************************************************/
  65. void write_data(uchar dat)
  66. {
  67.         e=0;
  68.         rs=1;
  69.         rw=0;
  70.         P0=dat;
  71.         delay_uint(3);
  72.         e=1;
  73.         delay_uint(25);
  74.         e=0;        
  75. }


  76. /***********************lcd1602上顯示這字符函數(shù)************************/
  77. void write_string(uchar hang,uchar add,uchar *p)
  78. {
  79.         if(hang==1)   
  80.                 write_com(0x80+add);
  81.         else
  82.                 write_com(0x80+0x40+add);
  83.         while(1)                                                                                                                 
  84.         {
  85.                 if(*p == '\0')  break;
  86.                 write_data(*p);
  87.                 p++;
  88.         }        
  89. }

  90. /***********************lcd1602初始化設置************************/
  91. void init_1602()         //lcd1602初始化設置
  92. {
  93.         write_com(0x38);        //
  94.         write_com(0x0c);
  95.         write_com(0x06);
  96.         delay_uint(1000);
  97. }

  98. ////////////////在指定位置顯示指定字符//////////
  99. void write_zifu(uchar hang,uchar add,uchar dat)
  100. {
  101.         if(hang==1)   
  102.                 write_com(0x80+add);
  103.         else
  104.                 write_com(0x80+0x40+add);
  105.         write_data(dat);
  106. }

  107. /********************************************************************
  108. * 名稱 : write_sfm4_price(uchar hang,uchar add,uchar date)
  109. * 功能 : 顯示價格
  110. * 輸入 : 行,列,需要輸入1602的數(shù)據(jù)
  111. * 輸出 : 無
  112. ***********************************************************************/
  113. void write_sfm4_price(uchar hang,uchar add,uint date)
  114. {
  115.         if(hang==1)   
  116.                 write_com(0x80+add);
  117.         else
  118.                 write_com(0x80+0x40+add);
  119.         write_data(0x30+date/1000%10);
  120.         write_data(0x30+date/100%10);
  121.         write_data('.');
  122.         write_data(0x30+date/10%10);
  123.         write_data(0x30+date%10);        
  124. }

  125. /****************開機液晶顯示函數(shù) 初始化液晶的內容********************************/
  126. void init_1602_dis_csf()  //初始化液晶
  127. {                                                                    
  128.         write_string(1,0,"   W:0.000kg    ");
  129.         write_string(2,0,"P:00.00  Z:00.00");
  130.         write_zifu(2,7,0x5c);        //¥               
  131. //        write_zifu(2,15,0x5c);        //¥               

  132. }

  133. /*******************壓力顯示程序***********************/
  134. void write_1602_yl(uchar hang,uchar add,uint date)
  135. {
  136.         if(hang==1)   
  137.                 write_com(0x80+add);
  138.         else
  139.                 write_com(0x80+0x40+add);
  140.         write_data(0x30+date/1000%10);
  141.         write_data('.');
  142.         write_data(0x30+date/100%10);
  143.         write_data(0x30+date/10%10);
  144.         write_data(0x30+date%10);        
  145.         
  146. }


  147. void Delay__hx711_us(void)
  148. {
  149.         _nop_();
  150.         _nop_();
  151. }

  152. ulong ReadCount(void)        //增益128
  153. {
  154.         ulong count,value = 0;
  155.         uchar i;
  156.           hx711_dout=1;
  157.         Delay__hx711_us();
  158.           hx711_sck=0;
  159.           count=0;
  160.           while(hx711_dout)          ;
  161.           for(i=0;i<24;i++)
  162.         {
  163.                   hx711_sck=1;
  164.                   count=count<<1;
  165.                 hx711_sck=0;
  166.                   if(hx711_dout)
  167.                         count++;
  168.         }
  169.          hx711_sck=0;
  170.         Delay__hx711_us();
  171.         hx711_sck=1;  
  172.         return(count);
  173. }

  174. void get_pizhong()          //獲取皮重,秤盤重量
  175. {
  176.         ulong hx711_dat;
  177.         hx711_dat=ReadCount();                //HX711AD轉換數(shù)據(jù)處理
  178.         temp=(uint)(hx711_dat/100);        
  179. }

  180. void get_weight()          //獲取被測物體重量
  181. {
  182.         ulong hx711_data,a;
  183.         uint get,aa;        
  184.         hx711_data=ReadCount();                   //HX711AD轉換數(shù)據(jù)處理
  185.         get=(uint)(hx711_data/100);
  186.         if(get>temp)
  187.         {
  188.                 a=ReadCount();
  189.                 aa=(uint)(a/100)-temp;
  190.                 weight=(uint)((float)aa/4.9+0.05);//重量轉換函數(shù),傳感器型號不同此函數(shù)要適當修改
  191.         }
  192. }

  193. /************************************************/
  194. /*  由于稱重傳感器線性度參數(shù)的不同,而對獲得的重量數(shù)據(jù)處理,
  195. 此處可能會根據(jù)不同稱重傳感器,程序的代碼會有所不同      */        
  196. /************************************************/


  197. /*************定時器0初始化程序***************/
  198. void time_init()         
  199. {
  200.         EA   = 1;                   //開總中斷
  201.         TMOD = 0X01;          //定時器0、定時器1工作方式1
  202.         ET0  = 1;                  //開定時器0中斷
  203.         TR0  = 1;                  //允許定時器0定時
  204. }

  205. /********************獨立按鍵程序*****************/
  206. uchar key_can;         //按鍵值

  207. void key()         //獨立按鍵程序
  208. {
  209.         static uchar key_new = 0, key_l;
  210.         key_can = 20;                   //按鍵值還原
  211.         P3 = 0x0f;
  212.         if((P3 & 0x0f) != 0x0f)                //按鍵按下
  213.         {
  214.                 delay_1ms(1);                     //按鍵消抖動
  215.                 if(((P3 & 0x0f) != 0x0f) && (key_new == 1))
  216.                 {                                                //確認是按鍵按下
  217.                         key_new = 0;
  218.                         key_l = P3 | 0xf0;   //矩陣鍵盤掃描
  219.                         P3 = key_l;
  220.                         switch(P3)
  221.                         {
  222.                                 case 0xee:  key_can = 1;  break;  //得到按鍵值
  223.                                 case 0xde:  key_can = 4;  break;   //得到按鍵值
  224.                                 case 0xbe:  key_can = 7;  break;   //得到按鍵值
  225.                                 case 0x7e:  key_can = 10;  break;   //得到按鍵值
  226.         
  227.                                 case 0xed:  key_can = 2;  break;  //得到按鍵值
  228.                                 case 0xdd:  key_can = 5;  break;   //得到按鍵值
  229.                                 case 0xbd:  key_can = 8;  break;   //得到按鍵值
  230.                                 case 0x7d:  key_can = 0;  break;   //得到按鍵值
  231.         
  232.                                 case 0xeb:  key_can = 11;  break;  //得到按鍵值
  233.                                 case 0xdb:  key_can = 9;  break;   //得到按鍵值
  234.                                 case 0xbb:  key_can = 6;  break;   //得到按鍵值
  235.                                 case 0x7b:  key_can = 3;  break;   //得到按鍵值
  236.         
  237.                                 case 0xe7:  key_can = 15;  break;  //得到按鍵值
  238.                                 case 0xd7:  key_can = 14;  break;  //得到按鍵值
  239.                                 case 0xb7:  key_can = 13;  break;   //得到按鍵值
  240.                                 case 0x77:  key_can = 12;  break;  //得到按鍵值         
  241.                         }        
  242.                         beep = 0;  //蜂鳴器叫一聲
  243.                         delay_1ms(100);
  244.                         beep = 1;
  245.                 }                        
  246.         }
  247.         else
  248.                 key_new = 1;        
  249. }

  250. /************按鍵控制函數(shù)*************/
  251. void key_with()
  252. {
  253.         if(key_can <= 9)   //數(shù)字鍵
  254.         {
  255.                 if(flag_p >= 4)
  256.                 {
  257.                         flag_p = 0;
  258.                 }
  259.                 if(flag_p == 0)
  260.                         price = key_can;
  261.                 else
  262.                 {
  263.                         price = price * 10 + key_can;            
  264.                 }           
  265.                 write_sfm4_price(2,2,price);        //顯示單價               
  266.                 flag_p ++;
  267.         }
  268.         if(key_can == 15)   //刪除鍵
  269.         {   
  270.                 if(price != 0 )
  271.                 {
  272.                         flag_p --;
  273.                         price /= 10;                 //刪除
  274.                         write_sfm4_price(2,2,price);//顯示單價                                
  275.                 }
  276.         }
  277.         if(key_can == 14)   //去皮
  278.         {
  279.                 get_pizhong();          //獲取皮重,秤盤重量
  280.         }
  281.         if(key_can == 13)   //價格清零
  282.         {
  283.                 flag_p = 0;
  284.                 price = 0;
  285.                 write_sfm4_price(2,2,price);//顯示單價                                
  286.         }
  287. }

  288. /*****************主函數(shù)********************/
  289. void main()
  290. {        
  291.         beep = 0;  //蜂鳴器叫一聲
  292.         delay_1ms(100);
  293.         P0 = P1 = P2 = P3 = 0xff;                //單片機IO口初始化為1
  294.         time_init();                    //初始化定時器
  295.         init_1602();                 //lcd1602初始化
  296.         init_1602_dis_csf(); //lcd1602初始化顯示
  297. ……………………

  298. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供打包下載:
## 電子稱 16鍵 1602.rar (12.17 MB, 下載次數(shù): 805)


評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:82765 發(fā)表于 2017-5-19 16:12 | 顯示全部樓層
非常感謝分享這么好的資源
回復

使用道具 舉報

ID:82765 發(fā)表于 2017-5-19 17:31 | 顯示全部樓層
好資料,程序在仿真里面完全通過

1.jpg
2.jpg
回復

使用道具 舉報

ID:202734 發(fā)表于 2017-5-20 00:22 | 顯示全部樓層
厲害了我的大兄弟
回復

使用道具 舉報

ID:203968 發(fā)表于 2017-5-23 19:46 | 顯示全部樓層
dbj123 發(fā)表于 2017-5-20 00:22
厲害了我的大兄弟

咨詢下怎么下載呢
回復

使用道具 舉報

ID:203968 發(fā)表于 2017-5-23 20:02 | 顯示全部樓層
怎么下載呢
回復

使用道具 舉報

ID:220276 發(fā)表于 2017-7-21 22:09 | 顯示全部樓層
下載下來不知道是什么文件,浪費5黑幣
回復

使用道具 舉報

ID:208443 發(fā)表于 2017-7-23 18:56 | 顯示全部樓層
xiaohui3991 發(fā)表于 2017-7-21 22:09
下載下來不知道是什么文件,浪費5黑幣

用迅雷可以下載
回復

使用道具 舉報

ID:196311 發(fā)表于 2017-7-28 11:22 | 顯示全部樓層
想看看數(shù)值轉換算法,謝謝
回復

使用道具 舉報

ID:243406 發(fā)表于 2017-11-7 13:26 | 顯示全部樓層
xiaohui3991 發(fā)表于 2017-7-21 22:09
下載下來不知道是什么文件,浪費5黑幣

是rar格式的壓縮包文件啊,可以直接解壓。
回復

使用道具 舉報

ID:134968 發(fā)表于 2017-11-7 16:12 | 顯示全部樓層
挺好的 資源 以前我也做過這個
回復

使用道具 舉報

ID:252068 發(fā)表于 2017-11-21 21:21 | 顯示全部樓層

好資料,程序在仿真里面完全通過
回復

使用道具 舉報

ID:258174 發(fā)表于 2017-12-6 14:32 | 顯示全部樓層
非常好!
回復

使用道具 舉報

ID:258844 發(fā)表于 2017-12-7 21:47 | 顯示全部樓層
非常好!
回復

使用道具 舉報

ID:259132 發(fā)表于 2017-12-8 16:18 | 顯示全部樓層

怎么下載啊,可以給我私發(fā)一下嗎?謝謝
回復

使用道具 舉報

ID:259132 發(fā)表于 2017-12-8 16:20 | 顯示全部樓層
怎么下載啊,還有怎么解壓
回復

使用道具 舉報

ID:230543 發(fā)表于 2017-12-9 08:56 | 顯示全部樓層
為什么我下載的不能打開啊,我都下載2次了,有人回復么
回復

使用道具 舉報

ID:230543 發(fā)表于 2017-12-9 09:02 | 顯示全部樓層
解壓一直在說創(chuàng)建失敗
回復

使用道具 舉報

ID:230543 發(fā)表于 2017-12-9 09:49 | 顯示全部樓層
下載成功了,資料很棒
回復

使用道具 舉報

ID:260531 發(fā)表于 2017-12-12 10:46 | 顯示全部樓層

怎么用迅雷下載啊
回復

使用道具 舉報

ID:279469 發(fā)表于 2018-2-23 18:17 | 顯示全部樓層
感謝分享這么好的資源
回復

使用道具 舉報

ID:303068 發(fā)表于 2018-4-16 18:07 | 顯示全部樓層
無法解壓啊??怎么回事啊?請問有誰可以發(fā)一份嗎?
回復

使用道具 舉報

ID:303068 發(fā)表于 2018-4-16 18:18 | 顯示全部樓層
ahmas 發(fā)表于 2018-2-23 18:17
感謝分享這么好的資源

你好,可以分享下文件嗎?我下載了兩次都不可以解壓
回復

使用道具 舉報

ID:279469 發(fā)表于 2018-4-17 18:50 | 顯示全部樓層
樓主的電子稱 16鍵,解壓能用.

## 電子稱 16鍵 1602.rar

14.66 MB, 下載次數(shù): 30, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:323830 發(fā)表于 2018-5-6 22:25 | 顯示全部樓層
挺詳細的
回復

使用道具 舉報

ID:323830 發(fā)表于 2018-5-6 23:10 | 顯示全部樓層
找仿真圖沒找到,發(fā)現(xiàn)這里有
回復

使用道具 舉報

ID:323916 發(fā)表于 2018-5-7 08:32 | 顯示全部樓層
666感謝分享
回復

使用道具 舉報

ID:333109 發(fā)表于 2018-5-18 16:41 | 顯示全部樓層
大學畢業(yè)設計可以用到
回復

使用道具 舉報

ID:333109 發(fā)表于 2018-5-18 16:44 | 顯示全部樓層

要有黑幣
回復

使用道具 舉報

ID:134968 發(fā)表于 2018-5-28 10:11 | 顯示全部樓層
為什么打不開啊 是個假文件嗎
回復

使用道具 舉報

ID:134968 發(fā)表于 2018-5-28 10:11 | 顯示全部樓層
ahmas 發(fā)表于 2018-4-17 18:50
樓主的電子稱 16鍵,解壓能用.

坑積分 我擦
回復

使用道具 舉報

ID:306869 發(fā)表于 2018-7-10 09:24 | 顯示全部樓層
下載下來用什么軟件打開啊 不是個壓縮包呀
回復

使用道具 舉報

ID:306869 發(fā)表于 2018-7-10 09:31 | 顯示全部樓層
你好 能加一下QQ微信嗎
下載下來的不是壓縮包  不知道什么文件求私發(fā)
1263079057@qq.com
回復

使用道具 舉報

ID:306869 發(fā)表于 2018-7-12 10:24 | 顯示全部樓層
問題解決了  不知道怎么弄的往文件名后面加個.rar  就好了  自動變成壓縮文件了
回復

使用道具 舉報

ID:370051 發(fā)表于 2018-7-12 16:23 | 顯示全部樓層
后綴加個.rar就可以壓縮了
回復

使用道具 舉報

ID:282520 發(fā)表于 2018-9-20 21:37 | 顯示全部樓層
可以 正好 在做這個項目
回復

使用道具 舉報

ID:421173 發(fā)表于 2018-11-9 16:41 | 顯示全部樓層
不是正常文件,打不開怎么回事啊?
回復

使用道具 舉報

ID:428060 發(fā)表于 2018-11-24 22:18 | 顯示全部樓層
下載完重命名后面+rar.就可以解壓了
回復

使用道具 舉報

ID:406702 發(fā)表于 2018-12-9 16:05 來自觸屏版 | 顯示全部樓層
非常不錯啊,兄弟
回復

使用道具 舉報

ID:424725 發(fā)表于 2019-3-31 16:55 | 顯示全部樓層
謝謝樓主分享!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国 产 黄 色 大 片 | 精品小视频 | 欧美色图一区二区三区 | 成人黄色大片 | 91精品久久香蕉国产线看观看 | 久久久久成人网 | 久久精品视频免费看 | 91手机看片 | 九九国产 | 亚洲精品久久久久久久久久久 | 一级片在线播放 | 4hu在线 | 免费一看一级毛片 | 成人午夜精品 | 午夜在线免费观看 | 黄视频网站在线观看 | 天天插天天操 | 久久久久久久免费视频 | 国产高清自拍 | 免费成人毛片 | 国产精品手机在线 | 夜夜嗨av一区二区三区 | 亚洲欧美在线一区 | 国产精品一区二区在线播放 | 欧美日韩在线一区二区三区 | 国产精品久久久久久久免费看 | 丰满少妇高潮在线观看 | 黄色片中文字幕 | 国产精品久久久久久久久久久久午夜片 | 久久天堂网 | 欧美a在线 | 日韩欧美黄色片 | 久久国产精品免费视频 | 日日干av| 久久性色 | 精品免费视频 | 午夜视频一区 | 黄色大片一级 | 久久这里只有精品6 | 国产精品久久久久久久成人午夜 | 黑人精品xxx一区一二区 |