专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51单片机驱动点阵显示数字程序+电路

作者:佚名   来源:本站原创   点击数:  更新时间:2014年08月17日   【字体:

电路原理图:X轴为P2   Y轴为P0   


c51单片机程序代码:

#include <reg52.H>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
 
//1
unsigned char code tab1P0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char code tab1P2[]={0xff,0xcF,0xc7,0xc3,0xcf,0xcf,0xcf,0xff};
 
//2
unsigned char code tab2P0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char code tab2P2[]={0xff,0xc3,0xc3,0xcf,0xe7,0xc3,0xc1,0xff};
 
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(uchar i)//1ms延时
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
int i,j;
while(1)
{
j=100;
while(j)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tab1P2[i];
P0=tab1P0[i];
Delay_1ms(2);
}
j--;
}
Delay_1ms(100);
j=100;
while(j)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tab2P2[i];
P0=tab2P0[i];
Delay_1ms(2);
}
j--;
}
Delay_1ms(100);
}
}  

 

 

关闭窗口