收藏 分销(赏)

基于单片机的键电子琴课程设计报告.doc

上传人:二*** 文档编号:4510836 上传时间:2024-09-26 格式:DOC 页数:109 大小:3.12MB
下载 相关 举报
基于单片机的键电子琴课程设计报告.doc_第1页
第1页 / 共109页
亲,该文档总共109页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、基于单片机的键电子琴课程设计报告(完整资料)(可以直接使用,可编辑 优秀版资料,欢迎下载)单片机原理及系统课程设计评语:考勤10分守纪1分过程30分设计报告30分答辩20分总成绩(100)专业:自动化班级:姓名: 学号:指导教师:兰州交通大学自动化与电气工程学院205 年 12 月0 日基于单片机的16键电子琴一、电子琴设计的目的、要求与设计方法1设计目的现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性

2、训练能起到非常大的作用.12设计要求本设计主要是用AT9C单片机为核心控制元件,设计一个微缩版的电子琴。单片机与按键构成主控制模块,在主控制模块上设置有9个按键,分别达成不同目标。本系统主要为了完成电子琴的三大功能:电子琴弹奏和音乐播放及录音。电子琴设计方法1.。1设计工具表软件简介软件名称设计作用Kel uision4编写程序与编译POTUS绘制硬件电路图、数字仿真Mirosof Visio绘制程序流图与框图。3.设计思路()功能按键触发外部中断,以完成不同曲目的的切换。 ()设置定时器产生不同频率的方波,O口输出,经功放后扬声器发声. ()采用44矩阵键盘弹奏6个音(低X到高DO).二、

3、电子琴的设计方案及原理2.1设计总体方案本系统采用T89C2为主控芯片.输入电路有16个琴键按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。1个音乐按键用于播放音乐和切换歌曲,通过按键触发中断,重置定时器初值,于另一个扬声器中发出有效音响.总设计框图如下图1所示.单片机时钟复位电路数码管显示电路琴键控制电路音频播放电路音乐切换电路图基于单片机的电子琴电路原理框图2。发声原理利用A9C5的内部定时器使其工作计数器模式(MO1)下,改变计数值T0及TL0以产生不同频率的方法产生不同音阶,例如,频率为52H,其周期=1/2319

4、2,因此只要令计数器计时956/1s96,每计数956次时将I/O反相,就可得到中音D(3Hz)。计数脉冲值与频率的关系式是:=i2f。式中,N是计数值;fi是机器频率(晶体振荡器为12MH时,其频率为1MHz);f是想要产生的频率。三、 电子琴的硬件设计基于单片机A51的电子琴电路由琴键控制电路、数码管显示电路、音频播放电路、时钟复位电路、音乐切换电路和电源电路六部分所构成.31琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。键盘按照连接方式可以分为独立式和矩阵式键盘两类.3.1。1矩阵式键盘如图2所示为4X4矩阵式键盘电路,由一个4X的行、列结

5、构可以构成一个1个按键键盘。矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。图2矩阵式键盘3。1.2独立式键盘独立式键盘的特点是一键一线,各键相互独立,每个键各接一条/口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。1。3方案比较表键盘类型比较键盘类型优点缺点独立式电路简单,编程简单占用/O口线多矩阵式占用I/O口线较少编程比较复杂由于此次设计的琴键控制电路需要16个按键,故单纯从I/O口线的占用的角度比较,独立式需要占用6条I

6、/O口线,而矩阵式却只需8条.故选择矩阵式键盘电路比较合理。3。数码管显示电路LED(itEmittingiode)发光二极管缩写.LED数码管是由发光二极管构成的.常见的LE数码管为“8”字型的,共计段。一般来说分共阳极和共阴极两种接法.3。2LE数码管静态显示静态显示方式即无论多少位D数码管,同时处于显示状态。如果送往各个E数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。3.2LE数码管动态显示静态显示方式就是无论在任何时刻只有一个ED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管轮流显示。3.3.3方案比较对于以上两

