3232LED点阵屏的KeilC51程序基于STC12C5A60S28个大字文档格式.docx
- 文档编号:6617140
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:17
- 大小:17.50KB
3232LED点阵屏的KeilC51程序基于STC12C5A60S28个大字文档格式.docx
《3232LED点阵屏的KeilC51程序基于STC12C5A60S28个大字文档格式.docx》由会员分享,可在线阅读,更多相关《3232LED点阵屏的KeilC51程序基于STC12C5A60S28个大字文档格式.docx(17页珍藏版)》请在冰点文库上搜索。
8LED_STC12C5A60S2.rar
74HC595.H文件:
//Note:
74HC595驱动
//File:
74HC595.H
//Date:
09-11-6
//Time:
3:
50am
//DesignBy:
Ling.Ju
SCLR(10脚)主复位接电源正极,G(13脚)使能端,输出有效接电源负极
//防止74HC595.H头文件被主程序重复调用
/*----------------------------------------------------------------------------*/
#ifndef__74HC595_H__
#define__74HC595_H__
sbitSD0=P1^0;
//串行数据输入,对应595的14脚SERD0/1D1/2D2/3D3/4
sbitSD1=P1^1;
sbitSD2=P1^2;
sbitSD3=P1^3;
sbitSH_CK=P1^4;
//移位寄存器时钟输入,对应595的11脚SCK
sbitST_CK=P1^5;
//存储寄存器时钟输入,对应595的12脚RCK
//函数声明
voidsend_595(unsignedcharData1,unsignedcharData2);
//串行输入,并行输出
//串行数据输入
voidsend_595(unsignedcharData1,unsignedcharData2)
{
unsignedchari;
for(i=0;
i;
#include;
#include&
quot;
hanzi.h&
//数据类型定义
#defineuint8unsignedchar
#defineuint16unsignedshort
//74hc138的ABCD接P2口的0123,0xA0就是P2口地址
/**************************************************************************/
//包(0)裹
(1)寄
(2)递(3)
//特(4)快(5)专(6)递(7)
//信(8)函(9)寄(10)递(11)
//综(12)合(13)业(14)务(15)
//报(16)刊(17)订(18)阅(19)
//集(20)邮(21)业(22)务(23)
voidsend_595_byte(uint8Data1,uint8Data2);
//595串行送入1byte数据
voidsend_data(void);
//送出buff中的所有数据
voidread_data(unsignedchar*add,uint16s);
//依次装载汉字的第1、16行,2、17行...所有数据
voiddelay1us(uint16i);
//延时1us?
?
externunsignedcharcodehanzi[];
//LS138的ABCD段码表
uint8codeLS138_CODE[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
uint8data_buff1[(LED_SIZE<
<
2)];
//缓存区1(上一行)
uint8data_buff2[(LED_SIZE<
//缓存区2(下一行)
uint8Line;
uint16Size;
voidmain(void)
uint8address;
LS138_OE=1;
Size=0;
P0=0xff;
//P0口加上拉电阻做地址,拨码开关拨到on则将对应管脚拉低
address=~P0;
//将地址按位取反,把拉低的端口改为1,用于选择汉字
switch(address)
{
case1:
break;
case2:
Size=128*LED_SIZE;
case4:
Size=128*LED_SIZE*2;
case8:
Size=128*LED_SIZE*3;
case16:
Size=128*LED_SIZE*4;
case32:
Size=128*LED_SIZE*5;
case64:
Size=128*LED_SIZE*6;
case128:
Size=128*LED_SIZE*7;
default:
}
while
(1)
for(Line=0;
Line<
16;
Line++)//16行扫描
read_data(hanzi,Size);
//装载汉字数据
send_data();
//发送2整行数据
LS138_OE=1;
//关闭138使能信号,关闭屏幕显示
LS138_PORT=LS138_PORT&
0xF0;
//清掉LS138的ABCD段码,关闭OE使能信号
LS138_PORT=LS138_PORT|LS138_CODE[Line];
//输出段码
HC595_STCLK=0;
//595的锁存置低
//delay1us
(2);
HC595_STCLK=1;
//595的锁存拉高,上升沿锁存数据
LS138_OE=0;
//送出138使能信号,点亮屏幕
delay1us(10);
}
voiddelay1us(uint16i)
while(i--)
_nop_();
/************************************************
装载数据进入缓冲器,依次转载第一个汉字的
第1行所有数据与第16行所有数据
************************************************/
voidread_data(unsignedchar*add,uint16s)
uint8ii,bb,cc;
uint16aa;
bb=Line<
2;
for(ii=0;
ii<
LED_SIZE;
ii++)
aa=((int)ii)<
7;
cc=ii<
data_buff1[cc]=*(add+s+bb+aa);
//上面字的前4个数据
data_buff1[cc+1]=*(add+s+bb+aa+1);
data_buff1[cc+2]=*(add+s+bb+aa+2);
data_buff1[cc+3]=*(add+s+bb+aa+3);
data_buff2[cc]=*(add+s+bb+aa+64);
//下面字的前4个数据
data_buff2[cc+1]=*(add+s+bb+aa+65);
data_buff2[cc+2]=*(add+s+bb+aa+66);
data_buff2[cc+3]=*(add+s+bb+aa+67);
/******************************
voidread_data(uint16s)
uint8ii;
data_buff1[ii*4]=hanzi[s+Line*4];
data_buff1[ii*4+1]=hanzi[s+Line*4+1];
data_buff1[ii*4+2]=hanzi[s+Line*4+2];
data_buff1[ii*4+3]=hanzi[s+Line*4+3];
data_buff2[ii*4]=hanzi[s+Line*4+16];
data_buff2[ii*4+1]=hanzi[s+Line*4+17];
data_buff2[ii*4+2]=hanzi[s+Line*4+18];
data_buff2[ii*4+3]=hanzi[s+Line*4+19];
****************************************/
/**********************************************
74HC595串行数据输入1个字节,2行字同时输出
第一个为上半部分数据,第二个为下半部分数据
***********************************************/
voidsend_595_byte(uint8Data1,uint8Data2)
i<
8;
i++)
HC595_CLK=0;
//先置为低
HC595_D0=Data1&
0x80;
//取数据的最高位
HC595_D1=Data2&
Data1<
=1;
//将数据的次高位移到最高位,为下一次取数据做准备
Data2<
HC595_CLK=1;
//再置为高,产生移位时钟上升沿,上升沿时数据寄存器的数据移位
voidsend_data(void)//送出一整行数据
uint8jj,kk;
kk=(LED_SIZE<
2);
//总共需要发送的字节数,1个32*32汉字每行4字节
for(jj=0;
jj<
kk;
jj++)
send_595_byte(data_buff1[jj],data_buff2[jj]);
hanzi.h字库文件
#ifndef__HANZI__H
#define__HANZI__H
unsignedcharcodehanzi[]=
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xE3,0xFF,0xFF,0xE3,0xE1,0xFF,0xF1,0xE3,0xE1,0xFF,0xF8,0xC3,0xF1,0xFF,
0xFE,0x47,0xF3,0xFF,0xFE,0x0F,0xF3,0xFF,0xFF,0x1F,0xF3,0x0F,0xFE,0x1F,0xF0,0x03,
0xFC,0x0C,0x03,0x87,0xF1,0x8C,0x73,0x8F,0xE3,0x8C,0x73,0x9F,0xFF,0x0E,0x73,0x1F,
0xFE,0x0E,0x73,0x1F,0xFE,0x0E,0x60,0x1F,0xFC,0x4F,0x03,0xFF,0xF8,0xCF,0x33,0xFF,
0xF1,0xCF,0xF3,0xFF,0xE3,0xCF,0xF3,0x1F,0xC7,0xCF,0xF3,0x87,0x9F,0x8F,0xF0,0x03,
0xFF,0x8F,0x80,0xC3,0xF8,0x00,0x07,0xE3,0xFE,0x08,0x3F,0xF3,0xFF,0x1F,0xFF,0xFF,
0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*&
独&
0*/
/*(32X32,楷体,加粗)*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,
0xFF,0xE3,0xFF,0x8F,0xFF,0xE3,0xFF,0x8F,0xFF,0xC3,0xFF,0x8F,0xFF,0xC3,0xFF,0x8F,
0xFF,0x80,0xFF,0x8F,0xFF,0x88,0x23,0x8F,0xFF,0x1C,0x31,0x8F,0xFE,0x3F,0x11,0x8F,
0xFE,0x3F,0xF1,0xCF,0xFC,0x7F,0xF1,0xCF,0xF8,0xF1,0xF1,0xCF,0xF0,0x00,0xF1,0xCF,
0xE2,0x78,0xF1,0xCF,0xCE,0x78,0xF1,0xCF,0x9E,0x79,0xF1,0xCF,0xFE,0x79,0xF1,0xCF,
0xFE,0x61,0xF1,0xCF,0xFE,0x71,0xFF,0xCF,0xFE,0x33,0x3F,0xCF,0xFE,0x3F,0x3F,0xCF,
0xFE,0x3F,0x1F,0xCF,0xFF,0x0E,0x1F,0x8F,0xFF,0x80,0x19,0x8F,0xFF,0xF1,0xFC,0x0F,
0xFF,0xFF,0xFE,0x0F,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0x9F,0xFF,0xFF,0xFF,0xFF,/*&
创&
1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,
0xFF,0xF0,0xFF,0xFF,0xFF,0xF1,0xFF,0xFF,0xFF,0xF1,0xFF,0xFF,0xFF,0xF1,0xFF,0xFF,
0xFF,0xF1,0xFF,0xFF,0xFF,0xF1,0x81,0xFF,0xFF,0xC0,0x00,0x7F,0xF0,0x01,0xF0,0xFF,
0xF8,0xF1,0xF0,0xFF,0xF8,0xF1,0xF1,0xFF,0xFC,0xF0,0x11,0xFF,0xFC,0x00,0x71,0xFF,
0xFC,0x71,0xF1,0xFF,0xFC,0x71,0xE3,0xFF,0xFC,0x71,0xE3,0xFF,0xFE,0x70,0x03,0xFF,
0xFE,0x00,0x03,0xCF,0xFE,0x71,0xE7,0xCF,0xFF,0xF1,0xFF,0xCF,0xFF,0xF1,0xFF,0xCF,
0xFF,0xF9,0xFF,0xC7,0xFF,0xF8,0xFF,0x87,0xFF,0xF8,0x7E,0x07,0xFF,0xFC,0x00,0x0F,
0xFF,0xFF,0x80,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*&
电&
2*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xFF,
0xFF,0xFE,0x00,0xFF,0xFF,0x00,0x20,0xFF,0xFF,0x83,0xE3,0xFF,0xFF,0xFF,0xC7,0xFF,
0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFE,0x3F,0xFF,
0xFF,0xFE,0x3C,0x07,0xFF,0xFE,0x00,0x01,0xFF,0xC0,0x07,0xFF,0xC0,0x03,0x1F,0xFF,
0xE0,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,
0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,
0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xE0,0x1F,0xFF,0xFF,0xF8,0x1F,0xFF,
0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*&
子&
3*/
4*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 3232 LED 点阵 KeilC51 程序 基于 STC12C5A60S28 大字