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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3934|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機頻率計設(shè)計(lcd1602顯示) 仿真+匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:544080 發(fā)表于 2019-6-22 20:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
T0用來定時,T1用來對1s內(nèi)外來高電平計數(shù)

目前量程為0~65535Hz

可以通過對程序的些許修改使量程達到0~4,294,967,295Hz

本人現(xiàn)在大三,初學(xué)單片機
這是一次課程設(shè)計
歡迎各位牛人批評指正,傳授經(jīng)驗

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /**************************************************************************************
  2. *                              簡易頻率儀設(shè)計                                                                                                  *                                                                                                                                             
  3. ***************************************************************************************/
  4.         ORG        00H
  5.         LJMP        MAIN
  6.         ORG                0BH
  7.         LJMP        T0_INT
  8.         ORG                2000H
  9.         T0COUNT        EQU                36H
  10.         LCDW        EQU                45H
  11.         LCDQ        EQU                46H
  12.         LCDB        EQU                40H
  13.         LCDS        EQU                41H
  14.         LCDG        EQU                42H
  15.         TEMP_L        EQU                43H
  16.         TEMP_H        EQU                44H        
  17.         RS          EQU          P2.6
  18.         RW          EQU          P2.5
  19.         E                  EQU          P2.7
  20.         ORG                        2000H
  21. MAIN:
  22.         MOV                 SP,#60H
  23.         LCALL                SET_T
  24.         LCALL                INIT_LCD
  25.         LCALL                LCDDISP1
  26.         SJMP                [        DISCUZ_CODE_1        ]nbsp;      
  27. /*****************************T0,T1設(shè)置***********************************************/
  28. SET_T:
  29.         MOV                        TMOD,#51H
  30.         MOV                        TH0,#3CH
  31.         MOV                        TL0,#0B0H
  32.         MOV                        TH1,#00H
  33.         MOV                        TL1,#00H
  34.         SETB                EA
  35.         SETB                TR0
  36.         SETB                TR1
  37.         SETB                ET0
  38.         RET
  39. /*****************************LCD初始化***********************************************/
  40. INIT_LCD:        
  41.         MOV                 P0,#01H                        ;清屏  
  42.         LCALL                LcdWriteCom   
  43.         MOV                 P0,#38H                         ;功能設(shè)置,DB4=1為8位數(shù)據(jù)接口,DB3=1為雙行顯示 DB2=0為5*7點陣   
  44.         LCALL                 LcdWriteCom   
  45.         MOV                 P0,#0CH                         ;顯示開關(guān)控制,DB2=1為開顯示,DB1=1為光標開,DB0=0為字符不閃爍   
  46.         LCALL                 LcdWriteCom   
  47.         MOV                 P0,#06H                         ;輸入方式設(shè)置,設(shè)置光標的移動方向,并指定整體顯示是否移動,DB1=1為增量方式,DB0=0為不以為
  48.         LCALL                 LcdWriteCom

  49.         RET
  50. /*****************************LCD第一行顯示程序***********************************************/
  51. LCDDISP1:
  52.         MOV                 P0,#80H                        ;第一行的開始位置   
  53.         LCALL                 LcdWriteCom
  54.         MOV                        DPTR,#TABLE1
  55.         MOV                 R1,#00H                   ;顯示table中的值  
  56. LOOP1: MOV                 A,R1                        ;到table取碼   
  57.         MOVC                 A,@A+DPTR   
  58.         LCALL                   LcdWriteData                  ;顯示到LCD
  59.         INC                 R1   
  60.         CJNE                 A,#00H,LOOP1                 ;是否到00H  
  61.         RET
  62. /*****************************LCD第二行顯示程序***********************************************/
  63. LCDDISP2:
  64.         MOV                 R3,LCDW        
  65.         CJNE                R3,#30H,GO_W
  66.         MOV                        LCDW,#20H
  67.         MOV                 R3,LCDQ        
  68.         CJNE                R3,#30H,GO_Q
  69.         MOV                        LCDQ,#20H
  70.         MOV                        R3,LCDB
  71.         CJNE                R3,#30H,GO_B
  72.         MOV                        LCDB,#20H
  73.         MOV                        R3,LCDS
  74.         CJNE                R3,#30H,GO_S
  75.         MOV                        LCDS,#20H
  76. GO_W:
  77.         MOV                 P0,#0C3H                        ;第二行的開始位置   
  78.         LCALL                 LcdWriteCom  
  79.         MOV                 A,LCDW
  80.         LCALL                LcdWriteData
  81. GO_Q:
  82.         MOV                 P0,#0C4H                        ;第二行的開始位置   
  83.         LCALL                 LcdWriteCom  
  84.         MOV                 A,LCDQ
  85.         LCALL                LcdWriteData        
  86. GO_B:        
  87.         MOV                 P0,#0C5H                        ;第二行的開始位置   
  88.         LCALL                 LcdWriteCom  
  89.         MOV                 A,LCDB
  90.         LCALL                LcdWriteData
  91. GO_S:
  92.         MOV                 P0,#0C6H                          
  93.         LCALL                 LcdWriteCom
  94.         MOV                 A,LCDS
  95.         LCALL                LcdWriteData
  96. GO_G:
  97.         MOV                 P0,#0C7H                          
  98.         LCALL                 LcdWriteCom
  99.         MOV                 A,LCDG
  100.         LCALL                LcdWriteData
  101.         MOV                 P0,#0C8H         
  102.         LCALL                 LcdWriteCom
  103.         MOV                        DPTR,#TABLE2
  104.         MOV                 R1,#00H                   ;顯示table中的值  
  105. LOOP2: MOV                 A,R1                        ;到table取碼   
  106.         MOVC                 A,@A+DPTR   
  107.         LCALL           LcdWriteData                  ;顯示到LCD
  108.         INC                 R1   
  109.         CJNE                 A,#00H,LOOP2                 ;是否到00H
  110.         RET
  111.          
  112. /*****************************LCD寫入命令***********************************************/
  113. LcdWriteCom:
  114.         CLR                 RS      
  115.         CLR                 RW   
  116.         CLR                 E   
  117.         LCALL                 DELAY   
  118.         SETB                E   
  119.         RET
  120. /*****************************LCD寫入數(shù)據(jù)***********************************************/
  121. LcdWriteData:  
  122.         
  123.         MOV                 P0,A
  124.         SETB                 RS   
  125.         CLR                 RW   
  126.         CLR                        E   
  127.         LCALL                 DELAY
  128.         SETB                 E
  129.         RET
  130. /*****************************頻率計算***********************************************/  
  131. HZ_CAL:
  132.         MOV                        R5,#00H
  133.         MOV                        R2,#00H
  134.         MOV                        R3,TH1
  135.         MOV                        R4,TL1
  136.         MOV                        R6,#27H
  137.         MOV                        R7,#10H
  138.         LCALL                DIV_CAL
  139.         MOV                        A,R4
  140.         ADD                        A,#30H
  141.         MOV                        LCDW,A
  142.         
  143.         MOV                        TEMP_H,R6
  144.         MOV                        TEMP_L,R7
  145.         MOV                        R5,#00H
  146.         MOV                        R2,#00H
  147.         MOV                        R3,TEMP_H
  148.         MOV                        R4,TEMP_L
  149.         MOV                        R6,#03H
  150.         MOV                        R7,#0E8H
  151.         LCALL                DIV_CAL
  152.         MOV                        A,R4
  153.         ADD                        A,#30H
  154.         MOV                        LCDQ,A

  155.         MOV                        TEMP_H,R6
  156.         MOV                        TEMP_L,R7
  157.         MOV                        R5,#00H
  158.         MOV                        R2,#00H
  159.         MOV                        R3,TEMP_H
  160.         MOV                        R4,TEMP_L
  161.         MOV                        R6,#00H
  162.         MOV                        R7,#64H
  163.         LCALL                DIV_CAL
  164.         MOV                        A,R4
  165.         ADD                        A,#30H
  166.         MOV                        LCDB,A

  167.         MOV                        TEMP_H,R6
  168.         MOV                        TEMP_L,R7
  169.         MOV                        R5,#00H
  170.         MOV                        R2,#00H
  171.         MOV                        R3,TEMP_H
  172.         MOV                        R4,TEMP_L
  173.         MOV                        R6,#00H
  174.         MOV                        R7,#0AH
  175.         LCALL                DIV_CAL
  176.         MOV                        A,R4
  177.         ADD                        A,#30H
  178.         MOV                        LCDS,A

  179.         MOV                        A,R7
  180.         ADD                        A,#30H
  181.         MOV                        LCDG,A
  182.         MOV                        T0COUNT,#00H
  183.         RET
  184. DIV_CAL:
  185. /**************************************************************************************
  186. *                              雙字節(jié)無符號除法                                                                                                  *
  187.                         R5R2R3R4/R6R7)=(R2)R3R4        余數(shù)R6R7                                                                                                                                                                  
  188. ***************************************************************************************/
  189.         
  190. NDIV42:        
  191.         MOV                A,R1
  192.         PUSH        ACC
  193.         MOV                B,#00H
  194. NDV421:
  195.         MOV                A,R2
  196.         CLR                C
  197.         SUBB        A,R7
  198.         MOV                R1,A
  199.         MOV                A,R5
  200.         SUBB        A,R7
  201.         MOV                R1,A
  202.         MOV                A,R5
  203.         SUBB        A,R6
  204.         JC                NDV422
  205.         MOV                R5,A
  206.         MOV                A,R1
  207.         MOV                R2,A
  208.         INC                B
  209.         SJMP        NDV421
  210. NDV422:
  211.         PUSH        B
  212.         MOV                B,#10H
  213. NDV423:
  214.         CLR                C
  215.         MOV                A,R4
  216.         RLC                A
  217.         MOV                R4,A
  218.         MOV                A,R3
  219.         RLC                A
  220.         MOV                R3,A
  221.         MOV                A,R2
  222.         RLC                A
  223.         MOV                R2,A
  224.         XCH                A,R5
  225.         RLC                A
  226.         XCH                A,R5
  227.         MOV                F0,C
  228.         CLR                C
  229.         SUBB        A,R7
  230.         MOV                R1,A
  231.         MOV                A,R5
  232.         SUBB        A,R6
  233.         JB                F0,NCV424
  234.         JC                NDV425
  235. NCV424:
  236.         MOV                R5,A
  237.         MOV                A,R1
  238.         MOV                R2,A
  239.         INC                R4
  240. NDV425:
  241.         DJNZ        B,NDV423
  242.         POP                ACC
  243.         CLR                OV
  244.         JNZ                NDV426
  245.         SETB        OV
  246. NDV426:
  247.         XCH                A,R2
  248.         MOV                R7,A
  249.         MOV                A,R5
  250.         MOV                R6,A
  251.         POP                ACC
  252.         MOV                R1,A
  253.         RET
  254. /*****************************延時程序***********************************************/
  255. DELAY:        MOV R7,#10
  256. D1:                MOV R6,#0F8H   
  257. D2:                DJNZ R6,D2   
  258.                 DJNZ R7,D1   
  259.                 RET
  260. /*****************************T0中斷服務(wù)程序***********************************************/        
  261. T0_INT:
  262.         MOV                        TH0,#3CH
  263.         MOV                        TL0,#0B0H
  264.         INC                        T0COUNT
  265.         MOV                        R2,T0COUNT
  266.         CJNE                R2,#20,OVER
  267.         CLR                        TR0
  268.         CLR                        TR1
  269.         LCALL                HZ_CAL        
  270.         LCALL                LCDDISP2
  271.         MOV                        T0COUNT,#00H
  272.         MOV                        TH0,#3CH
  273.         MOV                        TL0,#0B0H
  274.         MOV                        TH1,#00H
  275.         MOV                        TL1,#00H
  276.         SETB                TR0
  277.         SETB                TR1               
  278. OVER:
  279.         RETI         
  280. TABLE1:
  281.         DB                "Frequency:" , 00H
  282. TABLE2:
  283.         DB                "Hz" , 00H      
  284. END
復(fù)制代碼

所有資料51hei提供下載:
單片機課程設(shè)計_4.0.rar (71.49 KB, 下載次數(shù): 94)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:405479 發(fā)表于 2019-7-1 08:34 | 只看該作者
MARK  學(xué)習了
回復(fù)

使用道具 舉報

板凳
ID:258520 發(fā)表于 2019-12-11 21:24 | 只看該作者
沒有仿真工程文件啊  打不開
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表