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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機匯編語言超聲波測距報警程序和Proteus仿真

[復制鏈接]
跳轉到指定樓層
樓主
匯編程序編寫,分享給各位
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1.         RS BIT P1.0  ;LCD1602引腳定義
  2.         RW BIT P1.1
  3.         EN BIT P1.2
  4.                
  5.         ECHO BIT P3.6       ;回波信號端
  6.                
  7.                 NUM        EQU 40H   ;定時器用
  8.         H        EQU 41H    ;距離高8位
  9.         L        EQU 42H    ;距離低8位

  10.                 ORG 0000H
  11.         LJMP MAIN
  12.         ORG 000BH         ;定時器0入口
  13.         LJMP TIME0
  14.         ORG 0030H
  15.         MAIN:
  16.         MOV SP,#60H
  17.         MOV R0,#40H     
  18.         MOV A,#0
  19.         MOV NUM,#0
  20.         MOV H,#0
  21.         MOV L,#0
  22.    
  23.         
  24.         MOV H,#1
  25.         MOV L,#0
  26.         LCALL  LCD1602_INIT  ;1602初始化
  27.         LCALL DELAY2
  28.         
  29.         MOV A,#80H
  30.         LCALL WRITE_1602COM
  31.         MOV DPTR,#CODE_PRINT
  32.         LCALL PRINT
  33.      
  34.         MOV TMOD,#11H               ;初始化定時器
  35.         MOV TH0,#0;
  36.         MOV TL0,#0;
  37.         SETB EA
  38.         SETB ET0
  39.         
  40.         ;主循環
  41. LOOP:  
  42.         SETB TR1
  43. LOOP1:
  44.         JB ECHO,LOOP2
  45.         SJMP LOOP1
  46. LOOP2:
  47.         SETB TR0
  48. LOOP3:
  49.         JNB ECHO,LOOP4
  50.         SJMP LOOP3
  51. LOOP4:
  52.         CLR TR0
  53.         LCALL COUNT
  54.         LCALL DISPLAY     ;顯示距離
  55.         SJMP LOOP6
  56. LOOP5:
  57.         CLR TR0
  58.         MOV TH0,#0;   
  59.         MOV TL0,#0;
  60. LOOP6:
  61.         SJMP LOOP        
  62.                
  63. COUNT:  ;計算距離 cm=us/58
  64.         MOV R1,TH0
  65.         MOV R0,TL0
  66.         MOV L,#0
  67.         MOV H,#0
  68.         MOV TH0,#0
  69.         MOV TL0,#0
  70. DIS1:
  71.       CLR  C             ;循環被除數減去除數的次數就是這個商
  72.       MOV  A, R0
  73.       SUBB A, #3AH
  74.       MOV  R0, A
  75.       MOV  A, R1
  76.       SUBB A, #0
  77.       MOV  R1, A
  78.       JC   DIS2
  79.       INC  L
  80.           MOV A,L
  81.       CJNE A,#0,DIS1
  82.           INC H
  83.       SJMP DIS1
  84. DIS2:
  85.       RET

  86.         
  87. DISPLAY:                ;顯示距離
  88.         MOV R6,H   
  89.         MOV R7,L
  90.         LCALL HB2           ;2字節16進制數轉換為3字節壓縮BCD碼
  91.         MOV A,#089H
  92.         MOV B,R4
  93.         LCALL DIS_1BIT
  94.         MOV A,R5
  95.         LCALL DIS_2BIT
  96.                 CJNE R4,#3,DIS0
  97.                 CLR P3.7
  98.         RET
  99. DIS0:
  100.                 SETB P3.7
  101.         RET
  102.                
  103.         
  104.         ;LCD1602初始化函數
  105. LCD1602_INIT:
  106.         MOV A,#38H
  107.         LCALL WRITE_1602COM
  108.         MOV A,#0CH
  109.         LCALL WRITE_1602COM
  110.         MOV A,#06H
  111.         LCALL WRITE_1602COM
  112.         MOV A,#01H
  113.         LCALL WRITE_1602COM
  114.         RET
  115.         
  116.         WRITE_1602COM:  ;寫命令
  117.         CLR RS
  118.         CLR RW
  119.         MOV P0,A
  120.         LCALL DELAY1
  121.         SETB EN
  122.         LCALL DELAY1
  123.         CLR EN
  124.         RET
  125.         WRITE_1602DAT: ;寫數據
  126.         SETB RS
  127.         CLR RW
  128.         MOV P0,A
  129.         LCALL DELAY1
  130.         SETB EN
  131.         LCALL DELAY1
  132.         CLR EN
  133.         RET
  134.         
  135.         
  136.         ;1602顯示字符串函數
  137. PRINT:
  138.         MOV R0,#0
  139. PRINT1:
  140.         MOV A,R0
  141.         MOVC A,@A+DPTR
  142.         CJNE A,#0,PRINT0
  143.         RET
  144. PRINT0:
  145.         LCALL WRITE_1602DAT
  146.         INC R0
  147.         SJMP PRINT1
  148.         
  149.         
  150.         ;1602顯示2位整數
  151. DIS_2BIT:
  152.         MOV B,#16
  153.         DIV AB
  154.         ADD A,#30H
  155.         LCALL WRITE_1602DAT
  156.         MOV A,B
  157.         ADD A,#30H
  158.         LCALL WRITE_1602DAT
  159.         RET
  160.         
  161.         ;1602顯示1位整數
  162. DIS_1BIT:                ;A是地址 B放數據
  163.         LCALL WRITE_1602COM
  164.         MOV A,B
  165.         ADD A,#30H
  166.         LCALL WRITE_1602DAT
  167.         RET
  168.         
  169.         DELAY1:       ;延時1
  170.         MOV 30H,#20
  171.         DJNZ 30H,$
  172.         RET
  173.         
  174.         DELAY2:       ;延時2
  175.         MOV 30H,#50
  176.         DELAY20:
  177.         MOV 31H,#50
  178.         DJNZ 31H,$
  179.         DJNZ 30H,DELAY20
  180.         RET
  181.         
  182.         ;定時器0中斷函數
  183. TIME0:
  184.         RETI
  185.            
  186.         
  187. HB2:
  188.         CLR        A        ;BCD碼初始化
  189.         MOV        R3,A
  190.         MOV        R4,A
  191.         MOV        R5,A
  192.         MOV        R2,#10H        ;轉換雙字節十六進制整數
  193. HB3:        
  194.         MOV        A,R7        ;從高端移出待轉換數的一位到CY中
  195.         RLC        A
  196.         MOV        R7,A
  197.         MOV        A,R6
  198.         RLC        A
  199.         MOV        R6,A
  200.         MOV        A,R5        ;BCD碼帶進位自身相加,相當于乘2
  201.         ADDC        A,R5
  202.         DA        A        ;十進制調整
  203.         MOV        R5,A
  204.         MOV        A,R4
  205.         ADDC        A,R4
  206.         DA        A
  207.         MOV        R4,A
  208.         MOV        A,R3
  209.         ADDC        A,R3
  210.         MOV        R3,A        ;雙字節十六進制數的萬位數不超過6,不用調整
  211.         DJNZ        R2,HB3        ;處理完16bit
  212.         RET        
  213.         
  214. CODE_PRINT:
  215.         DB "DISTANCE     cm",0

  216.         END
復制代碼

仿真程序下載: 01.7z (52.24 KB, 下載次數: 0)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.精品国产 | 中文字幕视频三区 | 国产成人一区二区三区 | 亚州毛片 | 亚洲一卡二卡 | 日韩一二三区视频 | 中文字幕日韩一区 | av片在线观看 | 午夜电影网站 | 69av在线视频 | www97影院 | 精品三级在线观看 | 殴美成人在线视频 | www.久久影视| 亚洲成av片人久久久 | 中文字幕一区二区三区精彩视频 | 亚洲性视频在线 | 免费高潮视频95在线观看网站 | 国产亚洲一区二区三区在线观看 | 国产精品亚洲片在线播放 | 国产精品国产三级国产aⅴ中文 | 国产精品一区二区三区在线 | 国产乱码精品一品二品 | 看片91 | www成人免费视频 | 日韩成人性视频 | 久久99精品视频 | a视频在线 | 日韩欧美一区二区三区四区 | 婷婷一级片| 欧美伊人| 国产永久免费 | 国产成视频在线观看 | 少妇久久久 | 国产成人综合在线 | 在线观看黄色电影 | 伊人久久精品 | 国产福利91精品一区二区三区 | 亚洲一视频| 精品一二三 | 91国自视频 |