用 51 系列单片机实现语音输出

用 51 系列单片机实现语音输出
用 51 系列单片机实现语音输出

用 51 系列单片机实现语音输出

本文是一编介绍如何通过 51 系列单片机来实现语音输出的文章,相信现在大家可以轻松地在网上,各种书本上找到如何用单片机来实现音乐及各种报警声的输出。当我在撑握了各音乐及报警声的输出技巧后,我就一直在想,是否可以用单片机实现语音的输出?且要如何才能实现语音的输出?后来在我查找和学习了各方面的资料后,终于找到了一种可以使单片机实用语音输出的方法,并且是一种很简单的方法,下面我就同大家分享我的成果。

原理在这样的,先在电脑中用COOL EDIT PRO 2.0 来记录我的语音,记录完成后再进行一定的编辑和处理,把一些多余的声音删去(因为在这里一秒的语音数据就要占去 8k 的空间)。然后再通过这个软件把我所要的语音信号输出转换为取样率为 8k 的数据(为文本格式),然后再编程使单片机每间隔

1/8k 秒输出一字节的数据。这样每一次输出的 8 位数据通过 DAC0800 数模转换,转换成相应的电流信号,然后再通过运放 LM358 转换成电压信号来驱动扬声器来发出语音信号。下面就一步一步详细教大家如何完成这些工作。 1.硬件

我们先按图(1)用面包板焊接好所需的线图(我就是用面包板做的),有条件的朋友可以自已做热转印板或请 PCB 厂家加工。只要大家的元零焊接正确且参数正确,硬件部份是没问题的。元零的参数如下:

R1 R2 R4 R5 R6——1k

R3———2k

C1 C2———30P

C3———100P

C4———10uF

Y1———12M

U1———89C52

U2———DAC0800

U3———LM358

图(1)

2.软件

写入到单片机中的程式如下面所示。每个指令我做了注释,相信大家应都可在看得明

的了。

******************************

dac_out equ p2 ;定义 p2 口为 DAC 的数据输出端口;

*****************************

org 00h

jmp start ;程式从 100 开始

org 0100h

start:

out_loop:

mov p2,#0h ;清 p2 口

mov dptr,#dac0800_table ;取 DAC 输出数据的首址到 dptr 中

mov a,#0h ;清累加器 A

movc a,@a+dptr ;取 A+dptr 所指位置的数据到累加器 A 中

mov dac_out,a ;把刚才取出的数据送到 DAC 输出口 p2

call delay_125us ;延时 125us,也即是 1/8k

inc dptr ;dptr 指针加一

cjne a,#255d,out_loop ;识别到了数据的结尾,不是则继续。

jmp $ ;送完所有的语音数据后,程式运行到此

delay_125us: ;延时 125us 的子程式

mov r5,#55

djnz r5,$

ret

dac0800_table: ;DAC 数据的首址

;***************************星号之间是处理好的数据

db 119

db 120

db 121

db 122

。。。。。。。。。。

。。。。。。。。。。

。。。。。。。。。。

db 107

db 114

;***************************

db 255 ;此 255 是数据结束标志

end

大家要注意的是,在程式中 db 119 到 db 114 之间的数据(为十进制)是我从 cool edit pro 2.0 中转出来的语音数据,而 db 255 这一行是我自已加入去的数据结束示志位,而不是数据。因为单片机的空间有限,所以我的程式的取样率定的是 8K(我觉用 8K 的取样率 语音质量也不差了),比较小(但一秒钟也有 8000 行数据),所以程式每输出一行数据要延时 125US(1/8K),如果延时时间不对,语音会变调,大家到时可以试试,很爽的。

另如果在软件 COOL EDIT PRO 2.0 中的数据取样率有所变动,在单片机的程式中的延时时间也要相映变动。取样率越大数据所占的空间就会越大,这里就是为什么我 选用 AT89C52 的原因了,52 有 8K 的程式空间,而一秒钟的数据也是 8K,当我取不到 一秒钟的数据时再加上几十个字节的程式空间,就刚可以放入到 52 中去了。大家可能 觉一秒钟的语音太少了,不够爽。那怎么办?有两个为法,一是选用空间更大的单片 机,另一办法是扩展外部的数据空间,外接一个 EEPROM 这样就行了。扩展多大你就看着办吧,呵呵!是不是。

