IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于51单片机的超声波测距语音播报毕设论文 -> 正文阅读

[嵌入式]基于51单片机的超声波测距语音播报毕设论文

在这里插入图片描述
在这里插入图片描述

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
#include <intrins.h>

//数码管段选定义      0     1    2    3    4    5	6	 7	  8	   9	
uchar code smg_du[]={0x25,0xee,0x37,0xa2,0xe2,0xa1,0x21,0xea,0x20,0xa0,
				  	 0x60,0x25,0x39,0x26,0x31,0x71,0xff};	 //断码
//数码管位选定义
uchar code smg_we[]={0xe0,0xb0,0xd0,0x70};
uchar dis_smg[4]   ={0};

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;		//超声波接收

sbit beep = P3^1;   //蜂鸣器IO口定义

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

long distance;	        //距离
uint set_d;	            //距离
uchar flag_csb_juli;    //超声波超出量程
uint  flag_time0;       //用来保存定时器0的时候的
uchar menu_1;           //菜单设计的变量



/***********************语音模块控制IO口的定义************************/
sbit  VRST = P2^3; 
sbit  VBUSY= P2^7;	
sbit  VSDA = P2^6; 
sbit  VCS  = P2^5;  
sbit  VSCL = P2^4;
uchar yujing[3];

/***************************
	   语音地址的安排
0 - 9 :  对应数字0到9
0b    : 点
0c    : 米
0d    : 已超出量程
									  
**************************/

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


/********************独立按键程序*****************/
uchar key_can;	 //按键值

void key()	 //独立按键程序
{
	static uchar key_new;
	key_can = 20;                   //按键值还原
	P2 |= 0x07;
	if((P2 & 0x07) != 0x06)		//按键按下
	{
		delay_1ms(1);	     	//按键消抖动
		if(((P2 & 0x07) != 0x07) && (key_new == 1))
		{						//确认是按键按下
			key_new = 0;
			switch(P2 & 0x07)
			{
				case 0x05: key_can = 1; break;	   //得到k2键值
				case 0x04: key_can = 2; break;	   //得到k3键值
				case 0x02: key_can = 3; break;	   //得到k4键值
			}
		}			
	}
	else 
		key_new = 1;	
}

/****************按键处理显示函数***************/
void key_with()
{
	if(key_can == 1)		//设置键
	{
		menu_1 ++;
		if(menu_1 >= 2)
		{
			menu_1 = 0;
			smg_i = 3;		//只显示3位数码管 
		}
		if(menu_1 == 1)
		{
			smg_i = 4;	    //只显示4位数码管 
		}
	}
	if(menu_1 == 1)			//设置报警
	{
		if(key_can == 2)
		{
			set_d ++ ;		//加1
			if(set_d > 400)
				set_d = 400;
		}
		if(key_can == 3)
		{
			set_d -- ;		//减1
			if(set_d <= 1)
				set_d = 1;
		}
		dis_smg[0] = smg_du[set_d % 10];	           //取小数显示
		dis_smg[1] = smg_du[set_d / 10 % 10] ;         //取个位显示
		dis_smg[2] = smg_du[set_d / 100 % 10] & 0xdf ; //取十位显示
		dis_smg[3] = smg_du[10];	        //a
	}	
}  


链接:https://pan.baidu.com/s/13mObPBf6W5a1_tBT1_sZ3Q
提取码:06yg

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:22:45  更:2021-08-04 11:23:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 16:04:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码