8x8点阵显示,包括静止显示与滚动显示,还有protues仿真
单片机源程序如下:
- /*********************************
- *name: 微型计算机控制技术试验
- * 8*8LED点阵输出名字学号
- *auther: 16级电气一班 WYH
- * 2016903020
- *********************************/
- #include "reg51.h"
- #include<intrins.h>
- typedef unsigned int u16; //对数据类型进行声明定义
- typedef unsigned char u8;
- u8 zero_duan[] ={0x00,0x00,0x3c,0x42,0x42,0x3c,0x00,0x00};
- u8 wei[] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
- u8 one_duan[] ={0x00,0x00,0x00,0x44,0x7e,0x40,0x00,0x00};
-
- u8 two_duan[] ={0x00,0x00,0x64,0x52,0x4a,0x44,0x00,0x00};
-
- u8 three_duan[] ={0x00,0x00,0x24,0x42,0x5a,0x24,0x00,0x00};
-
- u8 six_duan[] ={0x00,0x00,0x7c,0x92,0x92,0x62,0x00,0x00};
-
- u8 nine_duan[] ={0x00,0x00,0x8c,0x92,0x92,0x7c,0x00,0x00};
-
- u8 w_duan[] ={0x08,0x10,0x20,0x18,0x18,0x20,0x10,0x08};
-
- u8 y_duan[] ={0x00,0x02,0x04,0x78,0x04,0x02,0x00,0x00};
-
- u8 h_duan[] ={0x00,0x00,0xfe,0x10,0x10,0xfe,0x00,0x00};
- /*******************************************************************************
- * 函 数 名 : delay
- * 函数功能 : 延时函数,i=1时,大约延时10us
- *******************************************************************************/
- void delay(u16 i)
- {
- while(i--);
- }
- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void main()
- {
- u8 i;
- u16 j,k;
- while(1)
- {
- for(j=0;j<13;j++)
- {
- k=100;
- while(k--)
- {
- for(i=0;i<8;i++)
- {
- switch(j)
- {
- case 0: //w
- P0=wei[i]; //位选
- P2=w_duan[i]; //发送段选数据
- break;
- case 1: //y
- P0=wei[i]; //位选
- P2=y_duan[i]; //发送段选数据
- break;
- case 2: //h
- P0=wei[i]; //位选
- P2=h_duan[i]; //发送段选数据
- break;
- case 3: //2
- P0=wei[i]; //位选
- P2=two_duan[i]; //发送段选数据
- break;
- case 4: //0
- P0=wei[i]; //位选
- P2=zero_duan[i];//发送段选数据
- break;
- case 5: //1
- P0=wei[i]; //位选
- P2=one_duan[i]; //发送段选数据
- break;
- case 6: //6
- P0=wei[i]; //位选
- P2=six_duan[i]; //发送段选数据
- break;
- case 7: //9
- P0=wei[i]; //位选
- P2=nine_duan[i];//发送段选数据
- break;
- case 8: //0
- P0=wei[i]; //位选
- P2=zero_duan[i];//发送段选数据
- break;
- case 9: //3
- P0=wei[i]; //位选
- P2=three_duan[i];//发送段选数据
- break;
- case 10: //0
- P0=wei[i]; //位选
- P2=zero_duan[i];//发送段选数据
- break;
- case 11: //2
- P0=wei[i]; //位选
- P2=two_duan[i]; //发送段选数据
- break;
- case 12: //0
- P0=wei[i]; //位选
- P2=zero_duan[i];//发送段选数据
- break;
- }
- delay(120); //延时
- }
- }
- }
- }
- }
复制代码
所有资料51hei提供下载:
8X8点阵.zip
(91.72 KB, 下载次数: 48)
|