AT89C52单片机—8*8点阵屏显示汉字

下图依次是两片74HC595级联,8*8点阵图的封装原理图,并给出全部的代码解释,因为keil5直接复制的代码显示乱码,所以有进行完整的代码截图。感谢批评指正。

 

 

#include <REGX52.H>
#define uint unsigned int
#define uchar unsigned char
sbit dio =P3^4;//´®ÐÐÊý¾Ý¿Ú
sbit sclk =P3^5;//ÒÆλ¼Ä´æÆ÷ʱÖÓ
sbit rclk =P3^6;//Êä³ö¼Ä´æÆ÷ʱÖÓ
//0x61,0xB5,0xD5,0xF0,0xDE,0xA2,0x7C,0xFE//
//0xFE,0x7C,0xA2,0xDE,0xF0,0xD5,0xB5,0x61//´¹Ö±·­×ª
//0x18,0xAA,0xB2,0xBB,0x12,0xB2,0xB6,0x10//
//0x1C,0xB0,0xB2,0x00,0xA4,0xB1,0xA0,0x1B//
//0xF7,0xE1,0xC1,0x80,0x80,0x88,0x9C,0xBE//ÐÄÐÎ

uchar code table[6][8] ={0xFE,0x7C,0xA2,0xDE,0xF0,0xD5,0xB5,0x61,
	0x18,0xAA,0xB2,0xBB,0x12,0xB2,0xB6,0x10,
	0x1C,0xB0,0xB2,0x00,0xA4,0xB1,0xA0,0x1B,
	0xF7,0xE1,0xC1,0x80,0x80,0x88,0x9C,0xBE,
	0x73,0x60,0x7B,0x20,0x53,0x20,0x5B,0x0B,
	0xE7,0xD7,0xF7,0xF7,0x81,0x7E,0x00,0xE7
};
void delay(uchar x)		//@12.000MHz   //Ò»ºÁÃëÑÓʱº¯Êý
{
	unsigned char i, j;
	while(x--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

void send_byte(uchar dat)     
//Á½Æ¬595Ëø´æÆ÷·¢Ëͺ¯Êý
{
	uchar i;
	sclk =0;//ÉÏÉýÑØ´æ´¢
	rclk =0;//ÊÕ·¢¾ùÏÈÖÃÁã
	for(i =0;i<8;i++)
	{	
		if(dat & 0x01) //´ÓÓÒÍù×óÒÀ´ÎÒÆλ·¢³ö
			dio =1;
		else
			dio =0;
		sclk =1;//0¡ª¡ª1ÉÏÉýÑØ ·¢Ë͵½595Ëø´æÆ÷
		dat>>=1;//ÓÒÒÆһλ
		sclk =0;//ÖÃÁã
	}
}

void main()
{
	uchar j,k,row;
	unsigned int l;
	while(1)
	{
			for(k=0;k<6;k++)      //k±íʾÊý×éÖеÄÐÐÊý£¬ÖðÐнøÐз¢ËÍ
		  {
				for(l=0;l<600;l++)  //µ¥Æ¬»ú´¦ÀíËٶȽϿ죬ִÐÐ600´Î£¬Ê¹ÏÔʾºº×ÖÄܹ»¶ÌÔÝÍ£Áô
				{
					row =0x80;        //ÐÐÖÃλ  1000 0000£¬ÖðÐнøÐз¢ËÍ
					for (j =0;j<8;j++)
					{
						send_byte(table[k][j]);//·¢ËÍÁеÄÐÅÏ¢
						send_byte(row);        //·¢ËÍÐеÄÐÅÏ¢
						rclk =1;               //0¡ª¡ª1ÉÏÉýÑØ·¢ËÍ
						rclk =0;               //ÖÃÁã
						row>>=1;               //ÐÐÏÂÒÆÒÆλ 1000 0000¡ª¡ª0100 0000¡ª¡ª0010 0000
						//delay(800);
					}
				}			
				//delay(100);
			}		
	}
	
}

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值