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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

幾種單片機電子稱程序寫法(CAD設計,pcb文件,制作文檔都有)

  [復制鏈接]
跳轉到指定樓層
樓主
幾種電子稱程序調試集錦

cad 程序源碼 pcb文件 還有制作文檔都有,下載地址: 電子稱.rar (2.74 MB, 下載次數: 169)

下面是源碼預覽:
  1. #include <reg52.h>
  2. #include "Global.h"

  3. sbit BUZZER = P3^4;

  4. unsigned int UnitPrice;
  5. unsigned char ModeFlag = 0;

  6. //初始化外部中斷
  7. void Key_Init (void)
  8. {
  9.         IT0 = 1;
  10.         EX0 = 1;
  11.         IT1 = 1;
  12.         EX1 = 1;
  13. }

  14. //外部中斷1,清零按鍵
  15. void Key_ResetINT (void) interrupt 0
  16. {
  17.         HX711_SetOffSet();                                                                                        //設置ADC零點
  18.         KeyBoard_Delay1mS();                                                                                //延時1mS,防抖
  19. }

  20. //外部中斷2,模式折紙按鍵
  21. void Key_ModeINT (void) interrupt 2
  22. {
  23.         HX711_SetOffSet();                                                                                        //設置ADC零點
  24.         KeyBoard_Delay1mS();                                                                                //延時1mS,防抖
  25.         /*
  26.         unsigned int i;
  27.         EX1 = 0;
  28.         ModeFlag = ~ModeFlag;
  29.         if (ModeFlag)
  30.         {
  31.                 LCD_DisStr("                ",0xc0);        //不顯示價格
  32.         }
  33.         else
  34.         {
  35.                 LCD_DisStr("Price:          ",0xc0);        //顯示價格
  36.         }
  37.         for (i=0;i<1500;i++)
  38.         {
  39.                 KeyBoard_Delay1mS();
  40.         }
  41.         EX1 = 1;
  42.         */
  43. }

  44. //設置單價
  45. double SetUnitPrice (void)
  46. {
  47.         unsigned char key;
  48.         unsigned char zbits = 0;
  49.         unsigned char xbits = 0;
  50.         bit dotFlag = 0;
  51.         
  52.         UnitPrice = 0;
  53.         HX711_UpdateCtrl(0);
  54.         LCD_DisStr("Unit Price:     ",0x80);
  55.         LCD_DisStr("            $/g ",0xc0);
  56.         
  57.         LCD_WrCMD(0xc6);
  58.         LCD_WrDAT('*');
  59.         LCD_WrDAT('*');
  60.         LCD_WrDAT('*');
  61.         LCD_WrDAT('*');
  62.         LCD_WrDAT('*');
  63.          LCD_SetCurser(1,0xc6);
  64.         while (1)
  65.         {
  66.                 key = KeyBoard_GetVal();
  67.                 if (key != 0)
  68.                 {        
  69.                         if (key == 1)
  70.                         {
  71.                                 break;
  72.                         }
  73.                         else if (key == 9)
  74.                         {
  75.                                 if (!dotFlag)
  76.                                 {
  77.                                         if (zbits > 0)
  78.                                         {
  79.                                                 zbits--;
  80.                                         }
  81.                                 }
  82.                                 else
  83.                                 {
  84.                                         if (xbits > 0)
  85.                                         {
  86.                                                 xbits--;
  87.                                         }
  88.                                 }
  89.                                 UnitPrice = UnitPrice / 10;
  90.                                 LCD_WrCMD(0xc6 + zbits + xbits);
  91.                                 LCD_WrDAT(' ');
  92.                                 LCD_SetCurser(1,0xc6 + zbits + xbits);
  93.                         }
  94.                         else if (key == 16)
  95.                         {
  96.                                 if (!dotFlag)
  97.                                 {
  98.                                         LCD_WrCMD(0xc6 + zbits + xbits);
  99.                                         LCD_WrDAT('.');
  100.                                         xbits++;
  101.                                         LCD_SetCurser(1,0xc6 + zbits + xbits);
  102.                                         dotFlag = 1;
  103.                                 }
  104.                         }
  105.                         else if ((zbits <= 1) || (dotFlag && (xbits <= 2)))
  106.                         {
  107.                                 LCD_WrCMD(0xc6 + zbits + xbits);
  108.                                 LCD_SetCurser(1,0xc6 + zbits + xbits);
  109.                                 switch (key)
  110.                                 {
  111.                                         case 4:
  112.                                                 LCD_WrDAT('1');
  113.                                                 if (!dotFlag)
  114.                                                 {
  115.                                                         zbits++;
  116.                                                 }
  117.                                                 else
  118.                                                 {
  119.                                                         xbits++;
  120.                                                 }
  121.                                                 UnitPrice = UnitPrice * 10 + 1;
  122.                                         break;
  123.                                         case 8:
  124.                                                 LCD_WrDAT('2');
  125.                                                 if (!dotFlag)
  126.                                                 {
  127.                                                         zbits++;
  128.                                                 }
  129.                                                 else
  130.                                                 {
  131.                                                         xbits++;
  132.                                                 }
  133.                                                 UnitPrice = UnitPrice * 10 + 2;
  134.                                         break;
  135.                                         case 12:
  136.                                                 LCD_WrDAT('3');
  137.                                                 if (!dotFlag)
  138.                                                 {
  139.                                                         zbits++;
  140.                                                 }
  141.                                                 else
  142.                                                 {
  143.                                                         xbits++;
  144.                                                 }
  145.                                                 UnitPrice = UnitPrice * 10 + 3;
  146.                                         break;
  147.                                         case 3:
  148.                                                 LCD_WrDAT('4');
  149.                                                 if (!dotFlag)
  150.                                                 {
  151.                                                         zbits++;
  152.                                                 }
  153.                                                 else
  154.                                                 {
  155.                                                         xbits++;
  156.                                                 }
  157.                                                 UnitPrice = UnitPrice * 10 + 4;
  158.                                         break;
  159.                                         case 7:
  160.                                                 LCD_WrDAT('5');
  161.                                                 if (!dotFlag)
  162.                                                 {
  163.                                                         zbits++;
  164.                                                 }
  165.                                                 else
  166.                                                 {
  167.                                                         xbits++;
  168.                                                 }
  169.                                                 UnitPrice = UnitPrice * 10 + 5;
  170.                                         break;
  171.                                         case 11:
  172.                                                 LCD_WrDAT('6');
  173.                                                 if (!dotFlag)
  174.                                                 {
  175.                                                         zbits++;
  176.                                                 }
  177.                                                 else
  178.                                                 {
  179.                                                         xbits++;
  180.                                                 }
  181.                                                 UnitPrice = UnitPrice * 10 + 6;
  182.                                         break;
  183.                                         case 2:
  184.                                                 LCD_WrDAT('7');
  185.                                                 if (!dotFlag)
  186.                                                 {
  187.                                                         zbits++;
  188.                                                 }
  189.                                                 else
  190.                                                 {
  191.                                                         xbits++;
  192.                                                 }
  193.                                                 UnitPrice = UnitPrice * 10 + 7;
  194.                                         break;
  195.                                         case 6:
  196.                                                 LCD_WrDAT('8');
  197.                                                 if (!dotFlag)
  198.                                                 {
  199.                                                         zbits++;
  200.                                                 }
  201.                                                 else
  202.                                                 {
  203.                                                         xbits++;
  204.                                                 }
  205.                                                 UnitPrice = UnitPrice * 10 + 8;
  206.                                         break;
  207.                                         case 10:
  208.                                                 LCD_WrDAT('9');
  209.                                                 if (!dotFlag)
  210.                                                 {
  211.                                                         zbits++;
  212.                                                 }
  213.                                                 else
  214.                                                 {
  215.                                                         xbits++;
  216.                                                 }
  217.                                                 UnitPrice = UnitPrice * 10 + 9;
  218.                                         break;
  219.                                         case 5:
  220.                                                 LCD_WrDAT('0');
  221.                                                 if (!dotFlag)
  222.                                                 {
  223.                                                         zbits++;
  224.                                                 }
  225.                                                 else
  226.                                                 {
  227.                                                         xbits++;
  228.                                                 }
  229.                                                 UnitPrice = UnitPrice * 10 + 0;
  230.                                         break;
  231.                                         default :
  232.                                         break;
  233.                                 }
  234.                         }
  235.                 }
  236.         }
  237.         LCD_DisStr("Weight:         ",0x80);
  238.         LCD_DisStr("Price:          ",0xc0);
  239.         HX711_UpdateCtrl(1);
  240.         return UnitPrice;
  241. }

  242. void main (void)
  243. {
  244.         unsigned char key;
  245.         double UnitPrice;
  246.         
  247.         LCD_Init();                                                                                                                        //初始化LCD
  248.         LCD_DisStr("Weight:",0x80);                                                
  249.         LCD_DisStr("Price: ",0xc0);
  250.         Key_Init();                                                                                                                        //初始化按鍵
  251.         
  252.         HX711_SetOffSet();                                                                                        //設置ADC零點
  253.         
  254.         HX711_UpdateInit();                                                                                        //開始ADC自動定時轉換
  255.         EA = 1;                                                                                                                                        //開全局中斷
  256.         
  257.         while (1)
  258.         {
  259.                
  260.                 //if (!ModeFlag)                                                                                                //如果為計價模式
  261.                 //{
  262.                         key = KeyBoard_GetVal();                                                //掃描鍵值
  263.                         if (key != 0)                                                                                                //如果有鍵按下
  264.                         {
  265.                                 switch (key)
  266.                                 {
  267.                                         case 1:                                                                                                        //如果按下鍵為'*'鍵
  268.                                                 SetUnitPrice();                                                                //設置單價
  269.                                         break;
  270.                                         default:
  271.                                         break;
  272.                                 }
  273.                         }
  274.                 //}
  275.         }
  276. }

復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:80108 發表于 2015-5-25 22:32 | 只看該作者
非常感激樓主的無私奉獻!努力學習中……
回復

使用道具 舉報

板凳
ID:48140 發表于 2015-6-30 08:23 來自手機 | 只看該作者
非常感謝
回復

使用道具 舉報

地板
ID:85454 發表于 2015-7-12 18:45 | 只看該作者
樓主好人
回復

使用道具 舉報

5#
ID:85454 發表于 2015-7-12 18:45 | 只看該作者
非常感激樓主的無私奉獻!努力學習中……
回復

使用道具 舉報

6#
ID:74370 發表于 2015-8-23 09:13 | 只看該作者
想搞個玩玩,下個學習,謝先!
回復

使用道具 舉報

7#
ID:89642 發表于 2016-1-11 22:18 | 只看該作者
最近需要做一個電子稱 電壓信號轉換數字量哪里明白了   但是數字量轉換成實際重量哪個參數還是不太明白
回復

使用道具 舉報

8#
ID:69254 發表于 2016-1-13 19:11 | 只看該作者
非常感激樓主的無私奉獻!努力學習中……
回復

使用道具 舉報

9#
ID:90992 發表于 2016-1-15 23:32 | 只看該作者
論壇就是好,我們共同分享,一塊進步!贊贊贊!
回復

