找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stc单片机电压电流表制作 含源程序与原理图 有实物

  [复制链接]
跳转到指定楼层
楼主
分享一个stc12c5a16s2单片机电压电流表,含有原理图和程序,有需要的自己下载参考。

单片机电压电流表的实物图:

原理图:


电压电流表的汇编语言源程序:
  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.         

  222. …………余下代码请下载附件…………

复制代码


所有资料下载:
108_1316154_e5898954f06cb7b.zip (519.24 KB, 下载次数: 432)

评分

参与人数 6黑币 +133 收起 理由
BigWheels + 12
新乡家电维修 + 5 绝世好帖!
vvv64 + 5
qjzyx + 6 赞一个!
xichang + 5
admin + 100 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:168529 发表于 2017-3-6 14:20 | 只看该作者
ZIJIIZz自己占沙发,自己顶一下
回复

使用道具 举报

板凳
ID:151348 发表于 2017-3-7 09:04 | 只看该作者
板子做得挺漂亮,就是不懂汇编啊。。。。。。
回复

使用道具 举报

地板
ID:198161 发表于 2017-5-8 15:23 | 只看该作者
汇编不懂~~ 赞一个~~ 这个精度可以达到多少呢?
回复

使用道具 举报

5#
ID:134271 发表于 2017-5-28 08:43 | 只看该作者
谢谢分享。可惜是汇编。
回复

使用道具 举报

6#
ID:195950 发表于 2017-6-2 10:53 来自手机 | 只看该作者
能改成C么??
回复

使用道具 举报

7#
ID:200118 发表于 2017-6-9 21:58 | 只看该作者
谢谢分享
回复

使用道具 举报

8#
ID:159139 发表于 2017-6-10 10:52 来自手机 | 只看该作者
很喜欢的东东,唉!可惜不懂汇编。
回复

使用道具 举报

9#
ID:215064 发表于 2017-7-24 15:54 | 只看该作者
貌似有数控电源的的功能,好像原理图没有给全。希望有高手能完善一下。
回复

使用道具 举报

10#
ID:215064 发表于 2017-7-24 16:06 | 只看该作者
貌似有数控电源的的功能,好像原理图没有给全。希望有高手能完善一下。

51AD1.jpg (107.88 KB, 下载次数: 156)

51AD1.jpg
回复

使用道具 举报

11#
ID:227784 发表于 2017-8-27 17:04 来自手机 | 只看该作者
怎么没ad转换?
回复

使用道具 举报

12#
ID:187478 发表于 2017-8-28 15:09 | 只看该作者

他是采用单片机内部自带的AD采集,而且从原理图可以看出,他只有采集直流电压的功能
回复

使用道具 举报

13#
ID:187478 发表于 2017-8-28 15:23 | 只看该作者
请问:你的被测直流电压范围多少?电压采集的那个原理我没看太懂,可以讲述下吗?你这个只能采集直流吧?
回复

使用道具 举报

14#
ID:187478 发表于 2017-8-28 15:29 | 只看该作者
感觉这个是采用电阻分压形式,只用了个200K电阻进行分压采集,调节电阻可以改变测量范围,但是LM358这个我没看太懂,是用来隔离前后两级的?感觉是测量精度会很差,而且只能测量直流
回复

使用道具 举报

15#
ID:235062 发表于 2017-9-23 11:26 | 只看该作者
学习学习
回复

使用道具 举报

16#
ID:142383 发表于 2017-9-25 20:46 | 只看该作者
练氏 发表于 2017-8-28 15:29
感觉这个是采用电阻分压形式,只用了个200K电阻进行分压采集,调节电阻可以改变测量范围,但是LM358这个我 ...

LM358应该是放大电流取样信号的,然后送到单片机IO口进行AD转换,从而得到电流值。
回复

使用道具 举报

17#
ID:142790 发表于 2017-9-26 10:36 | 只看该作者
学习。学习 拿来学习。
回复

使用道具 举报

18#
ID:266758 发表于 2017-12-25 20:53 | 只看该作者
不错,正是我需要的
回复

使用道具 举报

19#
ID:72624 发表于 2018-2-21 17:27 | 只看该作者
Zhyy007 发表于 2017-3-6 14:20
**** 作者被禁止或删除 内容自动屏蔽 ****

电路图提供不完整呢
回复

使用道具 举报

20#
ID:163501 发表于 2018-2-23 10:16 | 只看该作者
这种用单片机内的AD转换功能做表头,思路是好的, 只可惜,只有10位,也就是只能精确到1/1024,做电压表还可以,做电流表就显得有点不够了。
回复

使用道具 举报

21#
ID:250182 发表于 2018-2-23 14:52 | 只看该作者
正是我需要的,谢谢
回复

使用道具 举报

22#
ID:266116 发表于 2018-2-23 15:15 | 只看该作者
做得很好看,收藏学习,谢谢!
回复

使用道具 举报

23#
ID:286600 发表于 2018-3-6 14:58 | 只看该作者
汇编的[双字节除法运算子程序] 值得参考
回复

使用道具 举报

24#
ID:7503 发表于 2018-3-8 08:10 | 只看该作者
学习学习,正需要
回复

使用道具 举报

25#
ID:124995 发表于 2018-3-27 20:47 | 只看该作者
不错不错
回复

使用道具 举报

26#
ID:303099 发表于 2018-4-8 10:48 | 只看该作者
学习了,感谢楼主分享
回复

使用道具 举报

27#
ID:303954 发表于 2018-4-8 20:32 | 只看该作者
谢谢楼主 学习学习一下
回复

使用道具 举报

28#
ID:57366 发表于 2018-4-9 17:54 | 只看该作者
想要增加一个431基准。有懂的大神指点一下么。
回复

使用道具 举报

29#
ID:289512 发表于 2018-4-19 15:56 | 只看该作者
好好学习,天天向上。。。。
回复

使用道具 举报

30#
ID:58625 发表于 2018-5-31 11:07 | 只看该作者
学习下交流下
回复

使用道具 举报

31#
ID:337280 发表于 2018-7-20 09:31 | 只看该作者
汇编  看不懂   
回复

使用道具 举报

32#
ID:32574 发表于 2018-9-28 17:21 | 只看该作者
谢谢楼主无私分享,学习一下
回复

使用道具 举报

33#
ID:194903 发表于 2018-9-28 19:49 | 只看该作者
支持啊~~~!!!
回复

使用道具 举报

34#
ID:239055 发表于 2018-10-8 07:52 来自手机 | 只看该作者
这电压电流量程是多少?精度怎么样?
回复

使用道具 举报

35#
ID:407175 发表于 2018-10-9 18:56 | 只看该作者
没错,使用单片机自带的AD转换,其精度比较差了。作为参考还是可以的。
回复

使用道具 举报

36#
ID:186637 发表于 2018-10-19 21:46 | 只看该作者
谢谢分享!学习学习!
回复

使用道具 举报

37#
ID:72088 发表于 2018-10-26 08:36 | 只看该作者
       ;AD转换子程序
AD:    MOV        A,ADC_CONTOR
        JNB        E4H,AD
        CLR        E4H
这里E4H是位操作,到底是哪一位???
转换结束标志位吗?ADC_FLAG
不懂啊
回复

使用道具 举报

38#
ID:76408 发表于 2019-3-7 10:57 | 只看该作者
楼主辛苦了我收藏了
回复

使用道具 举报

39#
ID:63317 发表于 2019-3-8 08:00 | 只看该作者
谢谢分享资料
回复

使用道具 举报

40#
ID:499770 发表于 2019-3-28 11:47 | 只看该作者
谢谢分享。可惜是汇编
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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