標題: stc單片機電壓電流表制作 含源程序與原理圖 有實物 [打印本頁]

作者: Zhyy007    時間: 2017-3-6 14:03
標題: stc單片機電壓電流表制作 含源程序與原理圖 有實物
分享一個stc12c5a16s2單片機電壓電流表,含有原理圖和程序,有需要的自己下載參考。

單片機電壓電流表的實物圖:

原理圖:


電壓電流表的匯編語言源程序:
  1.         ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  2.         ;字節(jié)地址分配
  3.         ;0C\0D\0E\4位分別對應(yīng)電流的3位由高位到底位
  4.         ;10H,11H,12H對應(yīng)電壓的3個數(shù)值
  5.         ;13H,14H,15H,16H,17H對應(yīng)功率的5個數(shù)值
  6.         ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  7.         P1ASF        EQU        9DH        ;P1口設(shè)置寄存器
  8.         ADC_CONTOR        EQU        BCH        ;ADC控制寄存器
  9.         ADC_RES        EQU        BDH        ;ADC輸出高8位
  10.         ADC_RESL        EQU        BEH        ;ADC低8為輸出
  11.         AUXR1        EQU        A2H        ;設(shè)置寄存器
  12.         IJISHU        EQU        30H        ;電流比較次數(shù)計數(shù)
  13.         UJISHU        EQU        31H        ;電壓比較次數(shù)計數(shù)
  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        ;設(shè)置AD輸出方式
  26.         MOV        SP,#5FH        ;設(shè)置棧底
  27.         MOV        IJISHU,#00H
  28.         MOV        UJISHU,#00H
  29.         ;×××××××××××××××××××××××××
  30. LCD:        MOV        P0,#38H        ;設(shè)置功能
  31.         LCALL        XML
  32.         MOV        P0,#38H        ;設(shè)置功能
  33.         LCALL        XML
  34.         MOV        P0,#01H        ;清除屏幕
  35.         LCALL        XML
  36.         MOV        P0,#0CH        ;設(shè)置顯示屏開,光標關(guān)
  37.         LCALL        XML
  38.         MOV        P0,#1CH        ;設(shè)置
  39.         LCALL        XML
  40.         ;×××××××××××××××××××××××××××
  41.         ;主程序
  42.         ;--------------------------------------------------------------------------------------------------
  43. MAIN:        MOV        ADC_CONTOR,#11001001B        ;開啟P1.1的AD轉(zhuǎn)換,電流
  44.         LCALL        AD        ;調(diào)用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        ;保存電流數(shù)據(jù)
  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位電流數(shù)據(jù)
  74.         MOV        ADC_CONTOR,#11001000B        ;開啟P1.0的AD轉(zhuǎn)換        電壓
  75.         LCALL        AD        ;調(diào)用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        ;保存電壓數(shù)據(jù)
  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位電壓數(shù)據(jù)
  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轉(zhuǎn)換子程序
  148.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  149. AD:        MOV        A,ADC_CONTOR
  150.         JNB        E4H,AD
  151.         CLR        E4H
  152.         MOV        ADC_CONTOR,A
  153.         ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  154.         ;二-十進制轉(zhuǎn)換子程序,同時加便宜量完成1602的0-9字模地址的轉(zhuǎn)換        輸出結(jié)果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.         ;雙字節(jié)除法運算子程序
  185.         ;入口條件:        被除數(shù)在R2、R3、除數(shù)在R4、R5中,商在R6、R7中。R1用于計數(shù)位移量
  186.         ;出口信息:        余數(shù)在R2、R3中,雙字節(jié)商在R4、R5中,OV=1        時溢出。
  187.         ;影響資源:        PSW、A、R1~R7
  188.         ;××××××××××××××××××××××××××××××××××××××××××××××××××××××××
  189. DIVD:        PUSH        A
  190.         PUSH        PSW
  191.         MOV        R1,#00H        ;計數(shù)器清零
  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        ;除數(shù)左移一位
  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        ;左移計數(shù)器計數(shù)
  206.         LCALL        SUBBD        ;比較左移后夠不夠減
  207.         JNC        DIVD1        ;夠減轉(zhuǎn)移,不夠減繼續(xù)
  208.         LCALL        DIVDR        ;除數(shù)右移一位
  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        ;除數(shù)右移一位
  221.         

  222. …………余下代碼請下載附件…………

