下载此文档

程控电子琴.doc


文档分类:通信/电子 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
计算机类课程
实 验 报 告
(2010-2011学年第二学期)
系部  信息工程系
专业班级 计应0901
姓名 谢曼曼 学号 09090115
课程名称 单片机应用技术
实验项目 程控电子琴
实验地点 计算机控制实训室
实验日期 321—422
实验成绩 指导老师 王树森
实验目的和要求
学会单片机定时器/计数器使用;
学会音符发生器程序编写方法;
学会4*4键盘扫描、编写和去抖方法;
会使用C51编程。
环境说明

序号
软件名称
1
windowsxp
2
keiluV20
3
EasySST
上机准备工作
1、知道如何在仿真软件下画出程控电子琴的原理图。
2、会画流程图,要懂得画流程图的原则:进程用长方形、判定用菱形。
3、要知道在写程序中如何运用定时器、查表和条件转移程序的应用。
4、把keil和仿真结合起来,执行程序运行的结果。
四、实验内容
程控电子琴
五、实验步骤
1 用仿真软件画出蜂鸣器发声的原理图。P3口接4*4键盘,蜂鸣器接在单片机的P20口,中间通过三极管放大。
2 画出蜂鸣器发声的的流程图,如下图:


3、根据流程图写出程序
//程序名字:键盘扫描电子琴
//功能:实现七个中音的发声
//作者:谢曼曼
//建立日期:321
#include <reg51h>
#define uchar unsigned char
#define uint unsigned int
unsigned 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=P2^0; //定义p20口为输出声音

uint DI,ZHONG, x,z; //定义变量
uchar y,num,temp;
uchar keyscan();
void delayms(uint z) //延时子程序
{

for(x=z;x>0;x--)
for(y=110;y>0;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;
else
TR0=1; //否则则开定时器0
}
uchar keyscan() //键盘扫描子程序
{
P3=0xfe; //假设第一行有按键按下
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0) //判断是否有按键按下
{

程控电子琴 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1314042****
  • 文件大小82 KB
  • 时间2021-02-15