久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5877|回復: 1
打印 上一主題 下一主題
收起左側

基于單片機的數字電壓表綜合訓練報告(匯編語言源碼)

[復制鏈接]
跳轉到指定樓層
樓主
ID:296768 發表于 2018-3-31 11:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

綜合訓練項目三

數字電壓表

  • 功能說明:

用c51單片機和ADC0808A/D轉換器把輸入的模擬電壓電流轉變成計算機可以識別的數字信息。我們小組這次通過運用所學知識,制作了一個量程為2.55V的電壓表。

  • 邏輯框圖:

1.概念流程圖;

2.電壓數字顯示流程圖:

3.顯示子程序流程圖:



    遇到的問題:

在這次數字電壓表的設計過程中,我們遇到的主要問題是數顯程序的編寫,我們最初的想法是給一個寄存器存入一定數值,再用DJNZ指令進行跳轉,跳轉到特定的子程序使數顯顯示0。但后來發現程序順序問題會導致無論電壓數值為多少,數顯程序判斷部分都會判斷為減到0并跳轉。后決定使用Cy位,通過清零來避免干擾。

組員信息:

測控一班 李*坤 1505070112

測控一班 李*哲 1505070110

測控一班 胡*宇 1505070108

    組員分工

胡*宇:程序編寫;

李*哲:文檔編輯;

*坤:仿真電路制作;

程序校對和錯誤分析有所有組員共同完成。




三、單片機匯編語言程序指令:



  1. LED_0        EQU        30H                                ;千分位
  2.         LED_1        EQU        31H                                ;百分位
  3.         LED_2        EQU        32H                                ;十分位
  4.         LED_3        EQU        33H                                ;個位
  5.         ADC                EQU        35H
  6.         CLOCK        BIT        P1.4                        ;定義0808時鐘位
  7.         ST                BIT        P1.5
  8.         EOC                BIT        P1.6
  9.         OE                BIT        P1.7
  10.                 ORG        0000H
  11.                 LJMP START
  12.                 ORG        000BH
  13.                 LJMP INT_T0
  14.         ORG        30H
  15. START:        MOV        LED_0,#00H
  16.                 MOV        LED_1,#00H
  17.                 MOV        LED_2,#00H
  18.                 MOV        DPTR,#TABLE                                ;表格數值賦到DPTR
  19.                 MOV        TMOD,#02H                                ;定時器選擇方式2
  20.                 MOV        TH0,#0F5H                                ;防止數碼管數位閃動,可設定的置為小于等于245的數
  21.                 MOV        TL0,#00H
  22.                 MOV        IE,#82H                                        ;開T0中斷
  23.                 SETB TR0                                        ;T0開始計數
  24. WAIT:        CLR        ST
  25.                 SETB ST                                                ;上升沿清零SAR(SAR用來在A/D轉化過程中存放暫態數字量)
  26.                 CLR        ST                                                ;下降沿啟動ADC工作
  27.                 JNB        EOC,[        DISCUZ_CODE_19        ]nbsp;                                       ;等待轉換結果
  28.                 SETB OE                                                ;ADC輸出
  29.                 MOV        ADC,P2                                        ;讀取AD轉換結果
  30.                 CLR        OE                 
  31.                 MOV        A,ADC                                       
  32.                 MOV        R7,A                                        ;R7儲存AD轉換后的結果                                
  33.                 MOV        LED_3,#00H                                ;清空個位
  34.                 MOV        LED_2,#00H                                ;清空十分位
  35.                 MOV        A,#00H                                       
  36. LOOP1:        ADD        A,#20H                                        ;一位二進制碼對應1000mV
  37.                 DA        A                                                ;結果轉換成BCD碼
  38.                 JNC        LOOP2                                        ;Cy為0跳轉,Cy為1繼續執行
  39.                 MOV        R4,A                                        ;R4儲存千分分位、百分位
  40.                 INC        LED_2                                        ;十分位加1
  41.                 MOV        A,LED_2
  42.                 CJNE A,#0AH,LOOP4                        十分位位不為10跳轉,為10繼續執行
  43.                 MOV        LED_2,#00H                                ;十分位置0
  44.                 INC        LED_3                                        ;個位加1
  45. LOOP4:        MOV        A,R4
  46. LOOP2:        DJNZ R7,LOOP1                                ;R7減1不為0跳轉,為0繼續執行
  47.                 ACALL BTOD1
  48.                 LCALL DISP                                        ;調用顯示子程序
  49.                 LJMP WAIT
  50.                 ORG        0200H
  51. BTOD1:        MOV        R6,A                                        ;R6儲存R7為0后的A的值
  52.                 ANL        A,#0F0H                                        ;R6與11110000B后賦給A
  53.                 MOV        R5,#4
  54. LOOP3:        RR        A
  55.                 DJNZ R5,LOOP3                                
  56.                 MOV        LED_1,A                                        ;A右移4次后賦給百分位        
  57.                 MOV        A,R6
  58.                 ANL        A,#0FH                                       
  59.                 MOV        LED_0,A                                        ;R6與00001111B后賦給千分位
  60.                 RET               
  61.                                        
  62. INT_T0:        CPL        CLOCK                                        ;提供0808時鐘信號
  63.                 RETI
  64. DISP:                                                                ;顯示子程序
  65.                 MOV        A,LED_0                                       
  66.                 MOVC A,@A+DPTR
  67.                 CLR        P1.3                                        ;千分位顯示
  68.                 MOV        P0,A
  69.                 LCALL DELAY                                        ;數值顯示
  70.                 SETB P1.3
  71.                                                         
  72.                 MOV        A,LED_1
  73.                 MOVC A,@A+DPTR
  74.                 CLR        P1.2                                        ;百分位顯示
  75.                 MOV        P0,A
  76.                 LCALL DELAY                                        ;數值顯示
  77.                 SETB P1.2
  78.                
  79.                 MOV        A,LED_2
  80.                 MOVC A,@A+DPTR               

  81.                 CLR        P1.1                                        ;十分位顯示
  82.                 MOV        P0,A
  83.                 LCALL DELAY                                        ;數值顯示
  84.                 SETB P1.1
  85.                
  86.                 MOV        A,LED_3
  87.                 MOVC A,@A+DPTR
  88.             ADD A,#80H                                        ;顯示小數點
  89.                 CLR        P1.0                                        ;個位顯示
  90.                 MOV        P0,A
  91.         LCALL DELAY                                        ;數值顯示
  92.                 SETB P1.0
  93.                 RET

  94. DELAY:        MOV        R6,#10                                        ;延時5ms
  95. D1:                MOV        R7,#250
  96.                 DJNZ R7,$
  97.                 DJNZ R6,D1
  98.                 RET
  99. TABLE:        DB        3FH,06H,5BH,4FH,66H                ;共陰數碼管7段值
  100.                 DB        6DH,7DH,07H,7FH,6FH
  101.                 END

