欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)數(shù)字頻率計(jì)proteus仿真設(shè)計(jì) 帶匯編語言源程序 [打印本頁]

作者: 51黑ff    時(shí)間: 2016-9-25 17:10
標(biāo)題: 單片機(jī)數(shù)字頻率計(jì)proteus仿真設(shè)計(jì) 帶匯編語言源程序


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


源程序:
  1. //************************************濟(jì)南大學(xué) 趙向坤 數(shù)字頻率計(jì) 功能:每隔1s(忽略了lcd顯示所需時(shí)間,實(shí)際大于1s)刷新顯示測(cè)量頻*************************************//
  2. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  3. //內(nèi)部RAM的120,121,122,123,124,125存儲(chǔ)單元用于暫存顯示頻率數(shù)值。120,122,124依此存儲(chǔ)TL0,TL0計(jì)滿100,122計(jì)滿100的次數(shù),使用BACI程序轉(zhuǎn)換成非壓縮的ASCII碼
  4. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5. RS  EQU P2.0                  ;數(shù)據(jù)/命令選擇端  
  6. RW  EQU P2.1                  ;讀/寫選擇端
  7. E   EQU P2.2                  ;使能控制
  8. LCD EQU P0                    ;LCD的數(shù)據(jù)口,對(duì)應(yīng)DB0-DB7
  9. ORG      0000H            
  10. AJMP     START               ;轉(zhuǎn)向主程序
  11. ORG      000BH
  12. LJMP     INTTF0               ;轉(zhuǎn)向計(jì)數(shù)器0
  13. ORG      001BH
  14. LJMP     INTTF1               ;轉(zhuǎn)向計(jì)數(shù)器1
  15. ORG      0100H
  16. START:                        ;START用于LCD初始顯示LCD第一行顯示FRQC: ,第一行顯示 WAIT
  17. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  18. //復(fù)位后SP=07,為防止與堆棧區(qū)占用工作寄存器區(qū)域0-31地址,需要重新設(shè)置堆棧區(qū)域
  19. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  20.         MOV   SP,#60H         ;設(shè)置堆棧區(qū)域
  21. //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
  22. //LCD液晶初始化設(shè)置,并使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            ;設(shè)置寫入數(shù)據(jù)到LCD的開始地址
  31.         CALL  WRITE_COMMAND
  32.         MOV  DPTR,125        ;字符表首地址送DPTR
  33. LINE1:
  34.         MOV  A,@DPTR       ;將TAB1中數(shù)據(jù)送至A
  35.         ACALL  WRITE_DATA      ;調(diào)用寫數(shù)據(jù)到LCD程序
  36.         DEC   DPTR
  37.         CJNE  DPTR,#120H,LINE1       ;是否寫滿5個(gè)
  38. NN:     SJMP  MM
  39.        SJMP  NN
  40. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  41. //B-A是將以120為首地址存放的壓縮BCD頻率數(shù)據(jù)轉(zhuǎn)換成ASCI碼,方便LCD顯示
  42. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  43. BACI:
  44.         MOV  R0,#120        ; DPTR指向RAM120存儲(chǔ)單元
  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,' '          ;將高位的顯示數(shù)字0轉(zhuǎn)換為空格
  67.         DEC  R0
  68.         CJNE R0,#120,AGAIN1    ;若要顯示的數(shù)字全部為零,則只顯示最后一個(gè)120存儲(chǔ)單元中的0
  69. BAEE:    RET
  70. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  71. //LCD服務(wù)程序
  72. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  73. INTI_LCD:
  74.         MOV A,#38H  ;顯示模式設(shè)置
  75.         CALL WRITE_COMMAND
  76.         CALL CHECK_BUSY  ;判忙
  77.         MOV A,#01H  ;清屏
  78.         CALL WRITE_COMMAND
  79.         MOV A,#0CH  ;顯示開及光標(biāo)設(shè)置
  80.         CALL WRITE_COMMAND
  81.         MOV A,#06H  ;顯示光標(biāo)移動(dòng)設(shè)置
  82.         CALL WRITE_COMMAND
  83.         RET
  84. CHECK_BUSY:
  85.         CLR RS
  86.         SETB RW
  87. WAIT:
  88.         SETB E     ;E=1,允許送數(shù)據(jù)周期
  89.         MOV R7,#5
  90.         CALL DELAYR7MS
  91.         MOV A,LCD ;將LCD中數(shù)據(jù)送到A
  92.         MOV R7,#5
  93.         MOV R7,#5
  94.         CALL DELAYR7MS
  95.         CLR E  ;E=0,結(jié)束送數(shù)據(jù)周期
  96.         ANL A,#80H ;檢查L(zhǎng)CD是否忙碌
  97.         JNZ WAIT  ;是,返回TO繼續(xù)檢查,否則返回原程序地址
  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 ;將數(shù)據(jù)送到LCD
  113.       CLR E
  114.       MOV R7,#5
  115.       CALL DELAYR7MS
  116.       RET
  117. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  118. //定時(shí)計(jì)數(shù)器初始模式設(shè)置
  119. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  120. STMOD:  
  121.         SETB  EA
  122.         MOV   TMOD,#26H      ;設(shè)置TMOD=26H,計(jì)數(shù)器0工作于計(jì)數(shù)工作方式2,初值為0
  123.         MOV   TH1,#(256-100)    ;定時(shí)100us次溢出中斷
  124.         MOV   TL1,#(256-100)
  125.         MOV   TH0,#(256-100)    ;計(jì)數(shù)100次溢出中斷
  126.         MOV   TL0,#(256-100)
  127.         SETB  ET1              ;開計(jì)數(shù)器1中斷        
  128.         SETB  ET0              ;開計(jì)數(shù)器0中斷
  129.         SETB  TR1              ;啟動(dòng)計(jì)數(shù)器0
  130.         SETB  TR0              ;啟動(dòng)計(jì)數(shù)器0
  131.         RET
  132. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  133. //延時(shí)子程序(延時(shí)時(shí)間=R7*1MS)
  134. //---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  135. DELAYR7MS:                     ;延時(shí)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
復(fù)制代碼





作者: sunfuyuan    時(shí)間: 2018-5-24 22:43
樓主好人!
作者: 大玉米    時(shí)間: 2018-6-13 15:04
謝謝,謝謝
作者: hanhanha    時(shí)間: 2018-11-15 11:25
太感謝了!

作者: 15237149770    時(shí)間: 2018-11-15 11:54
很全,還有步驟講解,謝謝
作者: hanhanha    時(shí)間: 2018-11-15 13:14
太感謝啦!!!
作者: 王存超1998    時(shí)間: 2018-11-22 13:21
為什么一直顯示606100
作者: 凰羽翎    時(shí)間: 2018-12-31 16:03
王存超1998 發(fā)表于 2018-11-22 13:21
為什么一直顯示606100

同問 而且和設(shè)置的頻率根本不一樣啊
作者: Dokasian    時(shí)間: 2019-3-21 11:48
謝謝樓主




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