3.语音数据的处理

在 PC 机中可以进行语音数据处理的工具软件实用太多了,但我试了各种软件,还是觉得 COOL EDIT PRO 2.0(大家可以在网上下载这个软件,我用的就是汉化版的) 这个工具软件用得比较顺手,所以下面我就按这个软件来价绍如何进语音数据的处理。图(2)就是这个软件的界面,不错吧!

图(2)

(1)打开此软件后,点击软件左上角的“文件”菜单选择“新建“命令就可进到图(3) 所示的选项界面。

图(3)

(2)进入图(3)的选项界面后,按图中所示的选项进行设定就可以了。点击“确定”按 钮后就完成了对将要采样的语音信号的格式定义,如图(4)所示就是确认后的界面。这样 下一步就可以开始记录我们需要的语音信号了。

图(4)

(3)在开始录音之前,大家要做的工作就是先在电脑上插上一个话筒(大家可以在电脑市场买到,如果有条件也可以自已做一个,很简单的,找来一个驻极体话筒,焊上两根线,其中与话筒的外壳相连的是地,另一为信号输出端,再在线的另一端焊上一个立体声插头就可以了),接着确认你的话筒是否能正常工作。(4)完成输入设备话筒的准备工作后,大家就可以开始录音了。点击图(5)中红色的录 音按钮就可以开始录音,这时你就可以对着话筒说话。这样此软件就会记录下你的语音信 息了,再次点击红色的按钮你就完成了语音输入的工作,数据如图(6)所示。接下来就你 需要对刚才录下的语音信息进行编辑处理。

图(5)

图(6)

(5)你需要将图(6)中的语音信号的头尾处没用的数据删掉,删掉后的数据如图(7)所示。

大家可能会觉删掉头尾的数据后怎么两图会相差那么远,其实你删除头尾的数据后软件会自动拉长,所以就会变成这样了。同时大家在处理数据时也要相应地注意一下左下角的时间值如图(8)所示(图(8)所示的时间为 0.9 秒,数据所占空间为 7K 左右),以保证在一秒以内,因为现在选用的是有 8K 内存空间的 89C52,所以数据加程式不能大于 8K(用 8000 的采样率,一秒就占用 8K 的空间),如果大家用更大空间的单片机,记录的数据就可以相应更大一些。大家就自已计算了。

图(7)

图(8)

(6)完成数据的处理工作后,就可以输出此数据了。点击左上角的“文件”菜单选择“保存为”的命令,就会出现图(9)所示的对话框,大家按图所示那样将刚才处理好的数据保存为文本格式(*.TXT)就完成了本步骤的工作。完成后的数据如图(10)所示。不知大家是否有注意到图中的数据都没有大于 255 的(当然啦 8 位的取样采一定不会大于 255 的)。

图(9)

图(10)

(7)完成数据输出后,还要做一些简单的处理。在每一行数据的前面加上“DB”。只有这样处理后,单片机的程式才能调用。可能大家又会问,这 7000 多行我一行

一行要加到何时啊,大家不要急,开始时我就是这样一行一行处理的,共花了几个钟的时间才加好,但到了后来我想到一个好办法。下面我就教大家这个好办法。 (8)大家先打开微软的 EXCEL,将你输出的数据文件中的数据部份复制到 ECCEL 中,将数据的头部删去,注意是复制到第二列,如图(11)所示。

图(11)

(9)完成上面的工作后,再利用 EXCEL 的特殊复制功能(这个功能是这样的,你先在第一行输入“DB”,再选取这一个栏,接着按着 CTRL 键,再点选这一栏进行拖动,一直拖到再后一行,就可以了),在第一列复制出一列的“DB”,如图(12 所示)

图(12)

(10)完成加“DB”的工作后,就可以把这些处理好的数据复制到单片机的程式中了,结果如前面程式中所示。好了,到了这一步,所有的工作就算已经完成了,大家接着好做的工作就是编绎程式,写入到单片机中,再插入到线路板,加上电源就可以工作。爽吧!

