资源简介
基于C51 的16*64LED点阵基于C51 的16*64LED点阵基于C51 的16*64LED点阵

代码片段和文件信息
/*******************************************************
程序实现功能:
输入任意英文字母、标点符号和已取模的任意汉字,在LED显示
屏上左移循环显示。
*******************************************************/
#include
#include
//#include
#include
#define uchar unsigned char
#define uint unsigned int
#define RAM 0x0000
sbit STB = P1^0;
sbit DATA = P1^1;
sbit CLK = P1^2;
sbit G1G2 = P1^3;
sbit INH = P1^4;
void init();
void delay_ms(uint m);
uchar WriteToRam(uchar *ptr);
void SendOneLineData(uchar xdata *ptruchar line);
uchar xdata *addr;
void main()
{
uchar inlen;
init();
addr = RAM + 16*8; //从第9个字符位置开始写显示数据
len = WriteToRam(“LED公交广告系统潘忠伟制作.联系方式:QQ276779211;邮箱:pzw923@163.com“);
//将要显示的内容写入到显存中并返回写入显存内容长度
addr = RAM; //将显存首地址附给片外数据指针
while(1)
{
n++;
if(n==3)
{
n = 0;
addr += 2; //指针指向显存中下一列数据产生左移效果
if(addr==(len+8)*16)
addr = 0; //显示完一轮指针清0
}
for(i=0;i<16;i++)
{
SendOneLineData(addri); //送第i行数据到屏幕显示
P3 &= 0xf0;
P3 |= i; //扫描第i行
G1G2 = 1;
G1G2 = 0;
delay_ms(2);
}
}
}
void init() //初始化
{
STB = 1;
INH = 0;
}
/************************************************
送一行要数据到LED屏幕上显示
ptr:指向片外数据存储器的指针
line:在LED上显示的行参数line=1时为第一行数据
************************************************/
void SendOneLineData(uchar xdata *ptruchar line)
{
uchar itemp;
if(line<8)
{
for(i=0;i<128;i+=2)
{
temp = ptr[i];
DATA = (temp>>line)&0x01;
CLK = 1;
CLK = 0;
}
}
else
{
for(i=1;i<128;i+=2)
{
temp = ptr[i];
DATA = (temp>>line-8)&0x01;
CLK = 1;
CLK = 0;
}
}
}
/************************************************
将欲显示的内容送入片包数据存储器RAM当中并返回送
入显存中内容的长度.
************************************************/
uchar WriteToRam(uchar *ptr) //将要显示的内容写入显存中(RAM)
{
uchar lenc1c2ijk;
for(len=0; ptr[len]!=0; len++); //计算出要写入显存的内容长度
for(i=0;i {
c1 = ptr[i];
c2 = ptr[i+1];
if(c1 <= 128) //英文字母或标点符号
{
for(j=0;j<16;j++)
{
*addr = nAsciiDot[(c1 - 0x20)*16 + j];
addr++;
}
}
else
{
for(j=0;j {
if(c1 == GB_16[j].Index[0] && c2 == GB_16[j].Index[1])
break;
}
if(j {
for(k=0;k<32;k++)
{
*addr = GB_16[j].Msk[k];
addr++;
}
i++; //汉字点阵所占存储空间是字符的两倍
}
else //字库中没有对方应汉字字模数据则全亮
{
for(k=0;k<32;k++)
{
*addr = 0xff;
addr++;
}
i++; //汉字点阵所占存储空间是字符的两倍
}
}
}
return len;
}
void delay_ms(uint m)
{
uint ij;
for(i=m;i>0;i--)
for(j=120;j>0;j--);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 129980 2008-07-23 10:43 led4816纵向取模\Backup Of led.DBK
文件 3773 2008-08-13 11:00 led4816纵向取模\keil\cncode.h
文件 9564 2008-08-12 09:20 led4816纵向取模\keil\encode.h
文件 7957 2008-09-14 23:15 led4816纵向取模\keil\led
文件 3093 2008-08-13 09:10 led4816纵向取模\keil\led.c
文件 7853 2008-09-14 23:15 led4816纵向取模\keil\led.hex
文件 8253 2008-09-14 23:15 led4816纵向取模\keil\led.LST
文件 8810 2008-09-14 23:15 led4816纵向取模\keil\led.M51
文件 9250 2008-09-14 23:15 led4816纵向取模\keil\led.OBJ
文件 1092 2009-03-23 22:23 led4816纵向取模\keil\led.Opt
文件 224 2009-03-23 22:23 led4816纵向取模\keil\led.plg
文件 1980 2008-07-22 14:03 led4816纵向取模\keil\led.Uv2
文件 2203 2008-09-14 23:16 led4816纵向取模\keil\led_Opt.Bak
文件 1617 2008-08-12 13:02 led4816纵向取模\keil\ppp.h
文件 165560 2008-08-12 13:42 led4816纵向取模\Last Loaded led.DBK
文件 165557 2008-08-12 14:45 led4816纵向取模\led.DSN
文件 1364 2009-05-09 12:49 led4816纵向取模\led.PWI
目录 0 2009-03-23 22:31 led4816纵向取模\keil
目录 0 2009-05-09 12:49 led4816纵向取模
----------- --------- ---------- ----- ----
528130 19
相关资源
- STM32 led 时钟
- STC8951系列单片机中方指南
- LED灯串电路图说明
- stm32f103c8t6 4 oled.rar
- proteus仿真 AT89C51输出各种波形
-
Cme
taFileDC的使用示例 - 光立方制作(原理图 源程序 LED搭接方
- 使用OpenFileDialog打开文件对话框.rar
- 武汉理工大学 单片机课程设计 16*16点
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- 2410的led测试程序keil可以用
- 利用译码器74HC595的点阵显示程序和电
- 16X16点阵程序(附仿真图和源程序)
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 16x16点阵(滚动显示)论文 程序
- 基于89c51的数字钟
- 基于单片机交通灯设计
- 16*16点阵电路图附PCB
- LED背光的设计与优化
- 这是一个字模提取软件,其中可是设
- 基于51单片机的16*16点阵动态显示
- GB2312 8*8点阵字库
- 点阵字库 包含ACSII、字符、文字
- 点阵字库显示中英文
- 基于89C51计算机锁定加密键盘设计
- ChilledWindows.exe(玩笑病毒)
- 基于51单片机的计算器(C51编写,有
- 玩转Altera FPGA:基于PLL分频计数的LE
评论
共有 条评论