网站大量收购闲置独家精品文档,联系QQ:2885784924

03LED点阵模块.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
03LED点阵模块

硬件模块03: LED点阵 原理和电路图: 图1:8×8 LED点阵模型 图2:8×8 LED点阵电路原理 ★ LED硬件连线:(参考) 假设实验中按如下连线:(自己可根据情况灵活接插) ◆ PORTA连接Y端 ◆ PORTC连接X端 ★ 根据本实验板的具体硬件设计,控制原理如图1、图2所示。 “行” —— 由Y 控制 ; 置 1 有效 ;行号自下而上 例:PORTA = 0 //第Y0行有效 Y7 ← Y0 “列” —— 由X 控制 ; 置 0 有效 ;列号自左向右 例:PORTC = 0 //第X0列有效 X7 ← X0 若同时给定 “行信号”与“列信号”的值,可控制相应的LED灯。 上述端口值设置后,将点亮坐标(Y0,X0)处的LED灯。 注:① 可将LED点阵理解成为8组8位发光二极管。 ② 语句中列信号的值设置顺序正好与显示时顺序相反,需注意。 实验任务: 由下至上,逐行点亮LED灯,每行LED灯点亮延时500ms, 循环反复。 算法分析: 步骤1: 定位至最底行Y0,点亮该行所有列X0~X7,灯亮延时500毫秒。 步骤2: 定位至 行Y1,点亮该行所有列X0~X7,灯亮延时500毫秒。 步骤3: 定位至 行Y2,点亮该行所有列X0~X7,灯亮延时500毫秒。 …… 步骤8: 定位至 行Y7,点亮该行所有列X0~X7,灯亮延时500毫秒。 反复执行 步骤1~步骤8 。 经过上述分析中,可将程序进行如下设计: ① “行”定位(由Y0行 ~ Y7行)可利用左移位运算符()和循环结构自动快速的实现。 ② 每行中的内容(即列信号)都一样,点亮该行所有灯。根据硬件特点,将其电平信号值全部置 0 即可。 程序实现: 示例程序1: # include mega16.h # include delay.h void main(void) { unsigned char x = 0 //每行上的值(列信号) 全亮 unsigned char y; //控制行信号 int i; //循环次数控制变量 DDRA = 0xFF; //将端口A所有针脚设为信号输出 (行) DDRC = 0xFF; //将端口C所有针脚设为信号输出 (列) while (1) { y = 0 //行信号初值 定位第Y0行 for (i=0;i8;i++) //循环8次,定位8行 { PORTA = y; //行定位 PORTC = x; //得到每行的值 delay_ms(500); y = y 1; //行信号位移改变 } } } 课堂实践: 1.请完成上述逐行点亮LED灯的实验任务。 2.修改程序,缩短每行延时时间至10ms、2ms,分别查看效果。思考原因。 深入学习: (一) 静态图形显示的方法 上述的实验任务中,每一行上的值一致,都是点亮全部灯。如果每行上显示的内容不一样,又该怎么处理呢?请仔细体会实验任务2。 ★ 实验任务2: 在8×8 LED点阵中,静态显示向上箭头“↑”。 算法分析: 此任务与之前的实验,主要区别在于每行上显示的内容不一样。故首先要根据字形,分析出每行上电平信号对应的二进制。其次,思考如何将这些值快速高效的能被单片机所调用。结合之前的 数组、循环 ,我们做如下设计: 示例程序2: #include mega16.h #include delay.h void main(void) { unsigned char x[8] = {0xFF,0xE7,0x E7,0x E7,0x E7,0x81,0xC3,0xE7}; //利用数组存放箭头字形每行上的数值。 unsigned char y; int i; DDRA =

文档评论(0)

haocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档