位置:51电子网 » 技术资料 » 数码专栏

“随身听”的程序设计

发布时间:2012/6/15 21:04:41 访问次数:892

    声音的产生是通过定时器来完成的。前文SAA7121H提到了这款单片机可以提供时钟输出,那么只需要将时钟输出的频率调成输出音调的频率就可以了。所以只需要根据输出频率调节TO的溢出率就可以实现。
    其中,sysclk是系统时钟频率,THO和TLO分别是TO的寄存器高位和低位。此外,15系列的2个定时器都是可以被配置为16位定时器或双8位定时器,而且这两种模式又各自分自动重装和非自动重装两种使用方式,默认上电复位后工作模式是16位自动重装定时器。
    由于设计中要求声音频率可调,所以在此处还要把可调范围内的频率值所时应的THO、TLO的数值都计算出来,然后写到数组里面,以供调用。
    怎么产生莫尔斯码
    产生莫尔斯码的基础就是产生“嘀”、“嗒”声。通过开关定时器TO,就可以做到这点。定时器开的时候,有时钟产生,所以会听到一定频率的声音,时钟关闭的时候则不会输出声音。控制定时器开启的时间,也就可以产生“嘀”、“嗒”声。
    延时函数的输入变量是可控的,这样就可以控制莫尔斯码的速率。同时这一延时时间是以“嘀”声的延时为标准的,产生“嗒”声的时候则需要延时3倍的标准时间。通过这样的时间控制方式,还可以定义每个字母之间的间隔时间或者每个词之间的间隔时间。采用这样的处理方式,产生的莫尔斯码就会非常标准。
    将嘀嗒声连成字母就需要产生随机数了,随机数的产生可以读取定时器TO的TLO奇存器。因为这个寄存器一直在高速变化中,所以取出的数可以认为是从Ox00~OxFF的随机数。通过对这个值向38取余数(因为只用到了37个不同的字母、数字、字符,这个在程序都有定义),就可图3焊接完成后的正面器件摆放图4焊接完成后的背面走线17日无线电己011以得到0—37的随机数,然后根据这个随机数进行case语句的选择就可以了。
    主函数中计数产生的字母数,每产生5个字母就产生一个空格。

                    

    声音的产生是通过定时器来完成的。前文SAA7121H提到了这款单片机可以提供时钟输出,那么只需要将时钟输出的频率调成输出音调的频率就可以了。所以只需要根据输出频率调节TO的溢出率就可以实现。
    其中,sysclk是系统时钟频率,THO和TLO分别是TO的寄存器高位和低位。此外,15系列的2个定时器都是可以被配置为16位定时器或双8位定时器,而且这两种模式又各自分自动重装和非自动重装两种使用方式,默认上电复位后工作模式是16位自动重装定时器。
    由于设计中要求声音频率可调,所以在此处还要把可调范围内的频率值所时应的THO、TLO的数值都计算出来,然后写到数组里面,以供调用。
    怎么产生莫尔斯码
    产生莫尔斯码的基础就是产生“嘀”、“嗒”声。通过开关定时器TO,就可以做到这点。定时器开的时候,有时钟产生,所以会听到一定频率的声音,时钟关闭的时候则不会输出声音。控制定时器开启的时间,也就可以产生“嘀”、“嗒”声。
    延时函数的输入变量是可控的,这样就可以控制莫尔斯码的速率。同时这一延时时间是以“嘀”声的延时为标准的,产生“嗒”声的时候则需要延时3倍的标准时间。通过这样的时间控制方式,还可以定义每个字母之间的间隔时间或者每个词之间的间隔时间。采用这样的处理方式,产生的莫尔斯码就会非常标准。
    将嘀嗒声连成字母就需要产生随机数了,随机数的产生可以读取定时器TO的TLO奇存器。因为这个寄存器一直在高速变化中,所以取出的数可以认为是从Ox00~OxFF的随机数。通过对这个值向38取余数(因为只用到了37个不同的字母、数字、字符,这个在程序都有定义),就可图3焊接完成后的正面器件摆放图4焊接完成后的背面走线17日无线电己011以得到0—37的随机数,然后根据这个随机数进行case语句的选择就可以了。
    主函数中计数产生的字母数,每产生5个字母就产生一个空格。

                    

热门点击

 

推荐技术资料

绘制印制电路板的过程
    绘制印制电路板是相当重要的过程,EPL2010新颖的理... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!