DSP的LED显示及按键暂停_第1页
DSP的LED显示及按键暂停_第2页
DSP的LED显示及按键暂停_第3页
DSP的LED显示及按键暂停_第4页
DSP的LED显示及按键暂停_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP的LED数字显示

吴佳伟通信0933090401029

实验要求调试成功后运行,LED显示0~9跳变按回车键停止

发光二极管阵列与DSP接口电路LED阵列原理及运用

发光二极管显示阵列的显示是由I/0扩展端口控制,DSP需将显示的图形按列的顺序存储(列数据),(8X8阵列,共8个字节,高位在下方,低位在上方),然后定期刷新显示。具体方法是:将以下控制字按先后顺序,每两个为一组发送到全局控制寄存器port8000的第6-4位和端口port8005,发送完毕后,隔一段时间再发送一遍。由于位值为“0”时点亮,所以需要将显示的值取反。Port8000第6-4位:000,发送第七列数据(右起第0列),001,发送第六列数据(右起第1列),010,发送第五列数据(右起第2列),依次类推。发光二极管打开:Port8000=0x000x800x00Port8007=0xc1;(打开)port8007=0xc0(关闭发光二极管阵列)LED显示的步骤1、定义端口:port8000,port8005,port80072、打开LED阵列:port8000=0x00;port8000=0x80;

port8000=0x00;

0x00port8007=0xc1;3、写LED阵列的列数据:port8000:0高位低位b6b5b4=111例:实验程序#include"scancode.h"#defineREGISTERCLKMD(*(unsignedint*)0x58)//定义工作频率寄器ioportunsignedintport8000;ioportunsignedintport8001;ioportunsignedintport8002;ioportunsignedintport3002;ioportunsignedintport8005;ioportunsignedintport8007;voidDelay(unsignedintnTime);//延时子程序voidRefreshLEDArray();//刷新显示charConvertScanToChar(unsignedcharcScanCode);//将键盘扫描码转换为字符unsignedcharledbuf[8],ledx[8];unsignedintnScanCode,nCount;unsignedcharledkey[10][8]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00},//0 {0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00},//1 {0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00},//2 {0x00,0x00,0x40,0x92,0x92,0x92,0x6C,0x00},//3 {0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},//4 {0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},//5 {0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},//6 {0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},//7 {0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},//8 {0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}//9};//取字模voidSetLEDArray(intnNumber){

inti; for(i=0;i<8;i++) ledbuf[i]=~ledkey[nNumber][7-i];}main(){ REGISTERCLKMD=0;//设置工作频率为8MHz port8000=0;//初始化显示/控制板 port8000=0x80; port8000=0; port8007=0x0c1;//打开8*8的LED序列 for(nCount=0;nCount<8;nCount++) { ledbuf[nCount]=0x0ff;//显示为空白 ledx[nCount]=(nCount<<4);//生成显示列控制字 } RefreshLEDArray();//显示刷新 nCount=0;//从数字0开始显示 for(;;)//死循环 { SetLEDArray(nCount);//设置显示列的位置 Delay(193);//延时并显示刷新 nCount++;//显示下一个数据 nCount%=10;//0~9数字循环显示 nScanCode=port8001; nScanCode&=0x0ff;

Delay(16); if(nScanCode==SCANCODE_Enter) { for(;;) { SetLEDArray(nCount); Delay(193); } } }}voidDelay(unsignedintnDelay)//延时及显示刷新函数 { intii,jj,kk=0; for(ii=0;ii<nDelay;ii++) { for(jj=0;jj<64;jj++) { RefreshLEDArray(); //调刷新函数 kk++; } }}voidRefreshLEDArray()/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论