标题: 简易单片机汇编语言电子琴设计 [打印本页]

作者: 张耀扬    时间: 2019-5-27 10:36
标题: 简易单片机汇编语言电子琴设计
一、             设计题目:

设计一简易电子琴,要求能够发出1、2、3、4、5、6、7等七个音符。

使用元件:AT89C51、LM324,喇叭,按键等

二、             设计目的

  (1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。

(2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。

(3)为实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。

(4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
方案一:产生按键音符

  ORG 0000H

        LJMP MAIN

        ORG 000BH

        LJMP BREAK

MAIN:  MOV TMOD,#01H       ;设置定时器0的工作方式

        SETB EA

       SETB ET0               ; 设置定时器0中断

       SETB TR0               ; 启动定时器0

WAIT1: LCALL KEY             ; 调用KEY子程序,判断有键按下否?第几个键?

       CLR EA                 ;屏蔽中断

       CJNE R3,#00H,WAIT1     ;如果R3=0,表示有键按下

       MOV A,22H              ;将22H里存放的按键号送给A

       RL A                   ; 因为查表里都是字,所以得乘2查得数据

       MOV DPTR,#TABLE      ;指向表头

       MOVC A,@A+DPTR      ; 查表

       MOV TH0,A             ;将数据高位送TH0

       MOV 21H,A             ; 将高位备份

       MOV A,22H             ;将22H里存放的按键号送给A

       RL A                   ;因为查表里都是字,所以得乘2查得数据

       INC A                  ;取低位数据

       MOVC A,@A+DPTR

       MOV TL0,A

       MOV 20H,A

WAIT2: LCALL KEY

       SETB EA

       CJNE R3,#00H,WAIT1

       JMP WAIT2

KEY:   MOV R3,#00H          ; KEY子程序,判断有键按下否?第几个键?

       MOV R1,#0FFH

       MOV R0,#00H

       MOV A,R1

       MOV


作者: 张天晴    时间: 2019-6-15 17:57
楼主大人,有没有电路设计图
作者: 张天晴    时间: 2019-6-15 17:58
楼主大人,没有用电路设计图?
作者: 501529945    时间: 2019-12-9 18:35
大佬,有没有电路图




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1