📄 用74hc595与74ls154设计的16×16点阵屏.c
字号:
//-----------------------------------------------------------------
// 名称: 用74LS595与74LS154设计的16x16点阵屏
//-----------------------------------------------------------------
// 说明: 本例综合使用了串入并出芯片74LS595,4-16译码器74LS154,
// 在16x16点阵屏上实现多个汉字交替显示效果.
//
//-----------------------------------------------------------------
#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define INT8U unsigned char
#define INT16U unsigned int
//74595及74154相关引脚定义
//74595及74154相关引脚操作
//74154译码器使能与禁止
//存放于Flash空间的待显示文字点阵
prog_uchar Word_Set_OF_16x16[][32] =
{
/*---------------单----------------*/
{ 0xFF,0xFF,0xFF,0xE7,0x03,0xE4,0x03,0xE4,
0x92,0xE4,0x90,0xE4,0x91,0xE4,0x03,0x80,
0x03,0x80,0x91,0xE4,0x90,0xE4,0x92,0xE4,
0x03,0xE4,0x03,0xE4,0xFF,0xE7,0xFF,0xFF },
/*---------------片----------------*/
{ 0xFF,0xFF,0xFF,0x9F,0xFF,0xC7,0x01,0xE0,
0x01,0xF8,0xCF,0xFC,0xCF,0xFC,0xCF,0xFC,
0xCF,0xFC,0xC0,0xFC,0xC0,0x80,0xCF,0x80,
0xCF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF },
/*---------------机----------------*/
{ 0xE7,0xF9,0x67,0xFC,0x00,0x80,0x00,0x80,
0x67,0xFE,0xE7,0xDC,0xFF,0x8F,0x01,0xC0,
0x01,0xF0,0xF9,0xFF,0xF9,0xFF,0x01,0xC0,
0x01,0x80,0xFF,0x9F,0xFF,0x8F,0xFF,0xFF },
/*---------------C----------------*/
{ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFC,
0xEF,0xFB,0xF7,0xF7,0xFB,0xEF,0xFB,0xEF,
0xFB,0xEF,0xFB,0xEF,0xF7,0xF7,0xE3,0xFB,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF },
/*---------------语----------------*/
{ 0x9F,0xFF,0x9D,0xFF,0x11,0x80,0x13,0xC0,
0xFF,0xE7,0x39,0xFF,0x29,0x81,0x09,0x81,
0x01,0xCD,0x21,0xCD,0x29,0xCD,0x09,0xCD,
0x09,0x81,0x39,0x81,0x3F,0xFF,0xFF,0xFF },
/*---------------言----------------*/
{ 0xF3,0xFF,0xF3,0xFF,0x53,0x81,0x53,0x81,
0x53,0xC9,0x53,0xC9,0x50,0xC9,0x50,0xC9,
0x53,0xC9,0x53,0xC9,0x53,0x81,0x53,0x81,
0xF3,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF },
};
//待显示汉字索引,注意添加volatile
volatile INT8U wIndex = 0;
//-----------------------------------------------------------------
// 595串行输入子程序
//-----------------------------------------------------------------
void Serial_Input_Pin(INT8U dat)
{
}
//-----------------------------------------------------------------
// 595并行输出子程序
//-----------------------------------------------------------------
void Parallel_Output_595()
{
}
//-----------------------------------------------------------------
// T/C0溢出中断,在主程序中的延时期间以2ms的间隔动态显示每列数据
// 所显示的每列数据由两片595并行输出
//-----------------------------------------------------------------
ISR (TIMER0_OVF_vect)
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main( )
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -