芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片复制STC89C52制作的“锂电池容量检测器”

  1. 芯片复制/**********************************************
  2. * 功能:LED显示锂电池容量检测
  3. * 芯片复制编程:ztzp
  4. * P0        段码控制
  5. * P2        位码控制
  6. * P1        5位拨码开关,决定放电电流。
  7. **********************************************/
  8. #include <reg52.h>

  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. #define ulong unsigned long

  12. sfr T2MOD = 0xC9;        //使用定时器2必须定义,T2MOD的地址。
  13. float Iout;                //放电电流,与预设值相关。
  14. float Sum;                //放电量累加值
  15. ulong S;                //放电量四舍五入后转换为整数
  16. uchar S1;                //第一位
  17. uchar S2;                //第二位
  18. uchar S3;                //第三位
  19. uint i;                        //1秒钟计时变量
  20. uint State = 0;        //计数状态,0开始计数;1停止计数。此值由外部中断0控制。

  21. sbit LED_R = P3^6;        //红色LED,表示正在放电,低电平有效。
  22. sbit LED_G = P3^7;        //绿色LED,表示停止放电,低电平有效。

  23. void init();                //系统初始化
  24. void init_int0();        //外部中断初始化
  25. void init_Time2();        //定时器2初始化
  26. void Show();                //LED数码管显示放电量

  27. //共阳LED数码管位码(从左到右:1、2、3、4、5、6、7、8)
  28. //用PNP管驱动
  29. code uchar WEI_CODE [] =
  30. {
  31.         0xFE,                //1          11111110
  32.         0xFD,                //2          11111101
  33.         0xFB,                //3          11111011
  34.         0xF7,                //4          11110111
  35.         0xEF,                //5          11101111
  36.         0xDF,                //6          11011111
  37.         0xBF,                //7          10111111
  38.         0x7F                //8   01111111
  39. };

  40. //共阳LED数码管段码(带小数点)
  41. code uchar DSY_CODE [] =
  42. {
  43.         0x40,                //0
  44.         0x79,                //1
  45.         0x24,                //2
  46.         0x30,                //3
  47.         0x19,                //4
  48.         0x12,                //5
  49.         0x02,                //6
  50.         0x78,                //7
  51.         0x00,                //8
  52.         0x10                //9
  53. };

  54. // 延时 xms(晶振:11.0592MHz,)
  55. void DelayMS(uint x)
  56. {
  57.         uchar i;
  58.         while( x-- )
  59.         {
  60.                 for( i=0; i<111; i++ );
  61.         }
  62. }

  63. //主程序
  64. void main()
  65. {
  66.         init();                        //系统初始化
  67.         init_int0();        //外部中断初始化
  68.         init_Time2();        //定时器2初始化
  69.         while(1)
  70.         {
  71.                 Show();                //显示
  72.         }
  73. }

  74. //LED数码管显示放电量(从左到右)
  75. void Show()
  76. {
  77.         //第1位
  78.         S = Sum + 0.5;        //四舍五入
  79.         S1 = S/10000000;
  80.         if (S1 != 0)
  81.         {
  82.                 P2 = WEI_CODE[0];
  83.                 P0 = DSY_CODE[S1] + 0x80;        //无小数点
  84.                 DelayMS(1);
  85.                 P2 = 0xFF;
  86.                 P0 = 0xFF;
  87.                 DelayMS(1);
  88.         }

  89.         //第2位
  90.         S = Sum + 0.5;
  91.         S2 = S%10000000/1000000;
  92.         if (S2 != 0 || S1 != 0)                //当第一位不等于0时,第二位必须显示
  93.         {
  94.                 P2 = WEI_CODE[1];
  95.                 P0 = DSY_CODE[S2] + 0x80;
  96.                 DelayMS(1);
  97.                 P2 = 0xFF;
  98.                 P0 = 0xFF;
  99.                 DelayMS(1);
  100.         }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信