7、种数码管驱动电路的的优缺点比较如表3所示。由于静态驱动方式的显示无闪烁,亮度较高,编程简单,加上本次设计的数码管显示电路只需要2个数码管,且分别接两部分管脚,故选择静态驱动方式来显示数码管更为合理.如图3所示为数码管显示电路,采用静态驱动方式和共阳极接法.表3数码管显示方式比较驱动方式优点缺点静态显示显示无闪烁,亮度较高,编程简单数码管越多,所需的电流越大,电源的要求越高动态显示电路简单,数码管越多,优势越明显不如静态显示的亮度高,可能出现闪烁现象图3数码管静态显示电路。3音乐切换电路通过按键拉低电平,触发中断.3.4音频播放电路使用两个扬声器,一个作为琴键输出,一个作为乐曲输出。35时钟复位

8、电路。1时钟电路时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式.本设计采用内部时钟方式做时钟电路.3。2复位电路在单片机的实用系统中,一般有两种复位操作形式:上电复位和手动复位。上电复位在单片机系统每次通电时执行。手动复位在系统出现操作错误或程序运行出错时使用。由于本设计的需要,同时采用这两种复位方式。整体电路图如下图4所示.图4整体硬件设计四、 电子琴的软件设计系统功能的实现一般包括硬件部分和软件部分,一旦硬件确定下来,软件要实现的功能也随之确定。而为使编程思路清晰,应先绘制程序流程图.4。系统硬件

9、接口定义表4系统硬件接口定义引脚名接口说明备注P0P0。7琴键数码管与单片机通信数码管显示电路20P2.曲目数码管与单片机通信数码管显示电路P3。2(T0)外部中断源输入端音乐切换电路.0P17矩阵键盘接口琴键控制电路0,P。7控制扬声器音频播放电路。2主函数主函数流程图如图5所示。利用模块化的思想,主函数只执行初始化函数、键盘扫码函数、音频处理函数和数码管显示函数.图5主函数流程图4。3初始化函数初始化的流程框图如图6所示。该函数对所需的/O口、外部中断、定时器0、定时器T1以及数码管进行初始化配置。MOD=0x1; /方式1,T1方式1Px01; /IN0中断优先级最高EA;0=;E=;E

10、X0=1; /允许中断TR=0; 关定时器01=0bf; /键盘初始化flg; /标志位置图初始化流程图44数码管显示及音频处理函数根据键值扫描函数读取的键码,扬声器发声并结合数码管显示出来。图7数码管显示流程图4.5中断函数中断函数用到了外部中断和定时器中断.外部中断的流程框图如图所示,当按键按下时,外部信号触发外部中断,执行键值扫描函数,读取对应的键值。定时中断的流程框图如图9所示,定时器溢出中断后,进行重装载初值,同时执行相应的音频控制操作。6键值扫描函数将输入端置为高电平,输出端置为低电平.这样,当按键没有按下时,所有的输入端无变化,代表无键按下。一旦有键按下,则输入线就受输出线的影响

11、被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。流程图如图10所示.图8外部键盘中断流程图 图9定时器中断流程图图10键值扫描流程图五、 电子琴的系统仿真1部分仿真结果表仿真结果按键编号发声音调数码管显示备注低XI,-中DO1,中RI2,-无播放曲目及停止,或重复按切换音乐图11音乐显示为“”或不显示的时候,琴键按下D有效图12按音乐键,播放音乐1,琴键弹奏无效5。2调试中出现的问题及解决电子琴的设计并非一帆风顺,在这期间遇到了很多问题,下面谈几个关键的问题。首先是数码管显示乱码的问题,原本以为是数码管字形码表的代码有错,检查几遍发现代码基没错,后来结合硬件图一看,才知道硬件图中数码

12、管是共阳极接法,软件中的数码管字形码表是共阴极的。其二是按键引入中断检测时遇到的问题,按音乐键后琴键无法发声和显示,浪费了很多时间,最终发现是程序的判断条件有问题。其三是扬声器发出的音调不对,甚至没有声音,这个问题后来还是不能解决,最后放弃了L386的功放电路,直接接扬声器,但是导致了部分琴键发声带杂音。六、 总结在本次设计八路多功能抢答器的课设过程中,我利用AT89C5单片机及外围接口实现电子琴,利用单片机的定时器/计数器定时和计数的原理实现对弹奏和播放的功能,利用Proeus和Keil软件设计出实验电路,完成了课设的任务。在本次课设中,我意识到将理论知识与实践相结合的重要性,对于单片机这样

