用8051单片机设计简易电子琴拜托各位大神

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-17
简易电子琴设计,要求用单片机8051设置一个16键的电子琴,用汇编语言。

汇编的,看看:
http://hi.baidu.com/kkshubao/blog/item/c6cf0e1e80015dcfa6866931.html
再看看:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d025718ab4fa7bdefc1f10b7.html

/**************************************************************** 程序名称: 八位LED双灯右移动流水灯显示 说明:使用本程序你必须把 SE3设置为2-3短接 SE4设置为1-2短接 *****************************************************************/ /*头文件*/ #include #include #define uint unsigned int #define uchar unsigned char /*端口定义*/ #define led_port P0 /*定义LED显示的数据脚*/ /*1MS为单位的延时程序*/ void delay_1ms(uchar x) { uchar j; while(x--){ for(j=0;j<125;j++) {;} } } /*主程序*/ void main() { uchar led_sdata; /*显示寄存器*/ uchar i; while(1){ led_sdata=0xfe; /*初始化显示寄存器为1号灯亮*/ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ delay_1ms(200); delay_1ms(200); /*延时*/ led_sdata=0xfc; /*显示寄存器为1.2号灯亮*/ for(i=0;i<8;i++){ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ led_sdata = (led_sdata<<1)+1; /*将显示寄存器数据左移1位,并将第一位置高,即熄灭*/ delay_1ms(200); delay_1ms(200); /*延时*/ } led_sdata=0xff; /*灯全灭*/ led_port = led_sdata; /*将显示寄存器输出到LED端口*/ delay_1ms(200); delay_1ms(200); /*延时*/ } }

KEYBUF EQU 30H STH0 EQU 31H STL0 EQU 32H TEMP EQU 33H ORG 00H LJMP START ORG 0BH LJMP INT_T0 START: MOV TMOD,#01H SETB ET0 SETB EA WAIT: MOV P2,#0FFH CLR P2.4 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1 NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4: NOP DK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,@A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK1A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK1A CLR TR0 NOKEY1: MOV P2,#0FFH CLR P2.5 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8: NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,@A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK2A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK2A CLR TR0 NOKEY2: MOV P2,#0FFH CLR P2.6 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY3 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9: CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10: CJNE A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3 NK11: CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12: NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,@A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK3A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK3A CLR TR0 NOKEY3: MOV P2,#0FFH CLR P2.7 MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,KEYBUF MOV B,#2 MUL AB MOV TEMP,A MOV DPTR,#TABLE1 MOVC A,@A+DPTR MOV STH0,A MOV TH0,A INC TEMP MOV A,TEMP MOVC A,@A+DPTR MOV STL0,A MOV TL0,A SETB TR0 DK4A: MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK4A CLR TR0 NOKEY4: LJMP WAIT DELY10MS: MOV R6,#10 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET INT_T0: MOV TH0,STH0 MOV TL0,STL0 CPL P1.0 RETI TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H TABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178 END

  • AT89S51制作4X4简易电子琴单片机编程
    答:include <AT89X51.H> unsigned char temp;unsigned char key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178};void main(void){ TMOD=0x01;ET0=1;EA=...
  • 单片机简易程序, 电子琴 内附图 有说明
    答:自己写的程序,多谢支持!给点分,我在Keil上试过了。ORG 0000H LJMP START ORG 000BH LJMP TIMER START:CLR TR0 MOV SP,#70H MOV TMOD,#01H MOV IE,#82H MOV P0,#0FFH XUANZ:MOV A,P2 CJNE A,#0FFH,BOFANG KEY:MOV R0,#00H JB P1.0,KEY1 LJMP KEYIN KEY1:INC R0 JB P1....
  • 求89c51单片机制作简易电子琴的c程序及源代码
    答:bit FY=0; //放乐曲时FY=1, 电子琴弹奏时FY=0uchar Song_Index=0,Tone_Index=0; //放音乐的参数uchar k, key;sbit SPK=P3^7;sbit LED1=P1^0;sbit LED2=P1^1;sbit LED3=P3^4;sbit LED4=P3^5;sbit LED5=P3^6;void Delay(uint16 count){uint8 i; while(--count != 0) {for(i = ...
  • 用51单片机 制作简易电子琴 的两个问题
    答:内部大循环只要把扫描程序等需要不停执行的程序写在 while(1){ 。。。(这里)} 识别按键只要与按键相连的引脚检测到低电平即可 给你一个按键范例:假如按键接到单片机P2^0引脚 sbit K = P2^0;if(K == 0){ delay(5); //延时去抖 if(K == 0) //确定键按下 { while(!K); //判...
  • 8051单片机课程设计实训教材目录
    答:随后的章节逐个探讨了带单片机的LCD时钟、定时闹铃、音乐倒数定时器、密码锁控制、可存储式电子琴、8051八音盒、红外线遥控器、家电遥控、伺服机控制、伺服车控制等实际应用项目,每个项目都包含了功能说明、控制电路和控制程序的设计。附录部分则提供了一些实用工具和资源,如简易稳压电源制作、实验所需软硬件...
  • 用C51单片机带存储播放功能的简易电子琴设计 要求如图
    答://本程序的单片机晶振采用11.0592M include <reg51.h> sbit speaker=P1^2;unsigned char timer0h,timer0l,time;//世上只有妈妈好数据表 code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,6,2,4, 3,2,2, 5,2,...
  • 高分求帮助!真心求帮助!有电子信息技术的同学可以帮帮我吗?
    答:我是电子信息工程技术专业的,是有关电气方面的。由于个人原因我在学校挂读一个多学期了,现在马上毕业了,需要设计一个课题,譬如电子琴的设计这样的,用单片机实现,还要就这一课题写一篇设计的论文,完不成就拿不到毕业证书,很急啊!请问你能帮到我吗?真心感谢。如果卖论文的就别回答了!我需要的是真心的帮忙,如果有...
  • 用单片机做电子琴的问题
    答:不知道你用的是哪个型号的单片机,如果是40管脚的51系列,那你就再看看31管脚是否接的是高电平!就那个VPP,这个很多人就忽视了。检查完以后如果一切都正常,那要用软件测试的办法了,你写一个小程序,烧写进去,看看是否运行,如果可以的话,那就不是硬件的问题了,而是你的软件问题了,行了就说这么...
  • 用89C51单片机设计开发简易电子琴,能7个音,并存一首歌就好,要简单点的...
    答:,唱完从头再来 k=sszymmh[i]+7*sszymmh[i+1]-1;timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh[i+2];i=i+3;song();} } } 自己改改吧。。你说的不太清。。是不是还要用到键盘作为电子琴按键。。。提问也有技巧的。。下次说清要求 所要结果 需要语言。。。
  • 单片机c51简易电子琴软件模块
    答:看看这篇文章,文章下方还有许多相关的链接,应该够用了。http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d9581a512bddb3511138c282.html