- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验6:显示阵列的操作 一、实验目的 通过实验学习使用F2812 DSP的扩展端口接收外围设备信息的方法,了解发光二极管阵列的原理及控制编程方法 二、实验设备 计算机、CCS3.3开发软件 ICETEK- F2812 -A-EDU实验箱 三、实验原理 1.EMIF接口: F2812的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址连线、数据连线和一组控制线。ICETEK- F2812 -A将这些扩展线引到了板上的扩展插座上供扩展使用 2.发光二极管显示原理: 三、实验原理 三、实验原理 3.显示原理 DSP须将显示的图形按列的顺序存储起来(8*8点阵,8个字节,高位在下,低位在上),定时刷新控制显示。 三、实验原理 4.显示过程: 1.准备字库 2.初始化:打开设备,清缓冲区,清屏 3.写缓冲区 4.发送写命令送控制端口 5.写数据到端口 字库:ledkey[10][8] 缓冲区:ledbuf[8] 列命令控制字: ledx[8] 三、实验原理 4.具体操作 1)准备字库 “0-9”10个数字,每个数字由8个8位字符构成8*8阵列 ledkey[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,0x4C,0x92,0x92,0x92,0x7C,0x00} }; 三、实验原理 2)初始化 打开阵列设备 在I/O端口CTRLR写入控制字0xc1; CTRLR=0xc1; 清缓冲区ledbuf ledbuf[nCount]=0x0ff; // 显示为空白 ledx[nCount]=(nCount4); // 生成显示列控制字 清屏 RefreshLEDArray(); 三、实验原理 3)写缓冲区 将显示数字的对应字库写入数据缓冲区 例:“0” 字库:ledkey[1][8]={0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00}//0 三、实验原理 3)写缓冲区 写入缓冲区ledbuf[8] void SetLEDArray(int nNumber) // nNumber:需显示的数 { int i; for ( i=0;i8;i++ ) ledbuf[i]=~ledkey[nNumber][7-i];//取反显示 } 三、实验原理 3)显示 将缓冲区的数据写到控制寄存器端口 void RefreshLEDArray() { int i; for ( i=0;i8;i++ ) {CTRGR=ledx[i]; //列命令控制字 CTRLA=ledbuf[i];}//写数据 } } 三、实验原理 4.实验程序流程图 四、实验步骤 1.实验准备: (1)连接实验设备 (2)将扩展板的电源打开 2.设置CCS在硬件仿真模式下工作 3.启动CCS,点击【Debug】--【Reset CPU】 4.打开工程文件: C:\ICETEK-F2812-A-EDUlab\DSP281x_examples\lab0402-Ledarray\LedArray.pjt 浏览main.c文件的内容,理解各句含义 四、实验步骤 5.编译下载程序。 6.运行程序观察结果: 可以观察到发光二极管阵列显示从0-9的计数 7. 结束程序运行,退出CCS 五、实验要求 结合上堂课定时器实验,利用通用定时器0 ,在通用计时器中断中取得延时,改变显示内容,同时利用计时器精确显示间隔时间。 *
文档评论(0)