復制代碼


所有資料下載:
108_1316154_e5898954f06cb7b.zip (519.24 KB, 下載次數(shù): 441)

作者: Zhyy007    時間: 2017-3-6 14:20
ZIJIIZz自己占沙發(fā),自己頂一下
作者: imxuheng    時間: 2017-3-7 09:04
板子做得挺漂亮,就是不懂匯編啊。。。。。。
作者: yuki_ring    時間: 2017-5-8 15:23
匯編不懂~~ 贊一個~~ 這個精度可以達到多少呢?
作者: pangjineng    時間: 2017-5-28 08:43
謝謝分享?上菂R編。
作者: 人工智能威力    時間: 2017-6-2 10:53
能改成C么??
作者: XDDZ1013    時間: 2017-6-9 21:58
謝謝分享
作者: 3760609865    時間: 2017-6-10 10:52
很喜歡的東東,唉!可惜不懂匯編。
作者: 小城故事810    時間: 2017-7-24 15:54
貌似有數(shù)控電源的的功能,好像原理圖沒有給全。希望有高手能完善一下。
作者: 小城故事810    時間: 2017-7-24 16:06
貌似有數(shù)控電源的的功能,好像原理圖沒有給全。希望有高手能完善一下。

51AD1.jpg (107.88 KB, 下載次數(shù): 205)

51AD1.jpg

作者: 15393729688    時間: 2017-8-27 17:04
怎么沒ad轉(zhuǎn)換?
作者: 練氏    時間: 2017-8-28 15:09
15393729688 發(fā)表于 2017-8-27 17:04
怎么沒ad轉(zhuǎn)換?

他是采用單片機內(nèi)部自帶的AD采集,而且從原理圖可以看出,他只有采集直流電壓的功能
作者: 練氏    時間: 2017-8-28 15:23
請問:你的被測直流電壓范圍多少?電壓采集的那個原理我沒看太懂,可以講述下嗎?你這個只能采集直流吧?
作者: 練氏    時間: 2017-8-28 15:29
感覺這個是采用電阻分壓形式,只用了個200K電阻進行分壓采集,調(diào)節(jié)電阻可以改變測量范圍,但是LM358這個我沒看太懂,是用來隔離前后兩級的?感覺是測量精度會很差,而且只能測量直流
作者: lbq666    時間: 2017-9-23 11:26
學習學習
作者: htzsz    時間: 2017-9-25 20:46
練氏 發(fā)表于 2017-8-28 15:29
感覺這個是采用電阻分壓形式,只用了個200K電阻進行分壓采集,調(diào)節(jié)電阻可以改變測量范圍,但是LM358這個我 ...

LM358應(yīng)該是放大電流取樣信號的,然后送到單片機IO口進行AD轉(zhuǎn)換,從而得到電流值。
作者: zhangda    時間: 2017-9-26 10:36
學習。學習 拿來學習。
作者: wzb616    時間: 2017-12-25 20:53
不錯,正是我需要的
作者: 真愛    時間: 2018-2-21 17:27
Zhyy007 發(fā)表于 2017-3-6 14:20
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****

電路圖提供不完整呢

