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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7489|回復: 8
收起左側

單片機數字頻率計proteus仿真設計 帶匯編語言源程序

[復制鏈接]
ID:137190 發表于 2016-9-25 17:10 | 顯示全部樓層 |閱讀模式
0.png 0.png

匯編頻率計的所有資料下載:
頻率計.zip (110.65 KB, 下載次數: 135)


源程序:
  1. //************************************濟南大學 趙向坤 數字頻率計 功能:每隔1s(忽略了lcd顯示所需時間,實際大于1s)刷新顯示測量頻*************************************//
  2. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  3. //內部RAM的120,121,122,123,124,125存儲單元用于暫存顯示頻率數值。120,122,124依此存儲TL0,TL0計滿100,122計滿100的次數,使用BACI程序轉換成非壓縮的ASCII碼
  4. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5. RS  EQU P2.0                  ;數據/命令選擇端  
  6. RW  EQU P2.1                  ;讀/寫選擇端
  7. E   EQU P2.2                  ;使能控制
  8. LCD EQU P0                    ;LCD的數據口,對應DB0-DB7
  9. ORG      0000H            
  10. AJMP     START               ;轉向主程序
  11. ORG      000BH
  12. LJMP     INTTF0               ;轉向計數器0
  13. ORG      001BH
  14. LJMP     INTTF1               ;轉向計數器1
  15. ORG      0100H
  16. START:                        ;START用于LCD初始顯示LCD第一行顯示FRQC: ,第一行顯示 WAIT
  17. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  18. //復位后SP=07,為防止與堆棧區占用工作寄存器區域0-31地址,需要重新設置堆棧區域
  19. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  20.         MOV   SP,#60H         ;設置堆棧區域
  21. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  22. //LCD液晶初始化設置,并使LCD第一行顯示FRQC:,第二行顯示    WAIT  HZ  
  23. //---------------------------------------------第一行顯示FRQC:---------------------------------------------------------------------------------------------------------
  24.        CALL  INTI_LCD         ;初始化液晶
  25.        MOV  A,#99
  26.        MOV  120,A
  27.        MOV  122,A
  28.        MOV  124,A
  29.       CALL  BACI
  30.         MOV  A,#0C0H            ;設置寫入數據到LCD的開始地址
  31.         CALL  WRITE_COMMAND
  32.         MOV  DPTR,125        ;字符表首地址送DPTR
  33. LINE1:
  34.         MOV  A,@DPTR       ;將TAB1中數據送至A
  35.         ACALL  WRITE_DATA      ;調用寫數據到LCD程序
  36.         DEC   DPTR
  37.         CJNE  DPTR,#120H,LINE1       ;是否寫滿5個
  38. NN:     SJMP  MM
  39.        SJMP  NN
  40. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  41. //B-A是將以120為首地址存放的壓縮BCD頻率數據轉換成ASCI碼,方便LCD顯示
  42. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  43. BACI:
  44.         MOV  R0,#120        ; DPTR指向RAM120存儲單元
  45. BACIW:
  46.         MOV  A,@R0
  47.         DA   A
  48.         MOV  B,A
  49.         ANL  A,#0FH
  50.         ORL  A,#30H
  51.         MOV  @R0,A
  52.         INC   R0
  53.         MOV  A,B
  54.         SWAP A
  55.         ANL  A,#0FH
  56.         ORL  A,#30H
  57.         MOV  @R0,A
  58.         INC   R0
  59.         MOV  A,R0
  60.         CJNE A,#126,BACIW
  61.         DEC  R0
  62. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  63. AGAIN1:
  64.         MOV   A,@R0
  65.         CJNE A,'0',BAEE
  66.         MOV  @R0,' '          ;將高位的顯示數字0轉換為空格
  67.         DEC  R0
  68.         CJNE R0,#120,AGAIN1    ;若要顯示的數字全部為零,則只顯示最后一個120存儲單元中的0
  69. BAEE:    RET
  70. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  71. //LCD服務程序
  72. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  73. INTI_LCD:
  74.         MOV A,#38H  ;顯示模式設置
  75.         CALL WRITE_COMMAND
  76.         CALL CHECK_BUSY  ;判忙
  77.         MOV A,#01H  ;清屏
  78.         CALL WRITE_COMMAND
  79.         MOV A,#0CH  ;顯示開及光標設置
  80.         CALL WRITE_COMMAND
  81.         MOV A,#06H  ;顯示光標移動設置
  82.         CALL WRITE_COMMAND
  83.         RET
  84. CHECK_BUSY:
  85.         CLR RS
  86.         SETB RW
  87. WAIT:
  88.         SETB E     ;E=1,允許送數據周期
  89.         MOV R7,#5
  90.         CALL DELAYR7MS
  91.         MOV A,LCD ;將LCD中數據送到A
  92.         MOV R7,#5
  93.         MOV R7,#5
  94.         CALL DELAYR7MS
  95.         CLR E  ;E=0,結束送數據周期
  96.         ANL A,#80H ;檢查LCD是否忙碌
  97.         JNZ WAIT  ;是,返回TO繼續檢查,否則返回原程序地址
  98.         RET

  99. WRITE_COMMAND:
  100.       CLR RW
  101.       CLR RS
  102.       SETB E
  103.       MOV LCD,A ;將命令字寫入LCD
  104.       CLR E
  105.       MOV R7,#5
  106.       CALL DELAYR7MS
  107.       RET

  108. WRITE_DATA:
  109.       SETB RS
  110.       CLR RW
  111.       SETB E
  112.       MOV LCD,A ;將數據送到LCD
  113.       CLR E
  114.       MOV R7,#5
  115.       CALL DELAYR7MS
  116.       RET
  117. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  118. //定時計數器初始模式設置
  119. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  120. STMOD:  
  121.         SETB  EA
  122.         MOV   TMOD,#26H      ;設置TMOD=26H,計數器0工作于計數工作方式2,初值為0
  123.         MOV   TH1,#(256-100)    ;定時100us次溢出中斷
  124.         MOV   TL1,#(256-100)
  125.         MOV   TH0,#(256-100)    ;計數100次溢出中斷
  126.         MOV   TL0,#(256-100)
  127.         SETB  ET1              ;開計數器1中斷        
  128.         SETB  ET0              ;開計數器0中斷
  129.         SETB  TR1              ;啟動計數器0
  130.         SETB  TR0              ;啟動計數器0
  131.         RET
  132. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  133. //延時子程序(延時時間=R7*1MS)
  134. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  135. DELAYR7MS:                     ;延時1ms*R7
  136. DL1:
  137.     MOV  R6,#8EH
  138. DL0:
  139.     MOV  R5,#02H
  140.     DJNZ R5,$
  141.     DJNZ R6,DL0
  142.     DJNZ R7,DL1
  143.     RET     
  144. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  145. //用于LCD查表顯示
  146. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  147. TAB1: DB "FRQC:"
  148. TAB2: DB "WAIT"
  149. TAB3: DB "HZ"
  150. END
