- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于8155的8LED显示语音播放机设计
实验名称:基于8155的8LED显示语音播放机设计
实验要求
将处理过的数据通过单片机进行存储(信号固化)。
用D/A转换器回放存储的信号。
通过模拟示波器显示回放的波形。
4 在数码管或LCD上显示回放波形的参数(最大/最小幅值,波形播放时间)。
基于8155口是指显示和键盘都由8155的IO口控制;实验中需要的信源,可以通过处理一段WAV文件,将其变为一段数据表进行实验。
实验原理
存在单片机内的数据为8000Hz采样的样点值,用T0查询方式进行125us定时,每当定时器溢出则像DAC0832输出采样值则实现了8000Hz采样恢复波形;在将采样值送到DAC0832的同时进行幅值大小的比较得出最大最小幅值最后进行显示;用T1中断方式进行定时,每一秒一次中断可用以计时并输出;8155A、B口用作输出,A口做段选码输出,B口做位选输出,C口为输入方式,输入键控信号。
实验内容
信号固化
通过打开文件读文件写文件的方式将wav文件写成汇编程序所需要的数据表形式,对应的转换C程序如下:
#include stdio.h
#include stdlib.h
#include memory.h
int main()
{
FILE *v_fpLog, *fp;
int fSet = 0, fEnd = 0, i, j;
int filelen = 0, num, last, r;
char *pb, ch[6], cnum[11];
if ( (v_fpLog = fopen( 3.wav , rb+)) == NULL || (fp = fopen( Windows 错误.txt , w+a+)) == NULL)
{
printf( The file was not opened);
return 0;
}
else
{
fseek( v_fpLog, 0, SEEK_SET );
fSet = ftell( v_fpLog );
fseek( v_fpLog, 0, SEEK_END );
fEnd = ftell( v_fpLog );
pb = (char *)malloc(fEnd - fSet );
fseek( v_fpLog, 0, SEEK_SET );
fread(pb, fEnd - fSet, 1, v_fpLog);
fwrite(unsigned char boot_bin[, 23, 1, fp);
memset(cnum, 0, 11);
itoa(fEnd-fSet, cnum, 10);
fwrite(cnum, sizeof(cnum), 1, fp);
fwrite(] = { , 6, 1, fp);
fwrite(\n, 2, 1, fp);//////
num = (fEnd-fSet)/16;
last = (fEnd-fSet)%16;
for(i = 0; i num; i++)
{
fwrite(DB , 3*sizeof(char), 1, fp);
for(j = 0; j 15; j++)
{
memset(ch, 0, 6);
r = (int)pb[j + 16 * i ];
r = r (0xFF);
sprintf(ch, 00%02xH,, r);
r = fwrite(ch, sizeof(ch), 1, fp);
printf(%s, ch);
if(j == 14)
{j++;
memset(ch, 0, 6);
r = (int)pb[j + 16 * i];
r = r (0xFF);
sprintf(ch, 00%02xH, r);
r = fwrite(ch, sizeof(ch), 1, fp);
printf(%s, ch);
}
}
fwrite(\n, 2
文档评论(0)