源地址:

https://www.360docs.net/doc/c613700816.html,/GetEntry.do?id=462682686&owner=244550966

基于MCS-51单片机的频率可调的方波发生器设计

基于MC51单片机的频率可调的方波信号发生器 用单片机产生频率可调的方波信号。输出方波的频率范围为1Hz-200Hz,频率误差比小于0.5%。要求用“增加”、“减小”2 个按钮改变方波给定频率,按钮每按下一次,给定频率改变的步进步长为1Hz,当按钮持续按下的时间超过2 秒后,给定频率以10 次/秒的速度连续增加(减少),输出方波的频率要求在数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。开机默认输出频率为5Hz。 1:系统设计 (1)分析任务要求,写出系统整体设计思路 任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O 管脚的状态取反。由于频率范围最高为200Hz,即每个周期为5ms(占空比1:1,即高电平2.5ms,低电平2.5 ms),因此,定时器可以工作在8 位自动装载的工作模式。涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。 问题的难点在按键连续按下超过2S 的计时问题,如何实现计时功能。 系统的整体思路: 主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中断程序负责方波的产生、按键连续按下超过2S 后频率值以10Hz/s 递增(递减)。 (2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 采用MCS51 系列单片机At89S51 作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。数码管驱动采用2 个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244 作为数码管的驱动。在74HC244 的7 段码输出线上串联100 欧姆电阻起限流作用。独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。 图1 方波信号发生器的硬件电路原理图 (3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图 软件任务要求包括按键扫描、定时器的控制、按键连续按下的判断和计时、数码管的动态显示。 程序设计思路:根据定时器溢出的时间,将频率值换算为定时器溢出的次数(T1_over_num)。使用变量(T1_cnt)暂存定时器T1 的溢出次数,当达到规定的次数(T1_over_num)时,将输出管脚的状态取反达到方波的产生。主程序采用查询的方式实现按键的扫描和数码管的显示,中断服务程序实现方波的产生和连续按键的计时功能。单片机内部资源分配:定时器T1 用来实现方波的产生和连续按键的计时功能,内部变量的定义: hz_shu:设定的频率数;

51单片机实例程100讲全集

目录 目录 (1) 函数的使用和熟悉 (4) 实例3:用单片机控制第一个灯亮 (4) 实例4:用单片机控制一个灯闪烁:认识单片机的工作频率 (4) 实例5:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能 (5) 实例6:使用P3口流水点亮8位LED (5) 实例7:通过对P3口地址的操作流水点亮8位LED (6) 实例8:用不同数据类型控制灯闪烁时间 (7) 实例9:用P0口、P1 口分别显示加法和减法运算结果 (8) 实例10:用P0、P1口显示乘法运算结果 (9) 实例11:用P1、P0口显示除法运算结果 (9) 实例12:用自增运算控制P0口8位LED流水花样 (10) 实例13:用P0口显示逻辑"与"运算结果 (10) 实例14:用P0口显示条件运算结果 (11) 实例15:用P0口显示按位"异或"运算结果 (11) 实例16:用P0显示左移运算结果 (11) 实例17:"万能逻辑电路"实验 (11) 实例18:用右移运算流水点亮P1口8位LED (12) 实例19:用if语句控制P0口8位LED的流水方向 (13) 实例20:用swtich语句的控制P0口8位LED的点亮状态 (13) 实例21:用for语句控制蜂鸣器鸣笛次数 (14) 实例22:用while语句控制LED (15) 实例23:用do-while语句控制P0口8位LED流水点亮 (16) 实例24:用字符型数组控制P0口8位LED流水点亮 (17) 实例25:用P0口显示字符串常量 (18) 实例26:用P0 口显示指针运算结果 (19) 实例27:用指针数组控制P0口8位LED流水点亮 (19) 实例28:用数组的指针控制P0 口8 位LED流水点亮 (20) 实例29:用P0 、P1口显示整型函数返回值 (21) 实例30:用有参函数控制P0口8位LED流水速度 (22) 实例31:用数组作函数参数控制流水花样 (22) 实例32:用指针作函数参数控制P0口8位LED流水点亮 (23) 实例33:用函数型指针控制P1口灯花样 (25) 实例34:用指针数组作为函数的参数显示多个字符串 (26) 实例35:字符函数ctype.h应用举例 (27) 实例36:内部函数intrins.h应用举例 (27) 实例37:标准函数stdlib.h应用举例 (28) 实例38:字符串函数string.h应用举例 (29) 实例39:宏定义应用举例2 (29) 实例40:宏定义应用举例2 (29) 实例41:宏定义应用举例3 (30)

基于AT89S51单片机的智能超声波避障小车

基于 AT89S51 单片机的智能 超声波避障小车
姓名: 班级: 学号:
钟洋 08 电子二班 200810330219 张儒
指导老师:

目录
摘要...........................................3 一、总体方案概述.......................................3 二、总体电路原理图....................................3 三、各模块功能介绍.................................4 (一) 、超声波测距模块................................4 (二) 、数码管显示模块................................4 (三) 、步进电机控制模块..............................6 (四) 、语音提示模块..................................7 (五) 、速度自控模块..................................8 (六) 、信号提示模块..................................8 (七) 、单片机控制模块...............................8 四、系统软件设计..................................9 五、元件清单.....................................10 六、应用前景.....................................10 六、参考文献.....................................11
2

课程设计—基于单片机的方波信号发生器汇总

微型计算机技术专业方向课程设计 任务书 题目名称:基于单片机的方波信号发生器 专业自动化班级122 姓名学号 学校: 指导教师: 2014年12月9日

课程设计任务书 课程名称:微型计算机技术 设计题目:基于单片机的方波信号发生器系 统硬件要求: 从P1.0口输出方波,分四个档:按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波,要求误差少于1%, 软件设计: 1)主程序设计 2)各功能子程序设计 其他要求: 1、每位同学独立完成本设计。 2、依据题目要求,提出系统设计方案。 3、设计系统电路原理图。 1、调试系统硬件电路、功能程序。 2、编制课程设计报告书并装订成册,报告书内容(按顺序) (1)报告书封面 (2)课程设计任务书 (3)系统设计方案的提出、分析 (4)系统中典型电路的分析 (5)系统软件结构框图 (6)系统电路原理图 (7)源程序 (8)课设字数不少于2000字 成绩 评语

摘要 本实验是基于AT89C51单片机单片机所设计的,可以实现四种频率不同的方波信号的发生。本实验方波输出在89C51的P1.0口,分为四档,按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波。 关键词:51单片机;方波;四档

目录 第一章前言 (5) 第二章系统总体设计 2.1系统介绍 (5) 2.2 硬件简介 (5) 2.3 软件简介 (5) 2.4 系统结构框图 (5) 第三章硬件电路 3.1硬件设计思想 (6) 3.2开关信号采集 (6) 3.3复位电路及晶振电路 (8) 3.4方波输出 (8) 第四章软件系统 4.1软件系统概述 (8) 4.2各部分程序 (10) 第五章总结 (15) 附录 (16)

51单片机汇编语言编程:用定时器控制输出矩形波

80C51单片机的时钟频率为12MHz,利用定时器T1和P1.0输出矩形脉冲。 波形只画出了2段:一段为100us 另一段为50us。 要完全的、完整的、详细的编写此程序的过程!谢谢 ------------------------ 最佳答案: 用一个定时器定时50us,也可以达到题目要求。 在我的空间里面有类似的问题和解答。 ORG 0000H SJMP START ORG 001BH ;T1中断入口. SJMP T1_INT START: MOV TMOD, #20H ;设置T1定时方式2 MOV TH1, #206 ;自动重新装入方式. MOV TL1, #206 ;定时时间 MOV IE, #10001000B ;开放总中断和T1中断. SETB TR1 ;启动T1 MOV R2, #3 ;周期是3×50us SJMP $ ;等着吧. T1_INT: SETB P1.0 ;输出高.

