当前位置:首页 > (完整版)基于AT89C51单片机的超声波测距仪的毕业设计论文
附 录
附件1:原理图
附件2:实物图
附件3:程序
#include 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 ***********************处理距离函数**************************** void smg_display() { dis_smg[0] = smg_du[distance % 10]; dis_smg[1] = smg_du[distance 10 % 10]; for(j=0;j<120;j++); dis_smg[2] = smg_du[distance 100 % 10] & 0x7f; } ******************把数据保存到单片机内部eepom中****************** void write_eepom() { SectorErase(0x2000); byte_write(0x2000, set_d % 256); byte_write(0x2001, set_d 256); byte_write(0x2058, a_a); } ******************把数据从单片机内部eepom中读出来***************** void read_eepom() { set_d = byte_read(0x2001); set_d <<= 8; set_d |= byte_read(0x2000); a_a = byte_read(0x2058); } **************开机自检eepom初始化***************** void init_eepom() { read_eepom(); if(a_a != 1) 先读 新的单片机初始单片机内问EEPOM
共分享92篇相关文档