16*16点阵屏
来源:互联网 发布:东德歧视知乎 编辑:程序博客网 时间:2024/04/30 15:03
基于stc89c52rc,4片74HC595,跟一个16*16的点阵屏
程序如下:
#include<reg52.h>
#include<INTRINS.H>
#define uchar unsigned char
sbit DAT=P1^0; //列数据
sbit DATH=P1^3; //行数据
sbit ljl=P1^1; //列寄存器
sbit lcl=P1^2; //列锁存器
sbit hjl=P1^4; //行寄存器
sbit hcl=P1^5; //行锁存器
void delay(uchar x)
{char i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
code unsigned char tie[32]={//1
0x03,0x80,0x07,0x80,0x0F,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
0x01,0x80,0x01,0x80,0xFF,0xFF,0xFF,0xFF};
unsigned char code tabh[]={0x00,0x80,0x00,0x40,
0x00,0x20,0x00,0x10,
0x00,0x01,0x00,0x02,
0x00,0x04,0x00,0x08,
0x00,0x80,0x00,0x40,
0x00,0x20,0x00,0x10,
0x00,0x01,0x00,0x02,
0x00,0x04,0x00,0x08
};
void sendbyte(unsigned char a)
{ unsigned char i;
for(i=0;i<8;i++)
{
ljl=0;
DAT=a&0x80;
a=a<<1;
ljl=1;
}
}
void out595(void)
{
lcl=0;
_nop_();
lcl=1;
}
void sendbyteh(unsigned char a)
{ unsigned char i;
for(i=0;i<8;i++)
{
hjl=0;
DATH=a&0x80;
a=a<<1;
hjl=1;
}
}
void out595h(void)
{
hcl=0;
_nop_();
hcl=1;
}
void main()
{
unsigned char i,j;
while(1)
{
for(i=0;i<16;i++)
{
for(j=0;j<2;j++)
{
sendbyte(tie[i*2+j]); //列扫描
sendbyteh(tabh[i*2+j]); //行扫描
}
out595();
out595h();
}
delay(50);
}
}
我自己动手做了,但是结果没实现。但是我感觉程序没问题,可能是我第一会动手做电子器件技术不够好的原因。
- 16*16点阵屏
- 16*16点阵上下左右滚屏显示
- 16*64点阵驱动
- 16*16点阵移动程序
- LED 16*16点阵显示屏
- 【MSP430】16 * 16 汉字点阵
- 16X16汉字点阵显示
- 毕业设计《4个16*16点阵屏设计》
- 点阵屏
- 16*16点阵字库HZK16的使用
- GB2312字库的16x16点阵字模
- 用C语言编程16点阵字库
- 16/24点阵字库(经典)
- 16/24点阵字库(经典)
- 16/24点阵字库(经典)
- 中文字体库转换成16X16点阵 另外附上ASCII码转换8X16点阵
- 四极管 点阵屏控制 AVR 静态点阵
- PH10全彩 LED屏 64*16 点阵显示4个汉字调试心得
- AutoCAD 系统变量
- 汇编写驱动(一)——光速入门
- Oracle语句优化53个规则详解
- Java7新特性监听文件改变
- Android应用程序基础 >> 任务栈和亲属关系(Activities and Tasks)
- 16*16点阵屏
- java类的初始化顺序
- poj1006——生理周期
- 亚嵌
- 权限管理
- OpenSSL生成证书
- asp.net小贴士
- Hash Table
- 核危机或全面失控 菅直人称做好东日本全毁准备