8X8点阵原理图
仿真图:
单片机源程序如下(左移显示):
- /*********************************************************************************
- * 【作 者】: 清翔电子
- * 【声 明】: 此程序仅用于学习与参考,引用请注明版权和作者信息!
- * 【函数功能】: 8*8点阵动态显示,箭头左移。
- * 【使用说明】: 兼容1602接口,使用时请把点阵1脚至6脚对应接到1602 1脚至6脚,
- 使用QX-MCS51开发板可以直接烧写此程序,无需修改接口。
- **********************************************************************************/
- #include "main.h"
- //定义变量
- unsigned char temp = 0xfe;
- unsigned char KEY_NUM = 0;
- unsigned char Display_word[24] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10, //箭头
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- //****************************************************
- //主函数
- //****************************************************
- void main()
- {
- unsigned int i;
- unsigned char j,k;
- while(1)
- {
- for(j = 0 ; j < 16 ; j++)
- {
- for(i = 0 ; i < 50 ; i++)
- {
- temp = 0x7f;
- for(k = 0 ; k < 16 ; k++) //一个字母4BYTE
- {
- Send_Byte(temp); //列选择
- Send_Byte(Display_word[j+k]); //数据
- LEDARRAY_LAT = 1; //锁存数据
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
- }
- }
- //****************************************************
- //发送一个字节数据
- //****************************************************
- void Send_Byte( unsigned char dat)
- {
- unsigned char i;
- LEDARRAY_CLK = 0;
- _nop_();
- LEDARRAY_LAT = 0;
- _nop_();
- for( i = 0 ; i < 8 ; i++ )
- {
- if( dat&0x01 )
- {
- LEDARRAY_DI = 1;
- }
- else
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码 静止显示:
- /*********************************************************************************
- * 【编写时间】: 2014年3月5日
- * 【作 者】: 清翔电子&51hei
- * 【声 明】: 此程序仅用于学习与参考,引用请注明版权和作者信息!
- * 【函数功能】: 8*8点阵静态显示"亲"与心形符号
- * 【使用说明】: 兼容1602接口,使用时请把点阵1脚至6脚对应接到1602 1脚至6脚,
- 使用QX-MCS51开发板可以直接烧写此程序,无需修改接口。
- **********************************************************************************/
- #include "main.h"
- //定义变量
- unsigned char temp = 0xfe;
- unsigned char KEY_NUM = 0;
- unsigned char Display_word[4][4] = {
- 0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //亲
- 0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心
- };
- //****************************************************
- //主函数
- //****************************************************
- void main()
- {
- unsigned int i;
- unsigned char j,k;
- while(1)
- {
- for(i = 0 ; i < 1000 ; i++)
- {
- temp = 0x7f;
- for(j = 0 ; j < 2 ; j++) //显示前两个字母
- {
- for(k = 0 ; k < 4 ; k++) //一个字母4BYTE
- {
- Send_Byte(temp); //列选择
- Send_Byte(Display_word[j][k]); //行数据
- LEDARRAY_LAT = 1; //锁存数据
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
- for(i = 0 ; i < 1000 ; i++)
- {
- temp = 0x7f;
- for(j = 2 ; j < 4 ; j++) //显示前两个字母
- {
- for(k = 0 ; k < 4 ; k++) //一个字母4BYTE
- {
- Send_Byte(temp); //列选择
- Send_Byte(Display_word[j][k]); //行数据
- LEDARRAY_LAT = 1; //锁存数据
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
-
-
- }
- }
- //****************************************************
- //发送一个字节数据
- //****************************************************
- void Send_Byte( unsigned char dat)
- {
- unsigned char i;
- LEDARRAY_CLK = 0;
- _nop_();
- LEDARRAY_LAT = 0;
- _nop_();
- for( i = 0 ; i < 8 ; i++ )
- {
- if( dat&0x01 )
- {
- LEDARRAY_DI = 1;
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
清翔电子8_8点阵资料包.rar
(1.23 MB, 下载次数: 72)
|