DJNZ R2, T1_END ;R2-1 CLR P1.0 ;减到0,就输出低电平. MOV R2, #3 T1_END: RETI ;中断返回. END ;完. ------------------------ 已知51单片机系统晶振频率为12MHz,请利用定时器1工作方式1,中断方式在P2.3输出频率为10Hz的方波。 写出定时设计过程及完整代码 问题补充:用汇编的麻烦写一下 ------------------------ 最佳答案: ORG 0000H SJMP START ORG 001BH ;T1中断入口. SJMP T1_INT START: MOV TMOD, #10H ;设置T1定时方式1 MOV TH1, #(65536-50000) / 256 ;送入初始值.

51单片机控制智能小车解析

单片机项目 报 告 班级:自动化21091 姓名:邸维汉刘会丽石钱坤学号:1020103304 2010103215 2010103122 智能小车控制

目录 一、前言 二、方案设计与论证 1)控制器模块选取 2)电机模块选取 3)电机驱动器模块选取 4)电源模块选取 三、硬件设计 1)主控系统 2)电机模块 3)电机驱动模块 4)电源模块 5)按键模块 四、软件设计 1)直行设计 2)转弯设计 3)调速设计 五、调试中存在的问题 六、参考文献

一、前言: 随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,指导教师已经有充分的准备。本题目是结合科研项目而确定的设计类课题。我们设计的智能电动小车该具有圆形运行、三角形运行、矩形运行和三者一起运行的功能。都是运行一循环自动停车。 根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。 这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。本设计采用STC89C52单片机。以STC89C52为控制核心,利用按键的动作,控制电动小汽车的轨迹。实现四种运行轨迹。STC89C52是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。 二、方案设计与论证 1)控制器模块选取 我们采用STC公司的STC89S52单片机作为主控制器,STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它在5V供电情况下,最多支持80M晶振、且内部有512B的RAM数据存储器、片内含8k空间的可反复擦些1000次的Flash只读存储器、1K的EEPROM、8个中断源、4个优先级、3个定时器、32个IO口、片机自带看门狗、双数据指针等。但是不兼容Atmel。 从方便使用的角度考虑,我们选择了此方案 2)电机模块选取 采用普通直流电机。直流电机运转平稳,精度有一定的保证。直流电机控制的精确度虽然没有步进电机那样高,但完全可以满足本题目的要求。通过单片机的PWM输出同样可以控制直流电机的旋转速度,实现电动车的速度控制。并且直流电机相对于步进电机价格经济。 3)电机驱动器模块选取

51单片机实用汇编程序库(word)

51 单片机实用程序库 4.1 流水灯 程序介绍:利用P1 口通过一定延时轮流产生低电平 输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。 程序实例(LAMP.ASM) ORG 0000H AJMP MAIN ORG 0030H MAIN: 9 MOV A,#00H MOV P1,A ;灭所有的灯 MOV A,#11111110B MAIN1: MOV P1,A ;开最左边的灯 ACALL DELAY ;延时 RL A ;将开的灯向右边移 AJMP MAIN ;循环 DELAY: MOV 30H,#0FFH D1: MOV 31H,#0FFH D2: DJNZ 31H,D2 DJNZ 30H,D1 RET END 4.2 方波输出 程序介绍:P1.0 口输出高电平,延时后再输出低电 平,循环输出产生方波。实际应用中例如:波形发生器。 程序实例(FAN.ASM): ORG 0000H MAIN: ;直接利用P1.0 口产生高低电平地形成方波////////////// ACALL DELAY SETB P1.0 ACALL DELAY 10 CLR P1.0 AJMP MAIN ;////////////////////////////////////////////////// DELAY: MOV R1,#0FFH DJNZ R1,$ RET

