下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用技术实训报告方法。二、实训时间:15周~16周三、实训内容:单片机设计电子琴原理图〔Protel〕PCB软件调试四、-实训步骤:1.分析、绘制原理图;PCB板4.C程序;5.Proteus仿真调式。五、结果分析:设计思路:单片机电子琴设计时,最小系统是必不行少的,按键比较多,为了节约I/O口,按键承受了4*4矩阵式按键,输出是通过P1口的音频放大电路输出;在编程序时,先要确定按下一个按键就会有一个对应的音输出,就想到要用到按键识别程序,由于有12个按键,就用到数码管的值,使得按键按下会有对应的音和对应的数值输出。原理图4*4距阵试按键,音频放大电路构成。8051经过脉冲电路输入声音,通过三极管放大电路放大声音输出。PCB板PCB板,区分好电源线和一般导线的粗细,要留意要将电源线和地线设置DRC规章检查。U1C1D1R5 C2R6Q2LS1D2电路分析:将原理图绘制好,将编好的程序放进at89c51单片机里,Proteus就可以对电驱动电路放大滤波后,就会发出相应的音调,并数码显示管显示相应的数值。掌握键盘的SW-0~SW-11十二个键能发出十二个不同的音调,按下按键发声,松开延时一段时间停顿。假设在前一个按下的键发声的同时有另一个键被按下转到后按的键的发音程序,发出后按的键的音。〔4〕C程序#include<reg51.h> //包含头文件reg51.h,定义了MCS-51单片机的特别功能存放器#defineucharunsignedcharsbitP1_0=P1^0; //定义位名称〔P1.0外接扬声器〕ucharfind,temp,STH0,STL0,keyvalue;ucharcodedisplay[]= //显示对应按键号字型码{0x11,0xd7,0x32,0x92, //0,1,2,30xd4,0x98,0x18,0xd3, //4,5,6,70x10,0x90};//,0x50,0x1c};//8,9,A,b//0x39,0x91,0x30,0x78};//c,d,e,Funsignedintcodetab[]= //定时半周期的初始值{64021,64103,64260,64400, //345664524,64580,64684,64777, //7,12364820,64898,64968,65030}; //4567ucharline[4]={0xf7,0xef,0xdf,0xbf};voiddelay50ms{uchari; //50ms函数for(i=0;i<1;i++){TMOD=0x11; //T11TH1=0x3c; //设置定时器初值TL1=0xb0;TR1=1; //启动定时器T1while(!TF1); //查询计数是否溢出,即50ms定时时间到,TF1=1TF1=0; } //50ms定时时间到,将定时器溢出标志TF1由软件清零}voiddelay_t(uchart) //函数名:delay_t〔25.6s〕{uchari; //形式参数:unsignedchari;延时时间为50msfor(i=0;i<t;i++)delay50ms; //承受全局变量t作为循环掌握变量}ucharkeyscan(void); //按键扫描声明voiddelay(uchari);intmain(void) //主函数{TMOD=0x01; //T01ET0=1; //允许T0中断EA=1; //开总中断find=0; //有键按下标志位TR0=0;while(1){keyvalue=keyscan; //读入按键if(keyvalue!=-1) //有键按下{ P3=0x7f; //选中P3.7掌握的数码管P0=display[keyvalue%10]; //显示按键个位delay(20230); //延时20msP3=0xbf; //选中P3.6掌握的数码管P0=display[keyvalue/10]; //显示按键十位delay(20230); //延时20ms// P0=display[keyvalue]; //显示字型码并送到P0口STH0=tab[keyvalue]/256; //找出键对应的频率的时间,作为定时器中断初始值STL0=tab[keyvalue]%256; //依据键值,取出定时半周期的初始值TR0=1; //启动定时器T0delay_t(20); //1sTR0=0; //1s延时时间到,将定时器溢出标志位TF0清零P3=0xff; //同时将P3口复位}}}voidISR_t0(void)interrupt1using0 // interrupt11〔定时/计数T0〕的中断函数{TH0=STH0; //载入定时半周期的初始值TL0=STL0;P1_0=~P1_0; //发音}ucharkeyscan(void) //函数功能:用扫描法读P2外接4×4键盘;函数返回:按下键:返回键值、如无键按下:返回-1。{uchari,m,n;find=0; //有键按下的标志P2=0xff; //将P2口取出〔低四位做输入口,先输出全1〕for(i=0;i<4;i++) //使P2_0~P2_3分别为低电平,这样可以推断四列有没有键按下{P2=line[i]; //循环四次,扫描四列temp=~P2; //读行值,并取反temp=temp&0x07; //屏蔽掉行值高五位if(temp!=0x00) //推断有无键按下,为0则无键按下{delay50ms; //50ms去抖temp=~P2; //再次读读行值,并取反temp=temp&0x07; //屏蔽掉行值高五位}if(temp!=0x00) //0则无键按下{m=i; //保存列号至m变量find=1; //置找到按键标志switch(temp) //推断哪一行有键,记录行号到n变量{case0x01:n=0;break; //第0行有键按下case0x02:n=1;break; //第1行有键按下case0x04:n=2;break; //第2行有键按下//case0x08:n=3;break;//3行有键按下default:break;}}}if(find==0)return-1; //没有键按下就返回-1elsereturn(n*4+m); //否则返回取得的按键值,键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东省电子口岸有限公司党务工作岗招聘1人笔试历年参考题库附带答案详解
- 2025安徽宿州市城市建设投资集团(控股)有限公司招聘复审笔试历年参考题库附带答案详解
- 2025国家珠宝玉石首饰检验集团有限公司拟聘人选笔试历年参考题库附带答案详解
- 2025四川旅游规划设计研究院有限责任公司公开招聘3人笔试历年参考题库附带答案详解
- 2025吉林梅河口泸源酒业有限公司招聘1人笔试历年参考题库附带答案详解
- 2025中国葛洲坝集团市政工程有限公司法语翻译招聘笔试历年参考题库附带答案详解
- 与合作伙伴业务洽谈的函(5篇)
- 药事管理学考核试题及答案
- 2026上海交通大学机械与动力工程学院夏泽洋教授团队博士后招聘4人考试备考题库及答案详解
- 2026年新疆兵团第四师可克达拉市高校毕业生“三支一扶”计划招募(101人)笔试参考试题及答案详解
- DL-T5153-2014火力发电厂厂用电设计技术规程
- TCEA 0050-2023 电梯导轨型钢
- GA/T 2095-2023危险化学品道路运输通行路线规划指南
- 客户之声(VOC)收集与应用
- 突发性耳聋教学查房
- 2021新苏教版小学科学四年级下册教学与实验计划
- 变更申请单模板
- 全国优质课一等奖高中语文《蜀道难》教学设计
- 内燃机车安全操作规程课件
- JJG 964-2001毛细管电泳仪
- JJG 1078-2012医用数字摄影(CR、DR)系统X射线辐射源
评论
0/150
提交评论