找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3245|回复: 2
收起左侧

基于C8051F410的电子秤设计(带组态王上位机)含源码与原理图

[复制链接]
ID:136947 发表于 2018-5-19 11:02 | 显示全部楼层 |阅读模式
介绍了基于C8051F410的电子秤设计,包含原理图及上位机(组态王)部分。

Altium Designer画的原理图如下:(51hei附件中可下载工程文件)
0.png 0.png

单片机主函数源程序如下:
  1. #include"COM_WEIGHT.h"
  2. sbit key1 = P1^4;
  3. xdata union{float F[16];long L[16];int I[32];char R[64];}A_DAT;   //数据联合体
  4. /*********************************全局变量***************************************/
  5. float A,C;
  6. unsigned int i;
  7. /*********************************码值20次采样****************************************/
  8. void cs1238_average()
  9. {
  10.         for(i=0;i<=19;i++)
  11.         {        
  12.                 cs1238();
  13.                 C=((Weight_A-Weight_Z)/1.0/Weight_K);
  14.                 A = C + A;         
  15.         }
  16. }
  17. void Delay1(unsigned int z)
  18.         {
  19.         for(z;z>0;z--);
  20.         }
  21. //长延时函数
  22. /*
  23. void Delay2(unsigned int z)
  24.         {
  25.         for(z;z>0;z--)
  26.                 {
  27.                 Delay1(60000);
  28.                 }
  29.         }
  30.         */
  31. /*************************************************************************/
  32. //联合体变量初始化函数
  33. void  A_DAT_INIT()
  34. {
  35. Stand_No =1;
  36. Weight_A =0;         
  37. Weight_B=0;                                             //重量
  38. Weight_K  =        128.38887666555;                                 //转换斜率
  39. Weight_Z = 0;                                         //0点码值                        
  40. Weight_peel = 0;                                 //去皮重量
  41. Weight_per = 0;                                     //单价
  42. Weight_total = 0;                                 //总价
  43. }
  44. /*************************************************************************/
  45. void main ()
  46. {

  47. Init_Device();
  48. rx_start();
  49. A_DAT_INIT();
  50. LCD_Init();
  51. CS1238_WR_CONFIG(0x0c);                                    //AD初始化
  52. cs1238();
  53. Weight_Z = Weight_A;
  54. LCD_Write_String(0,1,"Weight:");
  55. LCD_Write_String(10,1,"G");
  56. LCD_Write_String(0,0,"AD_CODE:");

  57. while (1)
  58.         {
  59.         A = 0;
  60. //        if(Weight_B >= 5000)
  61. //        {
  62. //                Weight_B = 5005;
  63. //        }
  64.         cs1238_average();
  65.         Weight_B=(A/20*10) - Weight_peel*10;
  66. //        if(Weight_B >= 5000)
  67. //        {
  68. //                Weight_B = 5004;
  69. //        }
  70. ……………………

  71. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

weight为上位机程序及画面,最终版为下位机程序,weight_1为原理图。

weight为上位机程序及画面,最终版为下位机程序,weight_1为原理图。

所有资料51hei提供下载:
电子秤.rar (270.84 KB, 下载次数: 108)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:64765 发表于 2019-11-13 11:02 | 显示全部楼层
好资料,学习。谢谢分享。
回复

使用道具 举报

ID:255132 发表于 2020-3-24 09:22 | 显示全部楼层
好资料
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表