跑马灯及音乐盒的汇编程序

发布者:少年不识愁滋味最新更新时间:2012-10-20 来源: 21IC 关键字:跑马灯  音乐盒  汇编程序 手机看文章 扫描二维码
随时随地手机看文章
;蜂鸣器就使用哪种小的无源的有源的5v蜂鸣器都可以,经过试验发现用无源的效果更好,接在p1.2口,最好用一个三极管放大一下电流,晶振用12兆的.
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
Mu: 
Mov  p3,#0ffh
SETB P1.2
lcall   key
MUSIC0:
NOP
 MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
MOV  P3,A
JZ  MU
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL P1.2
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP  mu
DEL:
NOP
DEL3: 
MOV R4,#02H
DEL4: 
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
Key:
Key1:
Mov  a,P2
Mov  P0,a
Cjne  a,#0feh,key2
Mov  dptr,#mu_tab1;;表头地址送DPTR
Ljmp  MUSIC0
Key2:
Mov  a,P2
Mov  P0,a
Cjne  a,#0fdh,key3
Mov  dptr,#mu_tab2 ;;表头地址送DPTR
Ljmp  MUSIC0
Key3:
Sjmp  key
 
NOP
Mu_tab1:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H
mu_tab2:
DB      18H,     30H,     1CH,     10H
        DB      20H,     40H,     1CH,     10H     
        DB      18H,     10H,     20H,     10H
        DB      1CH,     10H,     18H,     40H
        DB      1CH,     20H,     20H,     20H
        DB      1CH,     20H,     18H,     20H     
        DB      20H,     80H,     0FFH,    20H
        DB      30H,     1CH,     10H  ,   18H
        DB      20H,     15H,     20H ,    1CH
        DB      20H,     20H,     20H ,    26H
        DB      40H,     20H ,    20H ,    2BH
        DB      20H,     26H,     20H ,    20H     
        DB      20H,     30H ,    80H ,    0FFH
        DB      20H,     20H,     1CH ,    10H
        DB      18H,     10H,     20H ,    20H
        DB      26H,     20H ,    2BH ,    20H
        DB      30H,     20H ,    2BH ,    40H
        DB      20H,     20H  ,   1CH  ,   10H
        DB      18H,     10H,     20H,     20H
        DB      26H,     20H ,    2BH,     20H
        DB      30H,     20H,     2BH ,    40H
        DB      20H,     30H,     1CH ,    10H
        DB      18H,     20H ,    15H ,    20H
        DB      1CH,     20H ,    20H ,    20H
        DB      26H,     40H,     20H ,    20H     
        DB      2BH,     20H,     26H ,    20H     
        DB      20H,     20H,     30H ,    80H
        DB      20H,     30H,     1CH ,    10H
        DB      20H,     10H,     1CH ,    10H
        DB      20H,     20H,     26H  ,   20H
        DB      2BH,     20H,     30H  ,   20H
        DB      2BH,     40H,     20H   ,  15H
        DB      1FH,     05H,     20H    , 10H
        DB      1CH,     10H,     20H ,    20H
        DB      26H,     20H,     2BH ,    20H
        DB      30H,     20H,     2BH ,    40H
        DB      20H,     30H,     1CH  ,   10H
        DB      18H,     20H ,    15H  ,   20H
        DB      1CH,     20H ,    20H  ,   20H
        DB      26H,     40H,     20H  ,   20H
        DB      2BH,     20H,     26H   ,  20H
        DB      20H,     20H,     30H,     30H      
        DB      20H,     30H,     1CH,     10H
        DB      18H,     40H,     1CH,     20H
        DB      20H,     20H,     26H,     40H
        DB      13H,     60H,     18H ,    20H
        DB      15H,     40H,     13H ,    40H
        DB      18H,     80H,     00H
END
关键字:跑马灯  音乐盒  汇编程序 引用地址:跑马灯及音乐盒的汇编程序

上一篇:可调上下限温度报警器
下一篇:24L01发送程序1138IO模拟移植

推荐阅读最新更新时间:2024-03-16 13:10