13、的课程,仅仅通过了解课本上的知识是远远不够的,我通过查资料和搜集有关文献,培养了自学能力,通过利用软件仿真和焊接电路,在很大程度上提高了我的动手能力.我们在课设的过程中,遇到了很多问题,比如我在仿真的过程中错把共阴极数码管字模当作共阳极使用,使得数码管无法正常显示,通过查资料我明白了共阴极数码管是高电平驱动,公共端是负极,共阳极数码管是低电平驱动,公共端是正极,类似的问题出现了很多,我们通过一一排查,终于完成了课设任务,结果表明,有付出必有收获,把握重点、攻克难关,活学活用对于牢固的掌握知识,是非常有用的。在此次课设中,我学到了很多,也通过不断纠正自己的错误,意识到自身的不足,我对知识的掌握还

14、没有实现深层次的理解记忆,我相信这些教训都为我以后的学习奠定了良好的基础,时刻牢记团队合作、坚持与努力的重要性。参考文献1 王思明,张金敏,苟军年单片机原理及应用系统设计M。北京:人民邮电出版社,2008.2冯育长,邹小兵.单片机系统设计与实例指导M。 西安:西安电子科技大学出社,2004.3 彭伟。单片机C语言程序设计实训100例M北京:电子工业出版社,2004单丹,马淑云。基于A851单片机电子琴的设计J中国高新技术企业,2002.附录includreg5hefin uchar unsiged chr#define uin unsigned int/共阳极数码管Ucharcode LE=0

15、xc0,x,0xa4,0b0,0x99,x92,082,0f8,0x80,0x9,0x8,x83,0,0xa1,0x86,0x8e,0xb;bit bepP3;uchar key; /键号sbit bzer=P37;ca di_uf;uchr fl;/音符延时表tode on_Dea_Tabe=454,64580,6684,64777,6482,6896,466,6530,65058,65110,65157,65178,617,652,28,51;/音调与节拍ucarSog1_To=0,1,2,3,,5,6,7,8,9,11,12,1,,5,,14,10,9,,6,5,4,2,1,0,0f;u

16、char cde ie1_on=1,1,1,1,1,1,,1,,1,,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xff;ucrcode Song2_Tn=3,5,2,1,2,,5,3,2,2,1,2,3,2,1,1,0xf;uchar cd im2_Tone2,1,1,2,1,1,2,1,1,2,,1,2,1,1,1,2,1,1,1,0xff;har e ong3Tone=,1,,5,6,,5,4,4,3,,2,2,1,0xf;har oe Time3e=1,1,1,1,1,1,1,1,,xf;/定义按键序号ucr keno;/音乐片段索引,音符索引uchrsng_

17、index=0;ucar toe_inde=0;/音符指针,延时指针uha *nepointr,dl_ponte;从当前数组中取出音符的位置uhar i =0;/毫秒延时voi deayms(uitms)ucha ;while()fr(t=0;4)x0f;/对行分别赋起始值,4,,12swi(tem)se :+=0;ra;case 2:k+=4;break;case :k+=8;reak;case:+=12;rek;efal:r;keyno=; /矩阵键盘扫描子程序oi kesan(voi) char tep; P1=x0F; /低四位输入 dms(2); /稍稍延时 tempP1; /读P1

18、口 tptep0x0F; /取低四位 tem=(tem|0x); if(temp=1) /检测按下的键所在的列号,在第一列 ke=0; es if(mp=2)/在第二列 key=1; else if(tep=4) /在第三列 key=2; els if(temp=8)/在第四列 key3; lse key16; /否则显示- P1xF; /高四位输入 layms(2); temp=1; /读口 emp=tmF0; mp=(tp4)F0); if(temp=1) /检测按下的键所在的行号,在第一行 ke=ey+0; eseif(temp=2) /在第二行 keke4; esi(tem=4) /在

19、第三行 ey=e+8; else i(temp=8) /在第四行 key=ky+12; else ky=6; 否则显示 根据行号和列号得到按下的键号/ dis_buf=LEDe; /查表得键值1中断,发声DO R MI 。oid play()nterr 3THTo_elay_Taleky25;TL1=TonDel_Tableey2;beebeep; /主程序voi main()TMOD=0x1; /T0方式1,T1方式1IP=0x0; /IT中断优先级最高E=;ET01;T=1;EX0; /允许中断TR0=0;P1=f;flag=0;wie(1) /if(flg0)=f0;/发送扫描码f(P1

20、!=0xf0)/有键按下 f(song_index!=2&og_index!1)eycan();0d_uf; /键值赋给P0口,显示TR11;eseT1=;/停止播放 /if(flasongndex!0)dey(2);to_nx=tone_pointeri;if(ne_indx=0xff)0;daym(200);otinu;TR0=1;delayms(elay_pointerton_ndex40);TR=0;i+;with(sg_iex)as 2:P=ED2;brek;case :P2=LE1;brak;cse :P2=xf;brea;单片机原理与接口技术课程设计报告 频率计目 录1功能分析与

