【dts源码音乐下载】【qq登录c 源码】【快的打车 源码】FFH源码

2024-11-25 05:58:08 来源:modbus源码 详解 分类:焦点

1.FFHԴ??
2.如何在80x86汇编语言里输出-1?,源码求解

FFH源码

FFHԴ??

       单片机发声的基本原理

       我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制高 、dts源码音乐下载低电平的持续时间,就能改变输出频率,从而改变音调。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟拍,即一拍为0.秒。但是,由于T0的最大定时时间只能为毫秒,因此不可能直接用改变T0的qq登录c 源码时间初值来实现不同节拍。我们可以用T0来产生毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。例如对1/4拍音符,定时时间为0.秒,相应的时间常数为(即H);对3拍音符,定时时间为1.秒,相应时间长数为(即C0H)。快的打车 源码我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。此外,结束符和休止符可以分别用代码H和FFH来表示,若查表结果为H,9pc源码则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。

       为了方便对照,列出高中低音符与单片机计数T0相关的计数值,如下表2-1所示。

       表2-1 音符表

       低音0-之间,vc 串口类源码中音在-之间,高音在-之间

       2、音乐的音拍,一个节拍为单位(C调),具体见表2-2所示。

       对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

       3.2 设计的相关音乐说明

       要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期时间。利用半周期时间定时这个半周期时间,每当计时到后就将输出的I/O反向,然后重复计时此半周期再对I/O反向,就可以在I/O脚上得到此频率的脉冲。

       记数脉冲值与频率的关系公式如:N=Fi/2/Fr。N:记数值;Fi:内部计时依次为1us,故其频率为1 MHZ;Fr:要产生的频率。

       其记数值的求法如:T=-N=-Fi/2/Fr。例:设K=,F==Fi=1 MHZ。求低音DO(HZ),中音DO(HZ),高音DO(HZ)的记数值。

       每个音符使用1个音节,字节的高四位代表音符的高低,低四位代表音符的节拍。如果1拍为0.4秒,1/4拍为0.1秒,假设1/4拍为 DELAY,则1拍为4 DELAY。

如何在x汇编语言里输出-1?,源码求解

       ; -1 在计算机内部用补码表示,若是字节数 则为 FFh,若是字 则为 FFFFh

        CODE SEGMENT

        ASSUME CS:CODE

        X DW 0FFFFH

        START: PUSH CS

        POP DS

        PUSH CS

        POP ES

        MOV AX,X

        CALL DSPAXS

        MOV AH,4CH

        INT H

       ;==================================

       ; 输出有符号数,输出的数应放 ax中

        DSPAXS PROC NEAR

        PUSH AX

        OR AX,AX

        JNS @DSPAXS

        NEG AX

        PUSH AX

        PUSH DX

        MOV AH,2

        MOV DL,'-'

        INT H

        POP DX

        POP AX

        @DSPAXS:

        CALL DSPAX

        POP AX

        RET

        DSPAXS ENDP

       ;===============================

        DSPAX PROC NEAR

        PUSH AX

        PUSH BX

        PUSH CX

        PUSH DX

        PUSHF

        XOR CX,CX

        MOV BX,

        @DSPAX1:

        XOR DX,DX

        DIV BX

        INC CX

        OR DX,H

        PUSH DX

        CMP AX,0

        JNE @DSPAX1

        MOV AH,2

        @DISPAX2:

        POP DX

        INT H

        LOOP @DISPAX2

        MOV DL,

        INT H

        POPF

        POP DX

        POP CX

        POP BX

        POP AX

        RET

        DSPAX ENDP

       ;================================

        CODE ENDS

        END START

本文地址:http://5o.net.cn/html/88c257397338.html 欢迎转发