已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
济 源 职 业 技 术 学 院计算机类课程实 验 报 告(2010-2011学年第二学期)系部 信息工程系 专业班级 计应0901 姓名 谢曼曼 学号 09090115 课程名称 单片机应用技术 实验项目 程控电子琴 实验地点 计算机控制实训室 实验日期 3.214.22 实验成绩 指导老师 王树森 一、 实验目的和要求1. 学会单片机定时器/计数器使用;2. 学会音符发生器程序编写方法;3. 学会4*4键盘扫描、编写和去抖方法;4. 会使用C51编程。二、 环境说明 序号软件名称1windowsxp2keiluV2.03EasySST三、 上机准备工作1、知道如何在仿真软件下画出程控电子琴的原理图。2、会画流程图,要懂得画流程图的原则:进程用长方形、判定用菱形。3、要知道在写程序中如何运用定时器、查表和条件转移程序的应用。4、把keil和仿真结合起来,执行程序运行的结果。四、实验内容程控电子琴五、实验步骤1. 用仿真软件画出蜂鸣器发声的原理图。P3口接4*4键盘,蜂鸣器接在单片机的P2.0口,中间通过三极管放大。2. 画出蜂鸣器发声的的流程图,如下图: 3、根据流程图写出程序/程序名字:键盘扫描电子琴/功能:实现七个中音的发声/作者:谢曼曼/建立日期:3.21#include #define uchar unsigned char#define uint unsigned intunsigned int code table1=0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe,0x00; /定义音节高八位(前7个为低音后7个为中音)unsigned int code table2=0x8c,0x5b,0x15,0x67,0x04,0x90,0x0c,0x44,0xac,0x09,0x34,0x82,0xc8,0x06,0x00; /定义音节低八位(前7个为低音后7个为中音)sbit yin=P20;/定义p2.0口为输出声音 uint DI,ZHONG, x,z; /定义变量uchar y,num,temp;uchar keyscan();void delayms(uint z)/延时子程序 for(x=z;x0;x-)for(y=110;y0;y-);void int1(void) interrupt 1 /中断程序TH0=DI;TL0=ZHONG;yin=yin;void main()/主程序 TMOD=0x01; /定时器0工作方式1 EA=1; /开总中断 ET0=1; /开定时器0中断 TR0=0;/关闭定时器0 num=16; while(1) keyscan();/键盘扫描子程序 if(num=15)/如果按键值为15则关定时器0 TR0=0;elseTR0=1;/否则则开定时器0 uchar keyscan()/键盘扫描子程序P3=0xfe;/假设第一行有按键按下 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下 delayms(5);/延时 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下switch(temp)/判断是哪一个按键按下case 0xe0:num=0;break;case 0xd0:num=1;break;case 0xb0:num=2;break;case 0x70:num=3;break;DI=table1num; /把高八位给STHOZHONG=table2num; /把低八位给STLOTR0=1;/开定时器0while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=0; P3=0xfd;/假设第二行有按键按下 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下 delayms(5);/延时 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下switch(temp)/判断是哪一个按键按下case 0xe0:num=4;break;case 0xd0:num=5;break;case 0xb0:num=6;break;case 0x70:num=7;break;DI=table1num; /把高八位给STHOZHONG=table2num; /把低八位给STLOTR0=1;while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=0; P3=0xfb;/假设第三行有按键按下 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下 delayms(5);/延时 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下switch(temp)/判断是哪一个按键按下case 0xe0:num=8;break;case 0xd0:num=9;break;case 0xb0:num=10;break;case 0x70:num=11;break;DI=table1num; /把高八位给STHOZHONG=table2num; /把低八位给STLOTR0=1;while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=0; P3=0xf7;/假设第三行有按键按下 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下 delayms(5);/延时 temp=P3; temp=temp&0xf0;while(temp!=0xf0)/判断是否有按键按下switch(temp)/判断是哪一个按键按下case 0xe0:num=12;break;case 0xd0:num=13;break;case 0xb0:num=14;break;DI=table1num; /把高八位给STHOZHONG=table2num; /把低八位给STLOTR0=1;while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=0; 4、在keil环境下调试程序,确保程序无误。程序不再出错后,保存程序,扩展名为.c。对程序进行添加,右击Source Group1选择Add Files to Group Source Group 1,选择以.c为扩展名的文件,然后单击Add,最后单击Close。5、设置其属性,右击Target1选择Options for Target Target1,在Output下选中Create HEX Fi:,在Debug下选中Use: Keil Monitor-51 Driver, 然后单击确定。6、在仿真原理图中双击单片机,会弹出Edit Comp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 织布上轴工岗前安全规程考核试卷含答案
- 收发员操作能力强化考核试卷含答案
- 细纱机操作工岗中创新意识考核试卷含答案
- 冰糖加工工岗前岗位考核试卷含答案
- (2026版)家校联系制度
- (2026版)药物临床试验运行管理制度和流程
- 2026年MBA各科试题及答案解析
- 项目部中毒事故制度
- 整体护理质量查房
- 青少年法治教育调查问卷
- 消防工程技术标书模板(暗标)
- 高三语文教学计划上学期-高三语文教学计划进度表(14篇)
- 创新思维与方法(第2版)PPT全套完整教学课件
- 数控铣床实训教案-自动编程
- 民航危险品运输培训课件
- 追梦少年强国有我ppt
- 农村小学音乐课教学工作总结与反思
- GB/Z 25756-2010真空技术可烘烤法兰刀口法兰尺寸
- 专业化讲师培训课件
- 建筑工程管理专业中级职称理论考试题库
- 哮喘控制测试评分表(ACT-C-ACT)
评论
0/150
提交评论