单片机编程实例(16X16屏)探究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编程实例【16×16点阵屏】 一、实现串进并出的编程 串进并出方法很多,一般用74HC164或74HC595等器件配相关软件完成。 这里介绍具有锁存功能的74HC595。 1 74HC595器件介绍 74HC595又称“8位锁存移位寄存器”, 该 器件有:4个输入信号(DI、CLK、ALE和 CLR);9个输出信号(Q0~Q7和Cy)。 下图是用2片74HC595组成的16位串进并出 电路图。 16位串进并出实际电路【16行信号】 2 编程实例 #include reg52.h //引脚定义函数 #include absacc.h //XBYTE的头文 sbit LEDALE=P1^3; //74HC595锁存信号 sbit LEDDI=P1^7; //74HC595输入信号 sbit LEDCLK=P3^3; //74HC595的时钟信号 #define Y0 XBYTE[0x1000] //Y0的口地址 void display_r(unsigned int numb) //显示16行数据(函数) { unsigned char i; unsigned int x; x=~numb; LEDALE=0,LEDCLK=0;//初始化 for(i=0;i16;i++) { /* if (x 0x8000) LEDDI=1; else LEDDI=0;*/ LEDDI=(bit)(x 0x8000); LEDCLK=1;LEDCLK=1; //相当延时 LEDCLK=0;LEDCLK=0; //相当延时 x=x1; //数据左移一位 } LEDALE=1; //ALE产生上升沿 LEDALE=0; } 二、译码器及LED灯的相关电路介绍 1 地址译码相关电路 2 16×16屏列信号译码电路 三、16×16点阵屏及列驱动电路 四、16×16点阵屏编程函数 void disp_16rz(unsigned int numb[ ])//显示16×16 { unsigned char y0data=0,abcd=0,i; for(i=0;i16;i++) { display_r(numb[ I ]); //送行数据 abcd=abcd3; //变换列数据 y0data=abcd | (led123 0x07); Y0=y0data; //显示一列数据(列译码) abcd=i+1; //列增1 delay_s(0x40); //点亮时间 } Y0=led123 | 0x80; //关显示器 } 五、16×16点阵数据的获取 unsigned int code dis_numb1[16]= { 0x4000,0x4FFE,0x4814, 0x4824, 0x4844,0x7F84,0x4804, 0x4804, 0x4804,0x7F84,0x4844, 0x4844, 0x4844,0x4FFE,0x4000, 0x0000 };//西 【数据由汉字取模软件获取】 六、主函数调用 unsigned char led123;//LED灯全局变量 void main(void) { led123=0x02; //LED2点亮L2=1

文档评论(0)

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

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

1亿VIP精品文档

相关文档