74HC595驱动led单色点阵屏程序

控制/MCU

1882人已加入

描述

#include  

#include  
#define uchar unsigned char  
#define uint unsigned int 
#define NOP     _nop_() 
 
sbit OE     = P2^0; 
sbit A1     = P2^1; 
sbit B1     = P2^2; 
 
sbit SHCP=P2^4;    //11脚SHCP    移位时钟 
sbit STCP=P2^3;    //12脚STCP    锁存时钟 
sbit DATA=P3^7;    //数据输入 
 
uchar code table[10][32]= 
{{0xFE,0xF7,0xBD,0xF7,0xC8,0x77,0xDB,0x77,0xF8,0x01,0xFB,0x77,0x18,0x37,0xDB,0x57, 
  0xD0,0x57,0xDE,0x77,0xDD,0x77,0xD5,0x77,0xCB,0x77,0xD7,0x77,0xED,0x57,0xFE,0xEF},    
{ 0xFE,0xF7,0xBD,0xF7,0xC8,0x77,0xDB,0x77,0xF8,0x01,0xFB,0x77,0x18,0x37,0xDB,0x57, 
  0xD0,0x57,0xDE,0x77,0xDD,0x77,0xD5,0x77,0xCB,0x77,0xD7,0x77,0xED,0x57,0xFE,0xEF}}; 
/*******************************************************************************************/  
       
/*******************************************************************************************/ 
/*******************************************************************************************/ 
//数据串行输入  
void serial_input(uchar dat)     
uint m; 
for(m=0;m<8;m++) 
if(dat & 0x80) 
DATA=1; 
else  
  DATA=0; 
SHCP=0; 
SHCP=1;    
        NOP; 
NOP; 
SHCP=0; 
NOP; 
NOP; 
dat=dat<<1; 
 
 
/*******************************************************************************************/ 
//并出 
void serial_output() 
STCP=1;                  
NOP; 
NOP; 
STCP=0; 
}   
/*******************************************************************************************/ 
/*******************************************************************************************/ 
//行显控制 
void HC138_scan(uchar temp) 
   OE=1; 
   A1=0x01 & temp; 
   B1=0x01 &(temp>>1); 
/*******************************************************************************************/ 
/*******************************************************************************************/ 
//整屏显示 
void display() 
uint i,j,k; 
for(k=0;k<4;k++)                  //显示的四行 
for(j=0;j<2;j++)          //显示3、4列 
for(i=0;i<2;i++)      // 显示1、2列 
serial_input(table[j][3*8+2*k+i]);           
serial_input(table[j][2*8+2*k+i]);   
serial_input(table[j][1*8+2*k+i]); 
serial_input(table[j][0*8+2*k+i]); 
serial_output(); 
HC138_scan(k); 
 
/*******************************************************************************************/ 
/*******************************************************************************************/ 
 
/*******************************************************************************************/ 
/*******************************************************************************************/ 
void main() 
while(1) 
 
display();   
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
从此以后、 2016-01-04
0 回复 举报
保存来用用,谢谢楼主 收起回复
智能超能 2015-06-01
0 回复 举报
求原理图啊。。。。。。。。。。。。。。。。。。。。 收起回复
全部评论

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分