五、定时器功能实例 5.1 定时1 秒报警 程序介绍:定时器1 每隔1 秒钟将p1.o 的输出状态改变1 次,以达到定时报警的目的。实际应用例如:定时报警器。程序实例(DIN1.ASM): ORG 0000H AJMP MAIN ORG 000BH AJMP DIN0 ;定时器0 入口 MAIN: TFLA G EQU 34H ;时间秒标志,判是否到50 个 0.2 秒,即50*0.2=1 秒 MOV TMOD,#00000001B;定时器0 工作于方式 1 MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 11 SETB EA ;开总中断 SETB ET0 ;开定时器0 中断允许 SETB TR0 ;开定时0 运行 SETB P1.0 LOOP: AJMP LOOP DIN0: ;是否到一秒//////////////////////////////////////// INCC: INC TFLAG MOV A,TFLAG CJNE A,#20,RE MOV TFLAG,#00H CPL P1.0 ;////////////////////////////////////////////////// RE: MOV TL0,#0AFH MOV TH0,#3CH ;设定时时间为0.05 秒,定时 20 次则一秒 RETI END 5.2 频率输出公式 介绍:f=1/t s51 使用12M 晶振,一个周期是1 微秒使用定时器1 工作于方式0,最大值为65535,以产生200HZ 的频率为例: 200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电

基于 单片机设计智能避障小车

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以STC89C51单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N 驱动电路完成,速度由单片机输出的PWM波控制。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。 关键词:智能小车;51单片机;L298N;红外避障;寻迹行驶 abstract Using infrared detection black and obstacles to the line and STC89C51 microcontroller as the control chip to control the speed of the electric car and steering, so as to realize the function of automatic tracking and obstacle avoidance. Which the car driven by the L298N driver circuit is completed, the speed of the microcontroller output PWM wave control. This article first introduces the development of the intelligent car prospect, then introduces the design idea, the subject selection of each module circuit and working principle of the circuit, the design process of the subject is summarized and prospect with each module circuit principle diagram, and the real figure design, and complete C language program. Key words: smart car; 51 MCU; L298N; infrared obstacle avoidance; track driving

基于某51单片机的智能小车控制系统

工业职业技术学院 毕业设计 课题名称基于51与单片机的智能小车控制系统 系(院)名称电气工程系 专业及班级 学生 学号 指导教师

完成日期年11 月19 日

摘要 随着我国科学技术的进步,智能化作为现代社会的新产物开始越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。 整个小车平台主要以51单片机为控制核心,通过无线遥控实现前进后退和转向行驶,通过红外线传感器,实现小车的自适应巡航、避障等功能。设计采用对比选择,模块独立,综合处理的研究方法。通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。从电机车体,最小系统到无线遥控,红外线对管的自动寻迹再到红外线自动避障和语音控制,完成各模块设计。通过调试检测各模块,得到正确的信号输出,实现其应有的功能。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。 关键字:智能小车,单片机,红外传感器。

目录 第一章绪论.............................................................................................................................- 1 - 1.1.1智能循迹小车概述........................................................................................................- 1 - 1.1.2课题研究的目的和意义 ...............................................................................................- 2 - 1.1.3智能循迹小车智能循迹分类.......................................................................................- 3 - 1.1.4智能循迹小车的应用....................................................................................................- 3 - 第二章方案设计 ..........................................................................................................................- 5 - 2.1 主控系统.........................................................................................................................- 5 - 2.2单片机最小系统 ...............................................................................................................- 6 - 2.2.1 STC89C52简介...................................................................................................- 6 - 2.2.2 时钟电路...............................................................................................................- 8 - 2.2.3复位及复位电路....................................................................................................- 8 - 2.3 电机驱动模块................................................................................................................ - 10 - 2.4 循迹及避障模块............................................................................................................ - 11 - 2.5 机械系统......................................................................................................................... - 11 - 2.6电源模块......................................................................................................................... - 11 - 第三章硬件设计 ..................................................................................................................... - 12 - 3.1总体设计......................................................................................................................... - 12 - 3.1.1主板设计框图..................................................................................................... - 12 - 主板设计框图如图3-1,所需原件清单如表3-1 .................................................. - 12 -

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

基于MCS-51单片机的可调频率方波发生器课程设计报告[1]

单片机课程设计报告 设计题目:频率可调方波发生器 专业班级:生物医学工程09班 组长:李建华 组员:梁国锋,赖水兵,郭万劲,李建华2010 年 06 月 16日

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

51单片机-循迹小车项目报告材料(完整)

