久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機匯編語言超聲波測距報警程序和Proteus仿真
[打印本頁]
作者:
李花生51
時間:
2025-6-23 21:32
標題:
單片機匯編語言超聲波測距報警程序和Proteus仿真
匯編程序編寫,分享給各位
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei圖片_20250623213624.png
(201.45 KB, 下載次數: 0)
下載附件
2025-6-23 21:32 上傳
單片機源程序如下:
RS BIT P1.0 ;LCD1602引腳定義
RW BIT P1.1
EN BIT P1.2
ECHO BIT P3.6 ;回波信號端
NUM EQU 40H ;定時器用
H EQU 41H ;距離高8位
L EQU 42H ;距離低8位
ORG 0000H
LJMP MAIN
ORG 000BH ;定時器0入口
LJMP TIME0
ORG 0030H
MAIN:
MOV SP,#60H
MOV R0,#40H
MOV A,#0
MOV NUM,#0
MOV H,#0
MOV L,#0
MOV H,#1
MOV L,#0
LCALL LCD1602_INIT ;1602初始化
LCALL DELAY2
MOV A,#80H
LCALL WRITE_1602COM
MOV DPTR,#CODE_PRINT
LCALL PRINT
MOV TMOD,#11H ;初始化定時器
MOV TH0,#0;
MOV TL0,#0;
SETB EA
SETB ET0
;主循環
LOOP:
SETB TR1
LOOP1:
JB ECHO,LOOP2
SJMP LOOP1
LOOP2:
SETB TR0
LOOP3:
JNB ECHO,LOOP4
SJMP LOOP3
LOOP4:
CLR TR0
LCALL COUNT
LCALL DISPLAY ;顯示距離
SJMP LOOP6
LOOP5:
CLR TR0
MOV TH0,#0;
MOV TL0,#0;
LOOP6:
SJMP LOOP
COUNT: ;計算距離 cm=us/58
MOV R1,TH0
MOV R0,TL0
MOV L,#0
MOV H,#0
MOV TH0,#0
MOV TL0,#0
DIS1:
CLR C ;循環被除數減去除數的次數就是這個商
MOV A, R0
SUBB A, #3AH
MOV R0, A
MOV A, R1
SUBB A, #0
MOV R1, A
JC DIS2
INC L
MOV A,L
CJNE A,#0,DIS1
INC H
SJMP DIS1
DIS2:
RET
DISPLAY: ;顯示距離
MOV R6,H
MOV R7,L
LCALL HB2 ;2字節16進制數轉換為3字節壓縮BCD碼
MOV A,#089H
MOV B,R4
LCALL DIS_1BIT
MOV A,R5
LCALL DIS_2BIT
CJNE R4,#3,DIS0
CLR P3.7
RET
DIS0:
SETB P3.7
RET
;LCD1602初始化函數
LCD1602_INIT:
MOV A,#38H
LCALL WRITE_1602COM
MOV A,#0CH
LCALL WRITE_1602COM
MOV A,#06H
LCALL WRITE_1602COM
MOV A,#01H
LCALL WRITE_1602COM
RET
WRITE_1602COM: ;寫命令
CLR RS
CLR RW
MOV P0,A
LCALL DELAY1
SETB EN
LCALL DELAY1
CLR EN
RET
WRITE_1602DAT: ;寫數據
SETB RS
CLR RW
MOV P0,A
LCALL DELAY1
SETB EN
LCALL DELAY1
CLR EN
RET
;1602顯示字符串函數
PRINT:
MOV R0,#0
PRINT1:
MOV A,R0
MOVC A,@A+DPTR
CJNE A,#0,PRINT0
RET
PRINT0:
LCALL WRITE_1602DAT
INC R0
SJMP PRINT1
;1602顯示2位整數
DIS_2BIT:
MOV B,#16
DIV AB
ADD A,#30H
LCALL WRITE_1602DAT
MOV A,B
ADD A,#30H
LCALL WRITE_1602DAT
RET
;1602顯示1位整數
DIS_1BIT: ;A是地址 B放數據
LCALL WRITE_1602COM
MOV A,B
ADD A,#30H
LCALL WRITE_1602DAT
RET
DELAY1: ;延時1
MOV 30H,#20
DJNZ 30H,$
RET
DELAY2: ;延時2
MOV 30H,#50
DELAY20:
MOV 31H,#50
DJNZ 31H,$
DJNZ 30H,DELAY20
RET
;定時器0中斷函數
TIME0:
RETI
HB2:
CLR A ;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;轉換雙字節十六進制整數
HB3:
MOV A,R7 ;從高端移出待轉換數的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD碼帶進位自身相加,相當于乘2
ADDC A,R5
DA A ;十進制調整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;雙字節十六進制數的萬位數不超過6,不用調整
DJNZ R2,HB3 ;處理完16bit
RET
CODE_PRINT:
DB "DISTANCE cm",0
END
復制代碼
仿真程序下載:
01.7z
(52.24 KB, 下載次數: 0)
2025-6-23 21:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产探花视频在线观看
|
色香蕉视频
|
波多野结衣一区二区
|
日本免费毛片
|
久久久青青
|
中文字幕理论片
|
视频一区中文字幕
|
国产在线一
|
www.99riav
|
欧美日韩免费看
|
国产伦精品一区二区三区在线
|
国产中文字幕一区二区
|
日韩精品综合
|
欧美一区视频
|
国产精品视频在线观看
|
久久久久久久综合
|
日本黄色免费看
|
在线一区二区三区四区
|
国产精品二区一区二区aⅴ污介绍
|
蜜桃91丨九色丨蝌蚪91桃色
|
中文字幕日韩高清
|
免费一级黄色片
|
久久精品综合
|
国产黄色免费网站
|
白白色在线观看
|
国产精品国产三级国产专区53
|
一区二区三区国产精品
|
亚洲免费观看
|
中国一级毛片免费看
|
日韩av一二三区
|
国产亚洲视频在线观看
|
91av免费观看
|
欧美精品一区在线
|
亚洲激情一区
|
丁香花在线观看
|
国产精品欧美激情
|
二区三区在线观看
|
日韩成人精品
|
97视频免费
|
欧美一级片网站
|
嫩草嫩草嫩草嫩草
|