作者: Liangkan    時間: 2018-2-23 10:16
這種用單片機內(nèi)的AD轉(zhuǎn)換功能做表頭,思路是好的, 只可惜,只有10位,也就是只能精確到1/1024,做電壓表還可以,做電流表就顯得有點不夠了。
作者: jxy17908    時間: 2018-2-23 14:52
正是我需要的,謝謝
作者: qjzyx    時間: 2018-2-23 15:15
做得很好看,收藏學習,謝謝!
作者: nklug    時間: 2018-3-6 14:58
匯編的[雙字節(jié)除法運算子程序] 值得參考
作者: ab560    時間: 2018-3-8 08:10
學習學習,正需要
作者: opop1988    時間: 2018-3-27 20:47
不錯不錯
作者: qvchat    時間: 2018-4-8 10:48
學習了,感謝樓主分享
作者: X1010258272    時間: 2018-4-8 20:32
謝謝樓主 學習學習一下

作者: speachkone    時間: 2018-4-9 17:54
想要增加一個431基準。有懂的大神指點一下么。
作者: dillinllp    時間: 2018-4-19 15:56
好好學習,天天向上。。。。
作者: sumissqin    時間: 2018-5-31 11:07
學習下交流下

作者: 弓長張    時間: 2018-7-20 09:31
匯編  看不懂   
作者: redtxd    時間: 2018-9-28 17:21
謝謝樓主無私分享,學習一下
作者: jayqman    時間: 2018-9-28 19:49
支持啊~~~!!
作者: c20160526    時間: 2018-10-8 07:52
這電壓電流量程是多少?精度怎么樣?
作者: 沒有原因    時間: 2018-10-9 18:56
沒錯,使用單片機自帶的AD轉(zhuǎn)換,其精度比較差了。作為參考還是可以的。
作者: lqsgg    時間: 2018-10-19 21:46
謝謝分享!學習學習!
作者: 新鄉(xiāng)家電維修    時間: 2018-10-26 08:36
       ;AD轉(zhuǎn)換子程序
AD:    MOV        A,ADC_CONTOR
        JNB        E4H,AD
        CLR        E4H
這里E4H是位操作,到底是哪一位???
轉(zhuǎn)換結(jié)束標志位嗎?ADC_FLAG
不懂啊
作者: 成森林    時間: 2019-3-7 10:57
樓主辛苦了我收藏了
作者: WFX777888    時間: 2019-3-8 08:00
謝謝分享資料
作者: liuwang2051    時間: 2019-3-28 11:47
謝謝分享。可惜是匯編
作者: pingshuenhao    時間: 2019-3-28 12:22
單面板是自己做的,還是工廠加工的啊。絲印做的不錯。感覺有點手工的感覺
作者: 成森林    時間: 2019-4-18 09:20
謝謝樓主辛苦你了,我下載了。
作者: yaomeier    時間: 2019-4-30 15:51
謝謝分享資料
作者: sunrei_he    時間: 2019-8-22 08:36
很好,子可惜是匯編。。
作者: yanliansuo    時間: 2019-11-9 16:26
真好都有源碼學習
作者: zjg4441    時間: 2019-11-11 17:28
謝謝分享,很實用。
作者: 難得糊涂2018    時間: 2019-11-11 20:18
匯編大師!
作者: lhxtzlhxtz    時間: 2019-11-12 07:39
電路圖不齊全,有些元件美畫出來。
作者: 923692369    時間: 2020-1-23 10:22
謝謝分享,剛剛接觸單片機學習了
作者: zhyzsn    時間: 2020-1-29 22:12
匯編很少見,學習學習
作者: wlhuang    時間: 2020-3-9 20:59
感謝分享!
作者: bg5skf    時間: 2020-3-15 11:02
學習了,謝謝分享!現(xiàn)在匯編程序太難得了。
作者: zhangrongbin    時間: 2020-10-18 18:51
研究研究  感謝分享。。!
作者: wave_tracy    時間: 2021-3-26 01:51
不懂匯編能改成C就好了,感謝分享
作者: 召遠    時間: 2021-11-26 19:04
匯編大佬
作者: gao687    時間: 2022-12-2 16:51
匯編好用




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1