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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2077|回復: 2
打印 上一主題 下一主題
收起左側

單片機電子秤程序 惠斯特電橋接四個應變片的仿真原理圖

[復制鏈接]
跳轉到指定樓層
樓主
ID:1066771 發(fā)表于 2023-3-15 23:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本設計是采用的惠斯特電橋接四個應變片的仿真,實例代碼和仿真原理圖如下



仿真通過改變滑動變阻器阻值實現(xiàn)

單片機源程序如下:
  1. #define#include<reg52.h>
  2. #include<intrins.h>
  3. #include <absacc.h>
  4. #include <math.h>
  5. #include<stdio.h>
  6. #define uchar unsigned char
  7. #define unit unsigned int
  8. #define DATA P0        
  9. sbit lcden=P2^5;
  10. sbit lcdrw=P2^6;
  11. sbit lcdrs=P2^7;

  12. sbit feng=P3^4;

  13. sbit BYTE=P2^1;
  14. sbit BUSY=P2^2;
  15. //sbit CS=P2^2;
  16. sbit RC=P2^0;

  17. void init();
  18. void write_com(uchar com);
  19. void write_data(uchar date);
  20. void write_word(unsigned char *s);

  21. void DelayMS(unsigned int y)           //延遲程序
  22. {
  23.         unsigned int x;
  24.         for(y;y>0;y--)
  25.                 for(x=110;x>0;x--);
  26. }


  27. void init(void)                        //LCD初始化程序
  28. {         
  29.         write_com(0x02);
  30.     write_com(0x38);//顯示模式設置
  31.     write_com(0x0c); //開顯示,不顯示光標,光標不閃爍
  32.     write_com(0x06);//當讀或寫一個字符后地址指針加1,且光標加1,整屏顯示不移動
  33.         write_com(0x01); //清屏
  34.         DelayMS(50);
  35. }


  36. void write_com(uchar com)
  37. {
  38.     lcdrs=0;//寫指令
  39.         lcdrw=0;
  40.     DATA=com;         
  41.         lcden=1;
  42.     DelayMS(5);
  43.     lcden=1;
  44.     DelayMS(5);
  45.         lcden=0;
  46. }

  47. void write_data(uchar date)
  48. {
  49.         lcdrs=1;
  50.     DATA=date;
  51.     DelayMS(5);
  52.     lcden=1;
  53.     DelayMS(5);
  54.         lcden=0;
  55. }
  56. void write_word(unsigned char *s)
  57. {
  58.         while(*s>0)
  59.         {
  60.                 write_data(*s);
  61.                 s++;
  62.         }
  63. }

  64. void Display(int weight)
  65. {
  66.         int bw,sw,gw,yw,ew;
  67.         unit dat;
  68.         dat=weight*100;

  69.         bw=dat/10000; //取得百位數(shù)字
  70.         sw=dat%10000/1000;//取得十位數(shù)字
  71.         gw=dat%10000%1000/100;//取得個位數(shù)字
  72.         yw=dat%10000%1000%100/10; //小數(shù)點后一位
  73.         ew=dat%10000%1000%100%10; //小數(shù)點后二位


  74. //        bw=dat/10000; //取得百位數(shù)字
  75. //        sw=dat%10000/1000;//取得十位數(shù)字
  76. //        gw=dat/100%10;//取得個位數(shù)字
  77. //        yw=dat/10%10; //小數(shù)點后一位
  78. //        ew=dat%10000; //小數(shù)點后二位

  79.         write_com(0x89);
  80.         write_data(0x30+bw);
  81.         write_com(0x8a);
  82.         write_data(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  83.         write_com(0x8b);
  84.         write_data(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  85.         write_com(0x8c);
  86.         write_data('.');
  87.         write_com(0x8d);
  88.         write_data(0x30+yw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  89.         write_com(0x8e);
  90.         write_data(0x30+ew);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  91.         write_com(0x8f);
  92.           write_data(0x67);        //顯示"g"符號,                 
  93. }

  94. void Display2(int weight)
  95. {
  96.         int ww,qw,bw,sw,gw;
  97.         unit dat;
  98.         dat=weight;
  99.         ww=dat/10000; //取得wan位數(shù)字
  100.         qw=dat%10000/1000;//取得qian位數(shù)字
  101.         bw=dat%10000%1000/100;//取得bai位數(shù)字
  102.         sw=dat%10000%1000%100/10; //shi位
  103.         gw=dat%10000%1000%100%10; //ge位

  104.         write_com(0xC1);
  105.         write_data(0x30+ww);
  106.         write_com(0xC2);
  107.         write_data(0x30+qw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  108.         write_com(0xC3);
  109.         write_data(0x30+bw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  110.         write_com(0xC4);
  111.         write_data(0x30+sw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  112.         write_com(0xC5);
  113.         write_data(0x30+gw);//數(shù)字+30得到該數(shù)字的LCD1602顯示碼
  114.                  
  115. }
  116. int ADS7825_Convert()
  117. {
  118.         unit temp;
  119.         uchar temp1,temp2;
  120. //        CS=0;
  121.         RC=1;
  122.         RC=0;
  123.         DelayMS(1);
  124.         RC=1;
  125.         while(BUSY==0);
  126.         RC=1;
  127.         BYTE=0;
  128.         DelayMS(1);
  129.         temp1=P1;          //高八位
  130.         BYTE=1;
  131.         DelayMS(1);
  132.         temp2=P1;           //低八位
  133. //        CS=1;
  134. //        temp=temp1;
  135.     temp=(temp1<<8)+temp2;
  136.         return temp;

  137. }

  138. int DataProcess(result)
  139. {
  140.         /*計算電壓值*/
  141.         double voltage_value,weight_value;
  142.                 voltage_value = (unsigned long)(((double)result * 10 / 32767) * 1000 + 0.5);  
  143.         voltage_value = (unsigned long)(((double)result*0.0457-59.486));
  144. //        weight_value = voltage_value/0.04;
  145. //        return weight_value;
  146.         return voltage_value;
  147. }

  148.                                                                                                                                    
  149. void main(void)
  150. {
  151.         int result,weight,result1,result2,result3,result4,result5,result6,result7,result8,result9,result10;
  152.         //unsigned char str[8]={0};
  153.         //DelayMS(500);
  154.         lcdrs=0;
  155.         lcdrw=0;
  156.         lcden=0;
  157.         feng=1;
  158.         init();

  159.         while(1)
  160.         {
  161.                 result1=ADS7825_Convert();
  162.                 DelayMS(5);
  163.                 result2=ADS7825_Convert();
  164.                 DelayMS(5);
  165.                 result=(result1+result2)/2;
  166.                 result3=ADS7825_Convert();
  167.                 DelayMS(5);
  168.                 result=(result+result3)/2;
  169.                 result4=ADS7825_Convert();
  170.                 DelayMS(5);
  171.                 result=(result+result4)/2;
  172.                 result5=ADS7825_Convert();
  173.                 DelayMS(5);
  174.                 result=(result+result5)/2;
  175.                 result6=ADS7825_Convert();
  176.                 DelayMS(5);
  177.                 result=(result+result6)/2;
  178.                 result7=ADS7825_Convert();
  179.                 DelayMS(5);
  180.                 result=(result+result7)/2;
  181.                 result8=ADS7825_Convert();
  182.                 DelayMS(5);
  183.                 result=(result+result8)/2;
  184.                 result9=ADS7825_Convert();
  185.                 DelayMS(5);
  186.                 result=(result+result9)/2;
  187.                 result10=ADS7825_Convert();
  188.                 DelayMS(5);
  189.                 result=(result+result10)/2;
  190.                 DelayMS(100);

  191.                 Display2(result);
  192. result=(result1+result2+result3+result4+result5+result6+result7+result8+result9+result10)/10;

  193.                 weight=DataProcess(result);
  194.                 if(weight>=300)
  195.                 {
  196.                         feng=0;
  197.                 }
  198.                 else
  199.                 {
  200.                         feng=1;
  201.                 }

  202.                 write_com(0x80);
  203.                 write_word("  ");                                
  204.                 write_word("Weight:");
  205.                 Display(weight);
  206.                 DelayMS(500);
  207.         }
  208. }
復制代碼



評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1077503 發(fā)表于 2023-5-14 23:00 | 只看該作者
能上傳一下仿真嗎?
回復

使用道具 舉報

板凳
ID:1140248 發(fā)表于 2024-12-18 09:20 | 只看該作者
@1t 發(fā)表于 2023-5-14 23:00
能上傳一下仿真嗎?

能發(fā)一下仿真圖嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 密室大逃脱第六季大神版在线观看 | 亚洲一区在线日韩在线深爱 | 九九精品久久久 | 亚洲日本成人 | 91精品国产91久久久久久吃药 | 久久久久一区二区 | 一区视频 | 性一爱一乱一交一视频 | 久久久亚洲一区 | 高清国产午夜精品久久久久久 | 国产在线网址 | 欧美视频在线观看 | 91看片网| 国产精品久久久久无码av | 亚洲精品成人免费 | 亚洲精品中文字幕中文字幕 | 久久精品视频网站 | 成年人视频在线免费观看 | 一二区成人影院电影网 | 中文字幕一区二区视频 | 怡红院成人在线视频 | 91久久国产精品 | 亚洲国产精品久久久久 | 国产激情视频 | 国产亚洲一区二区三区 | 欧美 日韩 国产 成人 在线 91 | 中文字幕在线第二页 | 国产成人在线播放 | 久久合久久 | 一区二区三区四区在线视频 | 色性av| 欧美一区二区免费在线 | 国家一级黄色片 | 国产精品国产自产拍高清 | 免费黄色大片 | 不卡视频在线 | 国产线视频精品免费观看视频 | 91中文在线观看 | 91精品国产综合久久久密闭 | 中文字幕一区在线观看视频 | 精品久久久久久久久久久下田 |