復制代碼

全部資料下載:
數字電壓表.zip (419.98 KB, 下載次數: 82)



評分

參與人數 2黑幣 +69 收起 理由
vvv64 + 3
admin + 66 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:564989 發表于 2019-6-18 11:49 | 只看該作者
很實用,謝謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩亚洲国产 | 久久久精品高清 | 成年人视频在线免费观看 | 久久久久久久久久久久久9999 | 欧美日韩国产三级 | 亚洲免费成人av | 免费成人高清在线视频 | 视频在线h | 福利片在线看 | 精品国产91久久久久久 | 91精品久久久久久久久久 | 免费人成在线观看网站 | 日韩一区二区三区视频 | 中文字幕一区二区三区不卡在线 | 久久精品—区二区三区 | 午夜久久久 | 91在线视频网址 | 97超碰在线播放 | 91久久精品视频 | 嫩草视频在线 | 日本不卡一区二区三区 | 网站黄色av| av黄色免费在线观看 | 999精品网 | 亚洲精品在线免费播放 | 久久久久国产视频 | 国产激情一区二区三区 | 精品久久久久香蕉网 | 日韩中文字幕 | 久久久国产精品网站 | 午夜在线影院 | 成人网av| 免费观看一级毛片视频 | 欧美日韩在线一区 | 日韩中文字幕在线视频观看 | 欧美日韩视频 | 一区二区三区在线播放 | 欧美国产一区二区 | 亚洲精品专区 | 亚洲第一天堂无码专区 | 亚洲欧洲中文日韩 |