基于AT89C51单片机超声波测距仪的设计毕业设计

loading 分享 2026-8-21 下载文档

参考文献

[1]谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006 [2]蔡菲娜.单片微型计算机原理和应用.杭州:杭州大学出版社,1995 [3]李建忠.单片机原理及应用.西安:西安电子科技大学出版社,2002

[4]张齐等.单片机应用系统设计技术----基于C语言编程.北京:电子工业出版社,2004 [5]吴延海.微型计算机接口技术.重庆:重庆大学出版社,1997 [6]李丽霞.单片机在超声波测距中的应用[J].电子技术,2002

[7]姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000 [8]张鹏,张有志.一种新型超生测距系统[J].山东:山东大学学报,2003,33(1)

[9]李学海.PIC单片机实用教程-基础篇(第1版)[M].北京航天航空大学出版社.北京:2002 年2月。

[10]陈大新,胡学同,周杏鹏.利用FPGA改进超声波测距模块设计[J].传感器技术,2005,24(2): 57~59

[11]朱伟芳.一种便携式长度测量系统的硬件设计[J].江苏电器,2005,5:14-15

29

附录

附录1电路原理图

30

附录2程序源代码

超声测距器单片机程序 MCU AT89C51 XAL 12 MHz #include < reg51.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long extern void cs_t(void); extern void delay(unit); extern void display(uchar *); data uchar testok;

/ * 主程序 * / void main (void) {

data uchar dispram[5]; data uint i; data ulong time; p0=0xff; p2=0xff; TMOD=0x11; IE=0x80; while (1) {

cs_t(); delay(1); testok=0; EX0=1; ET0=1;

while ( ! testok ) display(dispram); if ( 1==testok) {

31

time = TH0;

time = (time<<8)|TL0; time * =172; time /=100000;

dispram[0]=(uchar) (time % 10); time /=10;

dispram[1]=(uchar) (time % 10); time /=10;

dispram[2]=(uchar) (time % 10); dispram[3]=(uchar) (time % 10); if(0==dispram[3]) dispram[3] =17; } else {

Dispram[0] = 16; Dispram[1] = 16; Dispram[2] = 16; Dispram[3] = 16; }

for (i=0; i<=300; i++) display(dispram); } }

/ * 超声波接收程序(外中断0)* / Void cs_r(void) interrupt 0 {

TR0 = 0; ET0 = 0; EX0 = 0; testok = 1; }

/ * 超声波清除程序(内中断 T0)*/

32


基于AT89C51单片机超声波测距仪的设计毕业设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于AT89C51单片机超声波测距仪的设计毕业设计 的文档
相关推荐
相关阅读