设计分享|基于单片机的超声波测距(汇编)

2022-07-27 19:19:06 浏览数 (1)

电子工程师成长日记

具体实现功能:

通过脉冲发生器仿真模拟单片机超声波测距并实时显示,通过按键控制开始测距和停止测距。

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,具有 8K 可编程Flash 存储器,使得51系列单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

51系列单片机具有以下标准功能:

8k字节Flash,512字节RAM,

32 位I/O 口线,看门狗定时器,

内置4KB EEPROM,

MAX810复位电路,

三个16 位 定时器/计数器,

一个6向量2级中断结构,

全双工串行口。

另外, 51系列在空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

设计思路

文献研究法:搜集整理研究资料,认真阅读文献,为研究做准备;

调查研究法:通过调查、分析、具体实验等方法,发现相关存在问题和解决办法;

比较分析法:比较不同设计的具体原理,以及同一类传感器性能的区别,分析系统的研究现状与发展前景;

软硬件设计法:通过软硬件设计实现具体硬件,最后测试各项功能是否满足要求。

单片机类设计可参考以下文章撰写论文:

毕设无忧|单片机类毕设论文模板

设计内容

仿真图(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

Protues是在单片机仿真设计中常用的设计软件之一,通过设计出仿真电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。

protues8.7软件资料及仿真解决办法:

proteus8.7安装及破解教程(内附安装包)

protues仿真常见问题解决方案

Protues8.7简易教程

程序(Keil)

本设计由汇编语言编写,全部代码如下:

代码语言:javascript复制
        ORG 0000H
        LJMP MAIN
        ORG 0003H
        LJMP INTT0
        ORG 0013H
        LJMP INTT1
        ORG 0030H
MAIN:   MOV TMOD,#01H
        MOV TL0,#00H
        MOV TH0,#00H
        MOV IE,#0FFH
        SETB IT1
        CLR EX1
        CLR IT0
        CLR P3.4
DDD:    JB P1.0,JJJ
        SETB P3.4
        SETB EX1
        MOV 30H,#00H
        MOV 31H,#00H
        MOV 32H,#00H
JJJ:    LCALL DIS
        LJMP DDD
               
INTT0:  CLR P3.4
        CLR EX1
        RETI
        
INTT1:   MOV   A,30H
         CJNE  A,#09H,L1
         MOV   30H,#00H
         MOV   A,31H
         CJNE  A,#09H,L2
         MOV   31H,#00H
         MOV   A,32H
         CJNE  A,#09H,L3
         MOV   32H,#00H
         LJMP  L4
L1:      ADD   A,#01H
         MOV   30H,A
         LJMP  L4
L2:      ADD   A,#01H
         MOV   31H,A
         LJMP  L4
L3:      ADD   A,#01H
         MOV   32H,A
         LJMP  L4
L4:      RETI

                
DIS:    MOV R0,#30H
        MOV R1,#03H
        MOV R2,#0FEH
LLL:    MOV A,R2
        MOV DPTR,#0BFFFH
        MOVX @DPTR,A
        MOV A,@R0
        MOV DPTR,#TAB
        MOVC A,@A DPTR
        MOV DPTR,#7FFFH
        MOVX @DPTR,A
        LCALL TIME
        INC R0
        MOV A,R2
        RL A
        MOV R2,A
        DJNZ R1,LLL
        RET
        
TIME:   MOV R7,#04H
KKK:    MOV R6,#0FFH
        DJNZ R6,$
        DJNZ R7,KKK
        RET
                
TAB:    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
        END

Keil C51软件资料及使用教程:

Keil C51安装及破解教程(内附安装包)

KEIL5使用技巧

Keil5简易教程

0 人点赞