推荐阅读最新更新时间:2024-11-17 05:43
7-基于51单片机的超声波测距及温度补偿
具体实现功能 系统由STC89C52单片机+超声波测距传感器(HC-SR04)+DS18B20温度传感器+LCD1602液晶显示屏+按键+蜂鸣器+电源构成 具体功能:1、LCD1602液晶显示测量的距离和温度; 2、测量范围0.02m~4m,精度为0.01m; 3、可以设置距离报警上下限值;按键功能:加键,减键,设置键 4、超过设定的报警上下限值则开始声光报警。 设计背景 单片机技术的迅速兴起与蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。单片机已经无处不在、与我们生活息息相关,并且渗透到生活的方方面面,如空调、VCD机、手机、微波炉、自动洗衣机及汽车电子设备等。单片机的特点是体积较小
[单片机]
WT2003H4-16S语音芯片按键录音及播放应用解析
随着智能电子产品语音交互需求的增强及快速发展,语音芯片已深入运用到各行各业。如何赋予电子产品的生命力,使产品发挥本身的功能的同时,实现语音交互。产品智能语音涉及到家电家居、出行、餐饮等,我们在实现产品具体功能的同时,产品能发声,能提示,能报警,实现这些播放声音的功能,就需要用到语音芯片。 唯创知音的WT2003H4-16S语音芯片,由其扩展的按键功能,既能实现按键录音播放,又能实现按键控制播放固定地址音频,可用于制作按压类录音玩具、录音喊话提示器、门店提示器、电动牙刷(目前市面上的电动牙刷大多只有按键控制启动,没有按键声音提示)等等。 本文以一款按压类录音播放玩具作为切入点,介绍WT2003H4-16S,目前市面上按压类玩
[嵌入式]
面向51单片机的Keil uVision4基本数据类型简介
熟悉基本数据类型是使用C语言编绎器编写程序的基本前提之一,使用keil uVision4开发51单片机C程序当然也不例外。本文将系统地介绍Keil uVision4的各种基本数据类型,希望对读者有益。 注:此为初稿,如有错误和疏漏之处,恳请读者批评指正。 在标准C语言中,存在着如下六种基本数据类型: 1、char:字符型; 2、short = short int:短整型 3、int:整型 4、long = long int:长整型 5、float:单精度浮点型 6、double:双精度浮点型 而面向51单片机的Keil uVision4对此进行了简化, 因此,可以理解为只存在如下四种基
[单片机]
51单片机不能正常起振的原因分析
如何确定晶振正常起振? 1、判断方法很多,用示波器看波形是最直接的,用数字万用表的电压档测电压也行,因晶振波形的占空比为50%,所以测得的平均电压为1/2Vcc左右,对于51单片机,在使用外置程序存储器的时候还可以测PSEN引脚或P0口引脚的电压或波形,只有晶振电路正常工作,那些引脚才会有信号输出,但现在很少采用片外扩展存储器,所以测晶体两端的电压或波形即可,只是晶振电路设计不良时,测试设备的引入有可能导致停振。 2、晶体两端的电压差不是平均电压差,虽然事实上因外电路的影响,晶体两端的电压可能会有差别,但这不是判断晶振是否起振的依据,也不是晶振电路正常工作的条件。至于一高一低没有工作是指一端为Vcc或接近Vcc,另一端为0或接
[单片机]
51单片机,18B20,1602温度计+串口通信
制作出来的实物图如下: 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 上位机: 安装程序解压到同一目录下。再运行setup安装。。。。 温度计.exe 编写环境Win10 x64. VS2010 x86 C++ MFC 测试环境Win10 x64. 在32位系统上,能不能正常使用还不清楚。 所以公布了源代码文件,如果在32位系统上,不能正常使用。 请使用源代码文件,在32位系统上重新生成一下应用程序。。。 单片机源程序如下: #include reg52.h #include math.h bit flag1s = 0, _up = 0;
[单片机]
51单片机对SAA7113初始化和控制的程序代码
用51单片机对7113初始化和控制 SAA7113的初始化就是对寄存器配置合适的参数,使其能够有符合要求的输出。寄存器配置通过I2C总线来进行,很多可以控制I2C总线的器件都可以作为主器件对7113进行初始化,这里介绍用51单片机初始化7113的例子。 51单片机和7113的硬件连接非常简单,只要把单片机的两个I/O口(如P1.0、P1.0)直接和7113的SCL、SDA管脚相连,再加上上拉电阻即可。 用单片机初始化7113的主要任务是程序的编写,首先要熟悉I2C总线协议,根据I2C总线的原理写出启动、停止、应答信号等的子程序,由子程序再写出发送、接收1个字节的程序,然后根据7113的寄存器操作格式
[单片机]
51单片机的中断源入口地址是程序存储器空间的5个单元
程序存储器低端的一些地址被固定地用作特定程序的入口地址: (1) 0000H——单片机复位后的程序入口地址。 (2) 0003H——外部中断 0 的中断服务子程序入口地址。 (3) 000BH——定时/计数器 0 的中断服务子程序入口地址。 (4) 0013H——外部中断 1 的中断服务子程序入口地址。 (5) 001BH——定时/计数器 1 的中断服务子程序入口地址。 (6) 0023H——串行口的中断服务子程序入口地址。 (7) 002BH——定时器 2 的中断服务子程序入口地址。 编程时,通常在这些入口地址开始的二三个单元中,放入一条转移指令,以使相应的 服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务子程
[单片机]
LPC2214芯片的外部中断0应用
因为最初没有看到NXP的一个纠错文件,所以把P0.16设置为外部中断0,这么一个简单的问题弄了很长时间,真的是非常的痛苦,在此写下来,也让同行有机会可以参考一下,虽然我现在还是不能够完全的把握,可总之是我现在的项目能用了,此项目中,我只开外部中断EINT0,另外几个外部中断不用。 首先要把的就是LPC_2212_2214_err.pdf这个文件关于EINT1的部分看明白,在此部分中,有个例子,如下: VPBDIV=0; EXTMODE=0x01; VPBDIV=1; VPBDIV=0; EXTPOLAR=0x01; VPBDIV=0x01; VPBDIV=0; 但是我按这个还是不能中断,到现在还不知道
[单片机]