21、设计目标12频率计的硬件电路设计32。1 控制、计数电路32 译码显示电路53频率计的软件设计与调试61 软件设计介绍6。2 程序框图3。3 功能实现具体过程834 测试数据处理,图表及现象描述104讨论5心得与建议126附录(程序及注释)131功能分析与设计目标背景:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要.为了实现智能化的计数测频,实现一个宽领域、高精度的频率计,一种有效的方法是将单片机用于频率计的设计当中。用单片机来做控制电路的数字频率计测量频率精度高,测量频率的范围得到很大的提高。题目要求:用两种方法检测

22、(m,T)要求显示单位时间的脉冲数或一个脉冲的周期。设计分析:电子计数式的测频方法主要有以下几种:脉冲数定时测频法(法),脉冲周期测频法(T法),脉冲数倍频测频法(M法),脉冲数分频测频法(AT法),脉冲平均周期测频法(/T法),多周期同步测频法。下面是几种方案的具体方法介绍。脉冲数定时测频法(法):此法是记录在确定时间Tc内待测信号的脉冲个数Mx,则待测频率为:Fx/Tc脉冲周期测频法(T法):此法是在待测信号的一个周期Tx内,记录标准频率信号变化次数o.这种方法测出的频率是:Fx/x脉冲数倍频测频法(M法):此法是为克服M法在低频测量时精度不高的缺陷发展起来的.通过倍频,把待测信号频率放大

23、倍,以提高测量精度.其待测频率为:Fx=x/AT脉冲数分频测频法(T法):此法是为了提高法高频测量时的精度形成的。由于T法测量时要求待测信号的周期不能太短,所以可通过A分频使待测信号的周期扩大A倍,所测频率为:Fx=AMoTx脉冲平均周期测频法(M/法):此法是在闸门时间Tc内,同时用两个计数器分别记录待测信号的脉冲数Mx和标准信号的脉冲数o。若标准信号的频率为F,则待测信号频率为:Fx=FoMx/Mo多周期同步测频法:是由闸门时间Tc与同步门控时间Td共同控制计数器计数的一种测量方法,待测信号频率与/T法相同。以上几种方法各有其优缺点:脉冲数定时测频法,时间c为准确值,测量的精度主要取决于计

24、数Mx的误差。其特点在于:测量方法简单,测量精度与待测信号频率和门控时间有关,当待测信号频率较低时,误差较大。脉冲周期测频法,此法的特点是低频检测时精度高,但当高频检测时误差较大.脉冲数倍频测频法,其特点是待测信号脉冲间隔减小,间隔误差降低;精度比法高倍,但控制电路较复杂。脉冲数分频测频法,其特点是高频测量精度比T法高A倍,但控制电路也较复杂。脉冲平均周期测频法,此法在测高频时精度较高,但在测低频信号时精度较低.多周期同步测频法,此法的优点是,闸门时间与被测信号同步,消除了对被测信号计数产生的1个字误差,测量精度大大提高,且测量精度与待测信号的频率无关,达到了在整个测量频段等精度测量.功能描述

25、:由于水平有限,本次设计采用相对简单的M法和T法两种方法测量简单方波的频率或脉宽(由于是输入简单方波信号,省去了被测输入信号通过脉冲形成电路进行放大与整形这个步骤)。利用AT89C51单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数或脉宽计时,计数(计时)的频率结果通过位八段LED数码管显示器显示出来。设计指标:M法由于0、T1对外部脉冲信号的最高计数频率为振荡频率的/4,而振荡频率为H,得M法最高计数频率为500KHz,而本设计设定最高计数频率即为0Kz。误差要求尽量小.法仅设定能测的外部脉宽范围为655620us,以使定时计数器在不产生溢出中断的情况下进行测量.本设计的频

