基于AT89C51单片机的超声波测距仪的设计 - 图文 下载本文

六、参考文献

[1] 吴政江. 单片机控制红外线防盗报警器[J]. 锦州师范学院学报, 2001. [2] 宋文绪. 传感器与检测技术[M]. 北京: 高等教育出版社, 2004.

[3] 余锡存. 单片机原理及接口技术[M]. 西安: 西安电子科技大学出版社, 2000. [4] 唐桃波, 陈玉林. 基于AT89C51的智能无线安防报警器 [J]. 电子设计应用, 2003, 5(6): 49~51.

[5] 李全利. 单片机原理及接口技术[M]. 北京: 北京航空航天大学出版社, 2004. [6] 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用[M]. 西安: 西安交通大学出版社, 2005.

[7] 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计[M]. 北京: 北京航空航天大学出版社, 2006.

[8] 康华光. 电子技术基础(模拟部分)[M]. 北京: 高等教育出版社, 2004.

- 13 -

附 录

附件1:原理图

- 14 -

附件2:实物图

附件3:程序

#include #include #include \

#define uchar unsigned char #define uint unsigned int

//数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码 //数码管位选定义

uchar code smg_we[]={0xe0,0xd0,0xb0,0x70};

uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};

- 15 -

sbit smg_we1 = P3^4; //数码管位选定义 sbit smg_we2 = P3^5; sbit smg_we3 = P3^6; sbit smg_we4 = P3^7;

sbit c_send = P3^2; //超声波发射 sbit c_recive = P3^3; //超声波接收

uchar flag_hc_value; //超声波中间变量

sbit beep = P2^3; //蜂鸣器IO口定义

bit flag_key_b_en,flag_key_set_en; //按键蜂鸣器使能

uchar smg_i = 3; //显示数码管的个位数 bit flag_300ms ;

bit key_500ms ;

long distance; //距离 uint set_d; //距离

bit flag_csb_juli; //超声波超出量程

uint flag_time0; //用来保存定时器0的时候的

// 按键的IO变量的定义

uchar key_can; //按键值的变量

uchar zd_break_en,zd_break_value; //自动退出设置界面 uchar menu_shudu = 10; //用来控制连加的速度 bit flag_lj_en; //按键连加使能

bit flag_lj_3_en; //按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value; //用做连加的中间变量 uchar menu_1; //菜单设计的变量 uchar a_a;

/***********************1ms延时函数*****************************/ void delay_1ms(uint q) { uint i,j; for(i=0;i

/***********************处理距离函数****************************/

- 16 -