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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

12864液晶顯示的HX711電子秤單片機源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:391155 發表于 2018-8-29 13:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
HX711的電子秤,12864液晶顯示

單片機源程序如下:

  1. #include"reg51.h"
  2. /****************************************************************
  3. 環宇電子秤系統  stc89C52單片機控制          
  4. 12864 LCD顯示    制作日期:2015/06/25
  5. *****************************************************************/
  6. /****************************************************************
  7.                                    LCD_12864 端口定義
  8. *****************************************************************/
  9. #define uchar unsigned char
  10. #define uint  unsigned int
  11. unsigned char CMDAddress,jian_ma,flag,jiao_flag,set_flag,price_flag;
  12. unsigned int   heavy,price=1,money,alarm=500,jiao_zhun=1010;              //相關變量定義   ,上限報警值初始值為500克
  13. unsigned char menu,jia,jian,confr,fu,menu_flag,exit;
  14. long data_num,data_temp,data_flash;
  15.         unsigned char f=0;
  16. sbit IRIN = P3^3;         //紅外接收器數據線
  17. sbit ADDO=P1^0;              //ad采集數據接口
  18. sbit ADSK= P1^1;           //ad采集時鐘接口
  19. sbit RS=P2^3;
  20. sbit RW=P2^4;                   //液晶接口定義
  21. sbit EN=P2^5;
  22. //sbit rst=P2^7;
  23. sbit bell=P3^6;    //蜂鳴器定義
  24. sbit key=P2^7;    //按鍵定義
  25.    #define Imax 14000    //此處為晶振為12時的取值, 紅外解碼
  26.     #define Imin 8000    //如用其它頻率的晶振時,
  27.     #define Inum1 1450    //要改變相應的取值。
  28.     #define Inum2 700
  29.     #define Inum3 3000
  30.           unsigned char Im[4]={0x00,0x00,0x00,0x00};
  31.    
  32.     unsigned long m,Tc;
  33. /****************************************************************

  34. *****************************************************************/
  35. unsigned char code table1[]="★★歡迎光臨★★環宇電子稱系統  ";                        //液晶顯示內容
  36.                                                                         //如果需要其他顯示內容只需要修改漢子內容
  37.                                                                                                                                                 //但是漢子數量要一致,重新編譯即可
  38. void  read_count()        //ad采集函數
  39. {
  40.   unsigned long count;
  41.   unsigned char i;
  42.   ADSK=0;//使能ad
  43.   count=0;
  44.   while(ADDO);  //等待ad轉換結束
  45.   for(i=0;i<24;i++)
  46.   {
  47.     ADSK=1; //PD_SCK置高,發送脈沖
  48.         count=count<<1;
  49. //        delayp();
  50.         ADSK=0;   //pd_sck置低
  51.         if(ADDO)count++;
  52.   }
  53.   ADSK=1;
  54.   count=count^0x800000;        //第25個脈沖下降沿來時,轉換數據
  55. // delayp();
  56.   ADSK=0;
  57. data_num=count;   // 讀出來的數據賦值給變量data_num
  58. }
  59. void delay_ms(unsigned char x)    //x*0.14MS
  60. {
  61. unsigned char i;
  62.   while(x--)
  63. {
  64.   for (i = 0; i<13; i++) {}
  65. }
  66. }

  67. void delay(uint t)                //延時函數
  68. {         
  69.         uint x,y;
  70.         for(x=t;x>0;x--)
  71.         for(y=12;y>0;y--);
  72. }




  73. void display(uint Temp,uint k1,uint k2 )                 // 顯示重量,單價,金額
  74. {

  75.         uint t1,t2,t3,t4        ;                  //,t0,t1,t2
  76.         if(!menu_flag)                       //沒有按鍵按下
  77.         {                 
  78.                                 t1=Temp/1000%10;
  79.                                 t2=Temp/100%10;
  80.                                 t3=Temp/10%10;
  81.                                 t4=Temp%10;          
  82.                                 write_cmd(0x93);
  83.                                 if(t1)                           //千位的顯示
  84.                                 {
  85.                                 write_date(0x30+t1);
  86.                                 write_date(0x30+t2);
  87.                                 write_date(0x30+t3);
  88.                                 write_date(0x30+t4);
  89.                                 }



  90. void sao_miao()//按鍵掃描函數
  91. {
  92.      if(key==0)
  93.          {
  94.             delay(10);
  95.            if(!key)
  96.              {
  97.                      while(!key);
  98.                      read_count();
  99.                          delay(500);
  100.                          read_count();
  101.                          data_temp=data_num;        //重新讀取ad采集值,進入清零功能
  102.             }
  103.          }
  104. }


  105. /****************************************************************
  106.                                                 主函數
  107. *****************************************************************/

  108. void main()
  109. {
  110.     uchar i=0;
  111.         IRIN=1;                    //I/O口初始化
  112.               m=0;
  113.     f=0;
  114.        
  115.     IT1=1;          
  116.     EX1=1;           //開外部中斷

  117.     TMOD=0x11;   //定時器方式
  118.     TH0=0;
  119.         TL0=0;
  120.     TR0=1;         //開定時器
  121.         EA=1;         //開總中斷
  122.         P0=0;
  123.         delay(50);
  124.         init();                                                    // 初始化
  125.         delay(100);
  126.        
  127.         write_word(table1);                         // 進入歡迎界面
  128.       for(i=10;i>0;i--)
  129.             delay(3000);          // 每一屏顯示秒鐘
  130.         write_cmd(0x00);                         // 清屏

  131.          show() ;              //顯示初始化
  132.          read_count();                   //ad采集函數
  133.          delay(3000);
  134.           read_count();                   //ad采集函數       
  135.            delay(3000);
  136.             read_count();                   //ad采集函數
  137.                    data_temp=data_num;  //采集數據賦值給臨時變量 data_temp
  138.         while(1)
  139.         {
  140.            read_count();
  141.           if(data_num>=data_temp)                          // 比較采集出來的數值與臨時變量
  142.           data_num=(data_num-data_temp);
  143.           else
  144.           {
  145.           data_num=(data_temp-data_num);
  146.           if(data_num>=500)
  147.            {  
  148.               fu=1;
  149.                  }
  150.                  else
  151.                  {
  152.                  fu=0;
  153.                  data_num=0;
  154.                
  155.                  }
  156.        

  157.           }
  158.                
  159.                
  160.                
  161.          heavy=(unsigned int)(data_num/jiao_zhun);//1677;         //計算重量
  162.             delay(500);
  163.                
  164.                
  165.                
  166.                 data_flash=heavy*price;                 // 總價=單價*重量
  167.                 money=(unsigned int)data_flash;
  168.                 if(exit)        //如果進行了設置
  169.                 {
  170.                    exit=0;
  171.                    show() ;              //顯示刷新
  172.                 }
  173.           display(heavy,price,money);        //計算完成后送到液晶顯示
  174.           delay(500);
  175.           chu_li();        //掃描函數
  176.            if(heavy>alarm)                   //重量超過上限報警
  177.            {
  178.               beep();
  179.            }
  180.            delay(500);
  181.      }
  182. }




  183. //外部中斷解碼程序
  184.   void intersvr1(void) interrupt 2 using 1
  185. {
  186.     Tc=TH0*256+TL0;                                               //提取中斷時間間隔時長
  187.     TH0=0;
  188.     TL0=0;              //定時中斷重新置零
  189. if((Tc>Imin)&&(Tc<Imax))        //定時器判斷讀取的啟始碼正確
  190.       {
  191.         m=0;
  192.         f=1;
  193.         return;
  194.       }       //找到啟始碼

  195.    if(f==1)
  196.       {
  197.         if(Tc>Inum1&&Tc<Inum3)
  198.     {
  199.    Im[m/8]=Im[m/8]>>1|0x80; m++;
  200.        }
  201.       if(Tc>Inum2&&Tc<Inum1)
  202. ……………………

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

所有資料51hei提供下載:
電子稱12864顯示.rar (65.64 KB, 下載次數: 48)


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

使用道具 舉報

沙發
ID:1 發表于 2018-8-29 17:28 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

板凳
ID:348335 發表于 2018-11-27 10:51 | 只看該作者
一堆錯誤
回復

使用道具 舉報

地板
ID:483932 發表于 2019-3-9 12:11
您這個程序咋全都是錯誤啊

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清av在线 | av影片在线 | 男人的天堂亚洲 | 成人教育av | 亚洲九九精品 | 亚洲国产成人在线 | 91免费在线视频 | 99婷婷| 国产在线精品区 | 91大片| 精品一区二区久久久久久久网站 | 91精品久久久久久久久 | 91免费小视频| 成人国产a | 欧美人成在线视频 | 久久国产高清 | 欧美中文字幕一区二区三区亚洲 | 成人在线视频网站 | 999久久久 | 久草免费在线视频 | 青青久在线视频 | 国产一区二区三区色淫影院 | 欧美白人做受xxxx视频 | 日本一区视频在线观看 | 人人做人人澡人人爽欧美 | 国产色片| 91亚洲精品在线 | 日韩一区二区福利视频 | 精品一区二区久久久久久久网站 | 久久中文字幕一区 | 91五月天| 午夜影院| 7799精品视频天天看 | 国产成人精品高清久久 | 黄色av免费| 精品99久久久久久 | 久久首页| 日韩精品一区二区三区在线播放 | 亚洲欧美精品一区 | 国产精品欧美精品日韩精品 | 久久久成人动漫 |