找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6431|回复: 6
打印 上一主题 下一主题
收起左侧

STC12C5A60S2单片机18650充电便携式电压电流功率表程序原理图PCB LCD1602显示屏

  [复制链接]
跳转到指定楼层
楼主
STc-12C5A60S2-LCD1602显示屏-18650充电便携式电压电流功率表

制作出来的实物图如下:


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


单片机汇编语言源程序如下:
  1.         ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  2.         ;字节地址分配
  3.         ;0C\0D\0E\4位分别对应电流的3位由高位到底位
  4.         ;10H,11H,12H对应电压的3个数值
  5.         ;13H,14H,15H,16H,17H对应功率的5个数值
  6.         ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  7.         P1ASF        EQU        9DH        ;P1口设置寄存器
  8.         ADC_CONTOR        EQU        BCH        ;ADC控制寄存器
  9.         ADC_RES        EQU        BDH        ;ADC输出高8位
  10.         ADC_RESL        EQU        BEH        ;ADC低8为输出
  11.         AUXR1        EQU        A2H        ;设置寄存器
  12.         IJISHU        EQU        30H        ;电流比较次数计数
  13.         UJISHU        EQU        31H        ;电压比较次数计数
  14.         IL        EQU        32H        ;电流低位
  15.         IH        EQU        33H        ;电流高位
  16.         UL        EQU        34H        ;电压低位
  17.         UH        EQU        35H        ;电压高位
  18.         RS        BIT        P2.5        ;定义RS为P2.5
  19.         RW        BIT        P2.6        ;定义RW为P2.6
  20.         E        BIT        P2.7        ;定义E为P2.7
  21.         ORG        0000H
  22.         LJMP        START
  23.         ORG        002BH
  24. START:        MOV        P1ASF,#00000011B        ;开启P1.0和P1.1作为AD的输入端口
  25.         MOV        AUXR1,#04H        ;设置AD输出方式
  26.         MOV        SP,#5FH        ;设置栈底
  27.         MOV        IJISHU,#00H
  28.         MOV        UJISHU,#00H
  29.         ;×××××××××××××××××××××××××
  30. LCD:        MOV        P0,#38H        ;设置功能
  31.         LCALL        XML
  32.         MOV        P0,#38H        ;设置功能
  33.         LCALL        XML
  34.         MOV        P0,#01H        ;清除屏幕
  35.         LCALL        XML
  36.         MOV        P0,#0CH        ;设置显示屏开,光标关
  37.         LCALL        XML
  38.         MOV        P0,#1CH        ;设置
  39.         LCALL        XML
  40.         ;×××××××××××××××××××××××××××
  41.         ;主程序
  42.         ;--------------------------------------------------------------------------------------------------
  43. MAIN:        MOV        ADC_CONTOR,#11001001B        ;开启P1.1的AD转换,电流
  44.         LCALL        AD        ;调用AD子程序
  45.         MOV        A,ADC_RES
  46.         CJNE        A,IH,MAINI
  47.         MOV        A,ADC_RESL
  48.         CJNE        A,IL,MAINI
  49.         MOV        IJISHU,#00H
  50.         SJMP        MAINI1
  51. MAINI:        INC        IJISHU
  52.         MOV        A,#20
  53.         CJNE        A,IJISHU,MAINI1
  54.         MOV        IJISHU,#00H
  55.         MOV        IH,ADC_RES        ;保存电流数据
  56.         MOV        IL,ADC_RESL
  57. MAINI1:        MOV        0AH,IH
  58.         MOV        0BH,IL
  59.         LCALL        2TO10
  60.         MOV        0CH,18H
  61.         MOV        0DH,19H
  62.         MOV        0EH,1AH
  63.         MOV        A,0AH
  64.         RRC        A
  65.         MOV        0AH,A
  66.         MOV        A,0BH
  67.         RRC        A
  68.         MOV        0BH,A
  69.         MOV        A,0AH
  70.         RRC        A
  71.         MOV        A,0BH
  72.         RRC        A
  73.         MOV        09H,A        ;09H保存8位电流数据
  74.         MOV        ADC_CONTOR,#11001000B        ;开启P1.0的AD转换        电压
  75.         LCALL        AD        ;调用AD子程序
  76.         MOV        A,ADC_RES
  77.         CJNE        A,UH,MAINU
  78.         MOV        A,ADC_RESL
  79.         CJNE        A,UL,MAINU
  80.         MOV        UJISHU,#00H
  81.         SJMP        MAINU1
  82. MAINU:        INC        UJISHU
  83.         MOV        A,#20
  84.         CJNE        A,UJISHU,MAINU1
  85.         MOV        UJISHU,#00H
  86.         MOV        UH,ADC_RES        ;保存电压数据
  87.         MOV        UL,ADC_RESL
  88. MAINU1:        MOV        0AH,UH
  89.         MOV        0BH,UL
  90.         LCALL        2TO10
  91.         MOV        10H,18H
  92.         MOV        11H,19H
  93.         MOV        12H,1AH
  94.         MOV        A,0AH
  95.         RRC        A
  96.         MOV        0AH,A
  97.         MOV        A,0BH
  98.         RRC        A
  99.         MOV        0BH,A
  100.         MOV        A,0AH
  101.         RRC        A
  102.         MOV        A,0BH
  103.         RRC        A
  104.         MOV        08H,A        ;08H保存8位电压数据
  105.         MOV        B,09H
  106.         MUL        AB
  107.         MOV        R2,B
  108.         MOV        R3,A
  109.         MOV        R4,#61H        ;/25000
  110.         MOV        R5,#A8H
  111.         LCALL        DIVD
  112.         MOV        A,R7
  113.         ADD        A,#30H
  114.         MOV        13H,A
  115.         MOV        R4,#09H
  116.         MOV        R5,#C4H        ;/2500
  117.         LCALL        DIVD
  118.         MOV        A,R7
  119.         ADD        A,#30H
  120.         MOV        14H,A
  121.         MOV        R4,#00H
  122.         MOV        R5,#250        ;/250
  123.         LCALL        DIVD
  124.         MOV        A,R7
  125.         ADD        A,#30H
  126.         MOV        15H,A
  127.         MOV        R4,#00H
  128.         MOV        R5,#25        ;/25
  129.         LCALL        DIVD
  130.         MOV        A,R7
  131.         ADD        A,#30H
  132.         MOV        16H,A
  133.         MOV        A,R3
  134.         CLR        C
  135.         RLC        A
  136.         CLR        C
  137.         RLC        A
  138.         MOV        R3,A
  139.         MOV        R5,#10
  140.         LCALL        DIVD
  141.         MOV        A,R7
  142.         ADD        A,#30H
  143.         MOV        17H,A
  144.         LCALL        XIANSHI
  145.         LJMP        MAIN
  146.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  147.         ;AD转换子程序
  148.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  149. AD:        MOV        A,ADC_CONTOR
  150.         JNB        E4H,AD
  151.         CLR        E4H
  152.         MOV        ADC_CONTOR,A
  153.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  154.         ;二-十进制转换子程序,同时加便宜量完成1602的0-9字模地址的转换        输出结果18H        19H        1AH
  155.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  156. 2TO10:        MOV        R2,0AH
  157.         MOV        R3,0BH
  158.         MOV        R4,#0
  159.         MOV        R5,#2
  160.         LCALL        DIVD
  161.         MOV        A,R6
  162.         MOV        R2,A
  163.         MOV        A,R7
  164.         MOV        R3,A
  165.         MOV        R4,#00H
  166.         MOV        R5,#100
  167.         LCALL        DIVD
  168.         MOV        18H,R7
  169.         MOV        A,#30H
  170.         ADD        A,18H
  171.         MOV        18H,A
  172.         MOV        R5,#10
  173.         LCALL        DIVD
  174.         MOV        19H,R7
  175.         MOV        A,#30H
  176.         ADD        A,19H
  177.         MOV        19H,A
  178.         MOV        1AH,R3
  179.         MOV        A,#30H
  180.         ADD        A,1AH
  181.         MOV        1AH,A
  182.         RET
  183.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××
  184.         ;双字节除法运算子程序
  185.         ;入口条件:        被除数在R2、R3、除数在R4、R5中,商在R6、R7中。R1用于计数位移量
  186.         ;出口信息:        余数在R2、R3中,双字节商在R4、R5中,OV=1        时溢出。
  187.         ;影响资源:        PSW、A、R1~R7
  188.         ;××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  189. DIVD:        PUSH        A
  190.         PUSH        PSW
  191.         MOV        R1,#00H        ;计数器清零
  192.         MOV        R6,#00H
  193.         MOV        R7,#00H
  194.         LCALL        SUBBD        ;判断够不够减
  195.         JC        DIVDE
  196. DIVD1:        MOV        A,R4
  197.         JB        ACC.7,DIVD3        ;判断最高位是不是1
  198.         CLR        C        ;除数左移一位
  199.         MOV        A,R5        
  200.         RLC        A
  201.         MOV        R5,A
  202.         MOV        A,R4
  203.         RLC        A
  204.         MOV        R4,A
  205.         INC        R1        ;左移计数器计数
  206.         LCALL        SUBBD        ;比较左移后够不够减
  207.         JNC        DIVD1        ;够减转移,不够减继续
  208.         LCALL        DIVDR        ;除数右移一位
  209.         DEC        R1        ;右移了,所以要-1
  210. DIVD3:        CLR        C
  211.         MOV        A,R3        ;开始减法
  212.         SUBB        A,R5
  213.         MOV        R3,A
  214.         MOV        A,R2
  215.         SUBB        A,R4
  216.         MOV        R2,A
  217.         INC        R7
  218. DIVD4:        CJNE        R1,#00H,DIVD5        ;判断是不是到最后一位了
  219.         SJMP        DIVDE
  220. DIVD5:        LCALL        DIVDR        ;除数右移一位
  221.         MOV        A,R7
  222.         CLR        C
  223.         RLC        A
  224.         MOV        R7,A
  225.         MOV        A,R6
  226.         RLC        A
  227.         MOV        R6,A
  228.         DEC        R1        ;位置计数器-1
  229.         LCALL        SUBBD        ;比较够不够减
  230.         JC        DIVD4
  231.         SJMP        DIVD3
  232. SUBBD:        CLR        C        ;判断够不够减子程序
  233.         MOV        A,R3
  234.         SUBB        A,R5
  235.         MOV        A,R2
  236.         SUBB        A,R4
  237.         RET
  238. DIVDR:        CLR        C
  239.         MOV        A,R4
  240.         RRC        A
  241.         MOV        R4,A
  242.         MOV        A,R5
  243.         RRC        A
  244.         MOV        R5,A
  245.         RET
  246. DIVDE:        SETB        OV
  247.         POP        PSW
  248.         POP        A
  249.         RET
  250.         ;××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  251.         ;显示驱动
  252.         ;××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  253. XIANSHI:        MOV        P0,#80H        
  254.         LCALL        XML
  255.         MOV        P0,#55H        ;电压部分(10H,11H,12H为电压的三位数值)
  256.         LCALL        XSJ
  257.         MOV        P0,#3DH
  258.         LCALL        XSJ
  259.         MOV        A,#30H
  260.         CJNE        A,10H,DYXY
  261.         MOV        P0,#20H
  262.         SJMP        DYXY1
  263. DYXY:        MOV        P0,10H        ;电压最高位显示0时消隐
  264. DYXY1:        LCALL        XSJ
  265.         MOV        P0,11H
  266.         LCALL        XSJ
  267.         MOV        P0,#2EH
  268.         LCALL        XSJ
  269.         MOV        P0,12H
  270.         LCALL        XSJ
  271.         MOV        P0,#76H
  272.         LCALL        XSJ
  273.         MOV        P0,#20H        ;电流部分(0CH,0DH,0EH对应电流的3个数值)
  274. ……………………

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

