基于8155的8LED显示语音播放机设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档