2051对X25045的写入和读出汇编程序
;************************************************************* ;* title: X25045 ;*实现2051对 X25045 的写入和读出,及看门狗超时周期的设置。 ;* version: 1.0 ;* last date: 01.03.27 ;* target: At89c2051 at 12Mhz ;* design by: Heyuesheng 010-64889568 ;************************************************************* ;**** define register **** ;
[单片机]
51控制的MT8880双音频收发器的汇编程序
ORG 0000H AJMP MAIN : : ;******************** ;* 8880 初始化 * ;******************** MAIN: MOV A, #90H MOV P0, A ; 写 8880CRA MOV P0, A ; 写 8880CRA MOV A, #98H MOV P0, A ; 写 8880CRA
[单片机]
59pic USART 232汇编程序
INCLUDE P16F877.INC ;MCU PIC16F877 DIP 40 LIST P=PIC16F877 ;__CONFIG _CP_OFF & _DEBUG_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC & _LVP_OFF ;PIC16F877 ;__ID LOC S 0x7206 errorlevel -302 errorlevel -203 CBLOCK 20H COUNTERH COUNTERL COUNTER TEMP1 TEMP2 TE MP3 TEMP4 TEMP_A TEMP_B TEMP_C DADR CNT EE_DADR ENDC
[单片机]
用51单片机实现爱心跑马灯程序
本人闲来无事做,见实验室的小伙伴用LED等做了一个跑马灯,顿时引来了一大群妹子,当时就不服了,哼,不就是一个流水灯,说的跟谁不会一样 制作的是32个LED灯的爱心流水灯,至于灯怎么安放,我就不多说了,关键是怎么连接布线。 由于条件有限,没有制作PCB的工具,所以就用的洞洞板,32个LED共阴极,连接在51单片机的GND上,每个LED的正极分别连接单片的一个引脚, 我的所有线路全是用电烙铁焊接的,线路丑爆了,在此就不上图了,为了后续程序好写一点,LED的正极和单片机的引脚的连线最好多考虑一下 好了,废话不多说了,直接上代码,只做了几个动画,可以按照自己的想法再添加 #include reg52.h #inclu
[单片机]
单片机音乐盒DIY—生日快乐歌程序
  基于STC89C52单片机的七彩迷你音乐盒。在单片机最小系统的基础上,对其他两个I/O口连接硬件电路。P1.0接一个七彩快闪LED灯。P1.5口接一个NPN型三极管的放大电路,再连接一个无源蜂鸣器(用来播放乐曲)。   这样一个迷你音乐盒就完成了。硬件电路非常简单,其中单片机任意一个I/O口都可以作为乐曲的输出,信号经过NPN三极管放大驱动蜂鸣器发出电子乐曲。   紧接着就是为单片机设计运行的程序了,这里我用汇编写了一段《生日快乐》的程序。大家可以仿照,我的思路修改乐曲。   DIY手记:用C52这么大块头的单片机,确实很浪费。因为一共有32个I/O引脚,设计音乐盒只用了其中的两个,非常的浪费。大家可以用其他的单片机代替
[单片机]
STM32跑马灯遇到的问题及解决方法及体会
一、跑马灯程序运行所遇问题 1,按照正点原子stm32视频学习时,在编写跑马灯程序中,出现:“Error:L6218E:Undefined symbol main(reffered from __rtentry2.o)” 百度结果是可能 1)main拼写错误(我没有拼写错误); 2)主函数文件中没有调用主函数;(此时我还没有写主函数文件) 但是,我点击最左边的编译符号后,错误消失了。写完主函数后,此错误消失; 2,写完主函数后,出现:“Error:L6200E:Symbol delay_init multiply defined(by delay.o and main.o)
[单片机]
4位共阳数码管动态扫描显示汇编程序
本程序是用51单片机实现4位共阳数码管动态扫描显示程序,采用74HC573做驱动,定时器T0定时16ms,用来刷新数码管显示屏,软件延时1ms实现数码管亮灭延时,相当稳定,没有一点闪烁的感觉,很不错!如果要调整亮度可适当调整数码管亮的时间。现把程序上传,与大家一起共享!!!哈哈哈!!! 由于电路图很简单我就不画了大家从程序中都可看出来p2.0-2.3 是接4个位选 由于是共阳所以是接的数码管的正极,p2.5是74hc573的锁存端,段的数据口是p0.我是从51hei单片机开发板上的电路图仿制过来的 只是用4个io口做位选 节约了一片573芯片. D0 BIT P2.0 D1 BIT P2.1 D2 BIT P
[单片机]
DS18B20汇编程序与C程序
ds18b20 c程序 //DS1820 C51 子程序 //这里以11.0592M晶体为例,不同的晶体速度可能需要调整延时的时间 //sbit DQ =P2^1;//根据实际情况定义端口 typedef unsigned char byte; typedef unsigned int word; //延时 void delay(word useconds) { for(;useconds 0;useconds--); } //复位 byte ow_reset(void) { byte presence; DQ = 0; //pull DQ line low delay(29); // leave it lo
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved