欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于TLC2543的電子稱仿真設計 含單片機源碼

[復制鏈接]
跳轉到指定樓層
樓主
用51單片機和tlc2543實現電子稱的功能仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


附上c代碼
單片機源程序如下:
  1. #include "reg51.h"
  2. #include "TLC2543.h"
  3. #include "LCD_1602.h"

  4. #define D 1        //按鍵消抖延時
  5. #define RATE 0.2442 //AD采樣值與實際質量換算比率
  6. #define MAX 99        //單價上限值

  7. void InqInit(void);        //初始化外部中斷0

  8. void DisplayWeight(uchar x, uchar y, uint weight, uint useless);        //顯示凈重量
  9. void DisplayAD(uchar x, uchar y, uint ad);        //顯示AD采樣值
  10. void DisplayPrice(uchar x, uchar y, uint price);        //顯示單價
  11. void DisplayTotal(uchar x, uchar y, uint price, uint weight, uint useless);        //顯示總金額

  12. volatile uint weight = 0;        //重量
  13. volatile uint useless = 0;        //皮重(去皮量)

  14. volatile bit startconversion = 1;        //count計時啟動停止控制變量

  15. uchar channl = 0x00;        //通道選擇

  16. void main(void)
  17. {
  18.         uint count = 0;        //控制轉換速度
  19.         LCD_Init();        //初始化LCD1602
  20.         ADCInit();        //初始化TLC2543
  21.         StartConversion(channl);        //手動開啟一次轉換,選擇通道0
  22.         while(1)
  23.         {
  24.                 if(startconversion)
  25.                         count++;
  26.                 if(count > 500)
  27.                 {
  28.                         count = 0;
  29.                         weight = StartConversion(channl);        //讀取采樣值,開啟下一次轉換
  30.                         DisplayWeight(0,0,weight,useless);        //顯示凈重量
  31.                         DisplayAD(9,0,weight);        //顯示AD采樣值
  32.                 }
  33.         }
  34. }
  35. void DisplayWeight(uchar x, uchar y, uint weight, uint useless)        //顯示凈重量
  36. {
  37.         static bit flag = 1;        //框架顯示次數控制
  38.         if(flag)
  39.         {
  40.                 Write_String(x,y,"W:     g");        //顯示“WT:    g”
  41.                 flag = 0;
  42.         }
  43.         if(weight >= useless)
  44.         {
  45.                 Write_Char(x+2,y,' ');        //清除負號
  46.                 weight -= useless;        //計算凈重
  47.         }
  48.         else
  49.         {
  50.                 Write_Char(x+2,y,'-');        //顯示負號
  51.                 weight = useless - weight;
  52.         }
  53.         weight = weight * RATE + 0.5;        //將AD采樣值轉換為對應質量
  54.        
  55.         Write_Char(x+3,y,weight / 1000 + 48);
  56.         Write_Char(x+4,y,weight % 1000 / 100 + 48);
  57.         Write_Char(x+5,y,weight % 100 / 10 + 48);
  58.         Write_Char(x+6,y,weight % 10 + 48);
  59. }


  60. void DisplayAD(uchar x, uchar y, uint ad)        //顯示AD采樣值
  61. {
  62.         static bit flag = 1;        //框架顯示次數控制
  63.         if(flag)
  64. ……………………

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

所有資料51hei提供下載:
電子秤.rar (96.99 KB, 下載次數: 54)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表