“随身听”的程序设计
发布时间: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个字母就产生一个空格。
热门点击
- 用SEAS扬声器制作二分频音箱
- 用于避障的传感器
- 开关器件采用MOSFET的电路
- P沟MOSFET的内藏二极管
- 数据的存储和读取
- 使用石英振子
- 驱动电路用电源-DC-DC变换器部分的波形
- 确定偏置电路Ri,Rz
- 开关磁阻电动机的调速控制
- sw断开时需要续流二极管
推荐技术资料
- 绘制印制电路板的过程
- 绘制印制电路板是相当重要的过程,EPL2010新颖的理... [详细]