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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
T0用來定時,T1用來對1s內外來高電平計數

目前量程為0~65535Hz

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

本人現在大三,初學單片機
這是一次課程設計
歡迎各位牛人批評指正,傳授經驗

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


單片機源程序如下:
  1. /**************************************************************************************
  2. *                              簡易頻率儀設計                                                                                                  *                                                                                                                                             
  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設置***********************************************/
  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                         ;功能設置,DB4=1為8位數據接口,DB3=1為雙行顯示 DB2=0為5*7點陣   
  44.         LCALL                 LcdWriteCom   
  45.         MOV                 P0,#0CH                         ;顯示開關控制,DB2=1為開顯示,DB1=1為光標開,DB0=0為字符不閃爍   
  46.         LCALL                 LcdWriteCom   
  47.         MOV                 P0,#06H                         ;輸入方式設置,設置光標的移動方向,并指定整體顯示是否移動,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寫入數據***********************************************/
  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. *                              雙字節無符號除法                                                                                                  *
  187.                         R5R2R3R4/R6R7)=(R2)R3R4        余數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中斷服務程序***********************************************/        
  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
復制代碼

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


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:405479 發表于 2019-7-1 08:34 | 只看該作者
MARK  學習了
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久国产 | 中文字幕在线观看www | 国产精品久久久 | 一级特黄在线 | 亚洲一二三区不卡 | 青草青草久热精品视频在线观看 | 北条麻妃99精品青青久久主播 | 日韩精品一区二区三区四区 | 国产高清精品一区二区三区 | av高清毛片 | 国产精品视频在线免费观看 | 国产成人免费视频网站高清观看视频 | 综合精品久久久 | 色综合99| 日韩在线小视频 | 久久久蜜臀国产一区二区 | 国产乱码精品1区2区3区 | 日韩综合在线播放 | 丁香一区二区 | 狠狠av| 黄色av免费 | 色就干 | 成人精品鲁一区一区二区 | 99色播| 精品中文字幕在线观看 | 99精品99| 在线视频国产一区 | 亚洲精品一区在线 | 欧美日韩电影在线 | 欧美一区免费 | 欧美亚洲国产一区二区三区 | 成人免费xxxxx在线视频 | 国产欧美日韩精品一区 | 四虎在线观看 | 91久久国产综合久久 | 久久精品一二三影院 | 天天干天天玩天天操 | 国产情侣啪啪 | 亚洲天堂av在线 | 国产一区二区毛片 | 国产精品永久免费 |