26、率测量误差要求尽量小,实践证明误差控制在1100范围内。2频率计的硬件电路设计原理介绍 放大整形电路 控制门电路 计数器电路 译码显示电路待测信号图21 数字式频率计原理框图由上图可以看出,待测信号经过放大整形电路后得到一个待测信号的脉冲信号,然后通过计数器计数,可得到需要的频率值,最后送入译码显示电路中显示出来。但是控制部分相对重要,它在整个系统的运行中起至关重要的作用。本设计控制电路和计数器电路以T9C51为核心,译码显示电路采用单片机静态显示计数来显示,采用5位七段LED数码管显示器。下面分节介绍各部分硬件电路:2.1控制、计数电路单片机作为控制系统和计数器,是本次设计的最重要的部分,A

27、T8951是一种带4K字节闪烁可编程可擦除只读存储器(PEROFalh Progrmable and Easable Re nly Memory)的低电压,高性能O8位微处理器,俗称单片机.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容.由于将多功能位PU和闪烁存储器组合在单个芯片中,ATML的89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.所以本次设计采用AT89C5单片机。89C1单片机, 它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条O线,2个16位定时器/计数器,一个5中断源两个优

28、先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其引脚说明如下:引脚说明:VC:电源电压。GND:接地。P0口:0口是一组8位漏极开路型双向I口,作为输出口用时,每个引脚能驱动8个TL逻辑门电路。当对端口写入1时,可以作为高阻抗输入端使用。当P口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式.在这种模式下,P0口具有内部上拉电阻。在EPROM编程时,0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻.P0口:P0口是一带有内部上拉电阻的8位双向I/O口.P0口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P口写1时,它们被内部的上拉电阻拉

29、升为高电平,此时可以作为输入端使用.当作为输入端使用时,P0口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(II).P口:P是一带有内部上拉电阻的8位双向的I/O端口。P1口的输出缓冲能驱动个TTL逻辑门电路。当向P口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或1位地址的外部数据存储器(例如X TR)时,P2口送出高8位地址数据。在这种情况下,2口使用强大的内部上拉电阻功能当输出时。当利用8位地址线访问外部数据存储器时(例MOV),P口输出特殊功能寄存器的内

30、容.当EROM编程或校验时,P口同时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位双向的I/O端口.P口的输出缓冲能驱动4个L逻辑门电路。当向口写时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(II)。P3口同时具有A8951的多种特殊功能,P3.0的第二功能是串行输入口RXD,P31的第二功能是串行输出口TX,32的第二功能是外部中断0,3。3的第二功能是外部中断,34的第二功能是定时器T0,P35的第二功能是定时器1,P3的第二功能是外部数据存储器写选通/W,P3.7的第二功能是外部数据存

31、储器读选通/RD。M法主要使用管脚为P30、P3。以及P3。其具体使用方法如下:3.口与寄存器4LS4的A,B端口连接,串行输出待显示的数据。P3.1口接移位寄存器74LS164的CLK(第8引脚),输出同步时钟信号。P3。5口(即T1)输入脉冲信号.T法主要使用管脚为P。0、3.、P3。以及P3.。其具体使用方法如下:P2口接开关用于控制何时输出显示脉宽时间.P30口与寄存器74L164的A,B端口连接,串行输出待显示的数据。P31口接移位寄存器7LS4的CK(第引脚),输出同步时钟信号。P.口(即T1)输入脉冲信号。2. 译码显示电路显示电路采用静态显示方式。频率测量结果经过译码,通过89

32、C1 的串行口送出。串行口工作于模式 ,即同步移位寄存器方式。这时从89C51 的XD(P。 0) 输出数据,送至串入并出移位寄存器7416 的数据输入口A 和B ;从TXD( P3。 1)输出时钟,送至7414 的时钟输入口C。7416 将串行数据转换成并行数据,进行锁存.74164 输出的8 位并行数据送至8 段LED ,实现测量数据的显示。使用这种方法主程序可不必扫描显示器,从而单片机可以进行下一次测量。这种方法也便于对显示位数进行扩展.串行输入并行输出 段LED74LS1643频率计的软件设计与调试3。 软件设计介绍本设计过程使用到的软件有:WAVE软件模拟器,keluVsio,prt