职业技术学院 《单片机系统设计》 项目设计报告 项目设计题目:智能寻迹小车 系部:电子信息与控制工程系班级:电子 XXXX 班 组号:第四组 小组成员:XXX 指导教师:XXX 2017年10月10日

目录 一、引言 (3) 二、方案论证 (4) 三、小车车体设计 (7) 四、硬件系统设计 (8) 1、单片机最小系统 (8) 2、循迹电路 (9) 3、电机驱动电路 (9) 五、软件系统设计 (12) 六、系统的制作、仿真与调试 (14) 七、总结 (15)

一、引言 当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

单片机输出方波及显示宽度

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华 学生:冯焕焕 学号:1000150301

前言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新.在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善. 单片机是指在一个芯片上集成了中央处理器、存储器和各种I/O接口的微型计算机,它主要面向控制性应用领域,因此又称为嵌入式微控制器。单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域。 本次课程设计目的主要是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 本课程设计实在学完单片机原理及课程之后综合利用所学单片机只是完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理和应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获的初步的应用经验,为以后从事生产和科研工作打下一定的基础。 摘要

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。利用定时器T0定时T1计数来测量由P3.5口输入的脉冲信号的频率。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示时采用动态扫描的方式将将各位数的BCD码依序输入到LED中,并连续扫描2秒钟。通过采用STC89C52RC 单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。 关键词: 门控信号GATE;脉冲宽度;扩展测量范围;脉冲频率 ABSTRACT

51单片机循迹小车项目方案报告(完整)

宜宾职业技术学院 《单片机系统设计》 项目设计报告 项目设计题目:智能寻迹小车 系部:电子信息与控制工程系班级:电子XXXX 班组号:第四组 小组成员:XXX 指导教师:XXX 2017年10月10日

目录 一、引言 (3) 二、方案论证 (4) 三、小车车体设计 (7) 四、硬件系统设计 (8) 1、单片机最小系统 (8) 2、循迹电路 (9) 3、电机驱动电路 (9) 五、软件系统设计 (12) 六、系统的制作、仿真与调试 (14) 七、总结 (15)

一、引言 当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

用8051单片机定时器产生乐谱的各种频率方波

电子科技大学微机单片机接口 设 计 报 告 指导老师: 学生: 学号:

电子科技大学机电工程学院2009年5月

单片机最小应用系统设计报告 一、设计题目 (1) 二、设计目的 (1) 三、系统硬件图 (2) 3.1 电路设计原理图 (2) 3.2 电路设计PCB图 (4) 四、程序流程图 (6) 五、系统说明与分析 (9) 5.1设计思路及设计过程 (9) 5.2系统结构及各部分说明 (9) 5.3系统连线说明 (16) 5.4系统参数分析 (17) 六、源程序 (17) 七、总结 (25) 八、参考文献 (26)

一、设计题目 用8051单片机定时器产生乐谱的各种频率方波,要求信号经过放大后由喇叭发出声音。可选取某段音乐令单片机连续播放。 二、设计目的 1、通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。 2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。 3、熟悉基本硬件电路的设计与制作。 4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。 5、学习UVISION对单片机的编程和调试方法。 6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。 7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

三、系统硬件图 3.1 电路设计原理图 整个设计主要包括单片机基本的晶振电路,按键复位电路。具体的电路图如下图所示: 对于不同的电路模块进行了分别画图: 下图是最小系统模块。

51单片机50个实例代码

51单片机50个例程代码程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/c613700816.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit LED=P1^0;// 用sbit 关键字定义LED到P1.0端口, //LED是自己任意定义且容易记忆的符号 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 LED=1; //将P1.0口赋值1,对外输出高电平 LED=0; //将P1.0口赋值0,对外输出低电平 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 2-IO输出-点亮1个LED灯方法2 /*-----------------------------------------------

名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/c613700816.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用1个字节对单个端口赋值 P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉, //ff换算成二进制是1111 1111 P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 //0xfe是16进制,0x开头表示16进制数, //fe换算成二进制是1111 1110 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 3-IO输出-点亮多个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.360docs.net/doc/c613700816.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯

相关文档
最新文档