IMG_20210201_105716.jpg (1.97 MB, 下载次数: 78)

资料

资料

图片一张.png (26.66 KB, 下载次数: 78)

资料

资料

原理图.png (28.52 KB, 下载次数: 57)

资料

资料

P60F[[0H1@8[$OUU3VYT5OK.png (11.1 KB, 下载次数: 67)

资料

资料

STU-12C5A60S2-LCD1602显示屏-18650充电便携式电压电流功率表.zip

5.55 MB, 下载次数: 131, 下载积分: 黑币 -5

资料

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏14 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:89072 发表于 2021-2-1 16:37 | 只看该作者
制作的很不错,谢谢楼主分享资料
回复

使用道具 举报

板凳
ID:23844 发表于 2021-2-1 20:26 | 只看该作者
又一汇编高手,谢谢分享
回复

使用道具 举报

地板
ID:538487 发表于 2021-2-2 10:32 | 只看该作者
我去,汇编写的,大神啊
回复

使用道具 举报

5#
ID:675767 发表于 2021-2-5 23:15 来自手机 | 只看该作者
汇编大佬
回复

使用道具 举报

6#
ID:880987 发表于 2021-2-6 09:28 | 只看该作者
汇编语言看不懂,不过楼主的设计能小型化就离商用不远了
回复

使用道具 举报

7#
ID:951974 发表于 2022-12-12 21:06 | 只看该作者

又一汇编高手,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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