復制代碼




評分

參與人數 2黑幣 +10 收起 理由
王存超1998 + 5
wk123147 + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:337682 發表于 2018-5-24 22:43 | 顯示全部樓層
樓主好人!
回復

使用道具 舉報

ID:345953 發表于 2018-6-13 15:04 | 顯示全部樓層
謝謝,謝謝
回復

使用道具 舉報

ID:420497 發表于 2018-11-15 11:25 | 顯示全部樓層
太感謝了!
回復

使用道具 舉報

ID:426970 發表于 2018-11-15 11:54 來自觸屏版 | 顯示全部樓層
很全,還有步驟講解,謝謝
回復

使用道具 舉報

ID:420497 發表于 2018-11-15 13:14 | 顯示全部樓層
太感謝啦!!!
回復

使用道具 舉報

ID:430684 發表于 2018-11-22 13:21 | 顯示全部樓層
為什么一直顯示606100
回復

使用道具 舉報

ID:458682 發表于 2018-12-31 16:03 | 顯示全部樓層
王存超1998 發表于 2018-11-22 13:21
為什么一直顯示606100

同問 而且和設置的頻率根本不一樣啊
回復

使用道具 舉報

ID:489357 發表于 2019-3-21 11:48 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品美女久久久久久久久久 | 日韩在线视频免费观看 | 这里只有精品999 | 99久久久久久 | 国产99久久 | 国产一区二区三区在线视频 | 日韩在线一区二区三区 | 成年人网站免费视频 | 免费a大片 | 久久免费视频1 | 国产小视频在线 | 亚洲一一在线 | 精品日韩在线 | 日本精品久久 | 欧美一级www片免费观看 | 99免费 | 中文字幕在线观看一区 | 中文字幕三区 | 蜜桃日韩 | 欧美日韩在线视频一区二区 | 男女下面一进一出网站 | 国产精品久久 | 亚洲一级黄色 | 精品一二区 | 久久福利电影 | 日本不卡高清视频 | 国产高清在线精品一区二区三区 | 国产欧美一区二区三区在线播放 | 欧美成视频 | 日本韩国欧美在线观看 | 国内自拍视频在线观看 | 国产色网站 | 天天人人精品 | 欧美极品在线 | 国产精品亚洲成在人线 | 欧美做暖暖视频 | 一区二区三区四区免费在线观看 | 在线观看日韩精品视频 | 夜夜爽99久久国产综合精品女不卡 | 日韩国产精品一区二区三区 | 欧美一区二区三区大片 |