使用道具 舉報

10#
ID:76097 發表于 2016-6-2 11:30 | 只看該作者
一點小傷 發表于 2016-1-11 22:18
**** 作者被禁止或刪除 內容自動屏蔽 ****

先看看AD轉化的知識吧
回復

使用道具 舉報

11#
ID:352811 發表于 2018-6-16 22:58 | 只看該作者
非常感謝
回復

使用道具 舉報

12#
ID:353790 發表于 2018-6-18 18:32 | 只看該作者
非常感謝
回復

使用道具 舉報

13#
ID:117558 發表于 2018-6-18 19:11 | 只看該作者
非常感激樓主的無私奉獻!努力學習中……
回復

使用道具 舉報

14#
ID:353867 發表于 2018-6-18 21:01 | 只看該作者
謝謝樓主大大
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线三级电影 | 在线免费观看黄色 | 日本免费一区二区三区四区 | 毛片网站在线观看 | 日韩成人免费中文字幕 | 亚洲免费视频播放 | www.一区二区三区 | 精品福利视频一区二区三区 | 正在播放亚洲 | 国产一区2区 | 精品国产色 | 亚洲精品在线播放 | 欧美一区二区在线观看 | 日日操夜夜操天天操 | 成人国产精品视频 | 色爽女 | 欧美一二三 | 欧美一区二区三区小说 | 欧美一区二区三区在线观看 | 欧美一级在线免费观看 | 天天射天天干 | www亚洲精品 | 国产福利精品一区 | 日韩av在线一区 | 成人免费网站 | 久久亚洲精品国产精品紫薇 | 亚洲欧美一区二区三区情侣bbw | 国产欧美久久一区二区三区 | 一区二区三区成人 | 免费激情网站 | 亚洲国产看片 | 97精品久久 | 99色综合 | 亚洲高清在线 | 亚洲精品久久久一区二区三区 | 拍真实国产伦偷精品 | 亚洲一区二区av | 国产精品区二区三区日本 | 日日爽 | 日韩中文字幕 | 国产一区二区三区欧美 |