/***********************
** 函数名称: 16*16 led点阵从下至上滚动显视汉字
** Chip type : ATmega16
** Clock frequency : 1.000000 MHz
** 功能描述: 低位在前,阳码,逐行扫描(从上到下),16*16
** 输 入:
** 输出 : 0:失败 1:成功
** 全局变量: 无
** 调用模块:
** 说明:
** 注意:
********************/
/*********************************************************************************************************
** 16*16 led点阵软件
** (c) Copyright 2011-12-21, GaoYunHe
** All Rights Reserved
**
** V1.0.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名:16*16 led点阵软件
**创 建 人: 何高云
**最后修改日期: 2011-12-21
**描 述: 74LS164
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 何高云
** 版 本: V1.00
** 日 期: 2011-12-21
** 描 述: 原始版本
** QQ553473438
*******************************************************/
#include <avr/io.h>
#include <util/delay.h>
#define uchar unsigned char
#define uint unsigned int
#define row1 PORTA
#define row2 PORTB
#define line1 PORTC
#define line2 PORTD
void init_drive()
{
DDRA=0XFF; PORTA=0X00;
DDRB=0XFF; PORTB=0X00;
DDRC=0XFF; PORTC=0X00;
DDRD=0XFF; PORTD=0X00;
}
void delay_us(uint x)
{
while(x--);
}
void delay_ms(uint x)
{
uchar t;
while(x--)
for(t=0;t<120;t--)
{
;
}
}
uchar const table[]=
{
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x7F,0xFF,0x01,0xC0,0x7F,0xFF,0x07,0xF0,
0x77,0xF7,0x07,0xF0,0x77,0xF7,0x07,0xF0,
0x7F,0xEF,0x01,0xC0,0xFF,0xDF,0x6F,0xFF,
0xEB,0xEE,0xEB,0xDB,0x19,0xD8,0xFF,0xFF,//"惠",
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xEF,0xDF,0xEF,0xDE,0xEF,0xDE,0xEF,0xDE,
0xEF,0xDC,0xCD,0xDA,0xAD,0xDA,0xAD,0xD6,
0xEE,0xD6,0xEF,0xDE,0xEF,0xDE,0xF7,0xDE,
0xF7,0xDE,0xFB,0xDE,0xFB,0xDE,0xFD,0xDF,//"州"
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
};
int main()
{
uchar i=0,j=0;
uint t=0;
init_drive();
while(1)
{
for(j=0;j<48;j++) // (16/字)*(N字+1)
{
for(t=0;t<50;t++) //移动延时(移动速度)
{
for(i=0;i<16;i++)
{
row1=table[j*2+i*2];
row2=table[j*2+i*2+1];
if(i<8) //扫描字的上半部位
line1=(0x80>>i);
else //扫描字的下半部位
line2=(0x80>>(i-8));
_delay_us(100);
line1=0X00; //消隐
line2=0x00; //消隐
}
}
}
}
}
//----------------------单字显视----------------------------------
/*
uchar const table[]=
{
0x7F,0xFF,0x01,0xC0,0x7F,0xFF,0x07,0xF0,
0x77,0xF7,0x07,0xF0,0x77,0xF7,0x07,0xF0,
0x7F,0xEF,0x01,0xC0,0xFF,0xDF,0x6F,0xFF,
0xEB,0xEE,0xEB,0xDB,0x19,0xD8,0xFF,0xFF,//"惠",
};
int main()
{
uchar i;
init_drive();
while(1)
{
for(i=0;i<16;i++)
{
row1=table[i*2];
row2=table[i*2+1];
if(i<8) //扫描字的上半部位
line1=(0x80>>i);
else //扫描字的下半部位
line2=(0x80>>(i-8));
_delay_ms(2);
line1=0X00;
line2=0X00;
}
}
}
*/
点击此处下载 ourdev_706620S1IMGX.rar(文件大小:17K) (原文件名:1616_led点阵.rar) |