33、use。软件设计过程:在kei uision2中输入所编程序,保存为以c为后缀的文件,新建项目,加入刚保存的文件,编译,调试到程序编译不显示错误.在optiofr targt项中ot中选中 rathx fies ,重新编译程序,软件生成以。hex为后缀的文件。 在prouse软件中画出所设计的电路模拟图,加载入前面生成的以. H为后缀的文件,运行,观察,调试数码管显示的数值,并与设置的输入信号频率作比较,调试,分析误差产生原因,改进程序与电路图。使用伟福软件编译所设计的c程序,调试到正确无误。并最终通过硬件来验证所设计的频率计是否达到先前设定的设计指标。图示:Keil软件程序设计 Prtuse

34、软件模拟 rotus是数字电路模拟常用的工具,方便易用,如图是工作窗口:2 程序框图 T法:M法:开始开始初始化程序且TH1=0,TL1=0初始化程序,初始化数组、中间量延时程序,数码管显示函数延时子程序、数码管显示函数定义外部输入方波到且=1,GATE=1,T1计时 定时计数器T0、T1初始化否=0? 启动T0定时50ms,T1对方波计数否是T0溢出?停止计数T1停止计时,数值输出是 数值串行输出静态显示 T1计数值输出,静态显示 结束结束注:以上两流程图均只表示出程序设计的简单流程,并且只表示出处理一次测量的过程,多次测量重复以上步骤即可。具体细节或某些中间变量的赋值和对程序流程的影响详细

35、见程序注释。3。3 功能实现具体过程法具体过程:T0定时0s,T对方波的计数,数值串行输出和静态显示三大部分内容,此外还要附加延时程序以使静态显示数值稳定等。具体描述如下: T0实现5ms定时:采用1 Hz的晶体振荡器的情况下,一秒的定时已超过了定时器可提供的最大定时值。为了实现一秒的定时,采用定时和计数相结合的方法实现。选用定时/计数器0作定时器,工作于方式1产生50ms的定时,定时完成所得的计数值乘以0即为所测信号频率. T1计数部分:将定时器计数器的方式寄存器TMD,用软件赋初值5H,即0101B。这时定时器计数器1采用工作方式1,方式选择位/T设为,即设T1为16位计数器.定时器计数器

36、O采用工作方式1,/设为0,即设TO为6位定时器。计算计数初值:设计数初值为m,本设计采用12 MHz的晶振。机器周期=12(晶振频率),得等式。所以计数初值m5536.当定时器计数器T1设定为计数方式时,其计数脉冲是来源T1端口的外部事件。当1端口上出现由“(高电平)到“0”(低电平)的负跳变脉冲时,计数器则加1计数。计算机是在每个机器周期的5状态时采样T1端口,当前一个机器周期采样为1且后一个机器周期采样为0时,计数器加计数.计算机需用两个机器周期来识别1次计数,因而最大计数速率为振荡频率的4。在采用12MHz晶振的情况下,单片机最大计数速度为0.5 MHz即50Hz。另外,此处对外部事件

37、计数脉冲的占空比(即脉冲的持续宽度)无特殊要求,但必须保证所给出的高电平在其改变之前至少被采样1次,即至少保持个完整的机器周期。由此可见,从1口输入脉冲信号,T1可实现对脉冲个数的计数。 数值串行输出和静态显示此部分用到了单片机的串行输出口P30与P。1.串行口控制寄存器SON设置为0x0,即工作方式0同步移位寄存器输入输出方式。串行数据(计数值)通过RD输出,而TD用于输出移位时钟,作为5个74LS164的同步信号,7LS16用于扩展并行输出口,这种方式下,收发的数据为8位,低位在前,五起始位、奇偶校验位及停止位,波特率固定为振荡频率的/12。发送过程中,当执行一个数据写入发送缓冲器SBUF的指令时,串行口把BUF中的8为数据以11的波特率从X(P0)端输出,发送完毕置中断标志T=1,传送过程中将位数据由低位到高位一位一位顺序通过RXD输出,并在TXD脚上输出/2的移位时钟。通过编码0和error(错误)的代号E(即当超出量程显示E),并根据所得计数值的各位数值,向单片机外部依次串行输出各位的编码,通过7164的并行输出并且依靠人眼的视觉暂留现象能够在位7段LE上同时显示各位的数值。具体程序编写,详见本论文附上的程序及程序注释.T法具体过程:由输如方波脉冲信号

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服