16 16点阵显示汉字原理及显示程序
#include "config.h"
#define DOTLED_LINE_PORT PORTB
#define DOTLED_LINE_DDR DDRB
#define DOTLED_LINE_PIN PINB
#define DOTLED_LINE_SCKT PB1
#define DOTLED_LINE_SCKH PB5
#define DOTLED_LINE_SDA PB3
#define DOTLED_ROW_PORT PORTC
#define DOTLED_ROW_DDR DDRC
#define DOTLED_ROW_PIN PINC
#define DOTLED_ROW_A0 PC0
#define DOTLED_ROW_A1 PC1
#define DOTLED_ROW_A2 PC2
#define DOTLED_ROW_A3 PC3
#define DOTLED_ROW_E PC4
uint8 font[] = {
/*-- 调入了一幅图像:这是您新建的图像 --*/
/*-- 宽度x高度=16x16 --*/
0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10,
0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00
};
static void TransmitByte(uint8 byte);
static void SelectRow(uint8 row);
static void FlipLatchLine(void);
static void TransmitByte(uint8 byte)
{
uint8 i;
for(i = 0 ; i < 8 ; i ++)
{
if(byte & (1 << i))
{
DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);
}
else
{
DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA);
}
//__delay_cycles(100);
DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH);
//__delay_cycles(100);
DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH);
//__delay_cycles(100);
}
}
static void SelectRow(uint8 row)
{
//row -= 1;
row |= DOTLED_ROW_PIN & 0xe0;
DOTLED_ROW_PORT = row;
}
static void FlipLatchLine(void)
{
DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT);
DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT);
}
void InitDotLedPort(void)
{
DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH));
DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA);
DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA);
DOTLED_ROW_PORT |= 0x1f;
DOTLED_ROW_PORT &= 0xf0;
DOTLED_ROW_DDR |= 0x1f;
}
void EnableRow(boolean IsEnable)
{
if(IsEnable)
{
DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E);
}
else
{
DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E);
}
}
void PrintDotLed(uint8 * buffer)
{
uint8 i , tmp;
for(i = 0 ; i < 16 ; i ++)
{
tmp = *buffer ++;
TransmitByte(~tmp);
tmp = *buffer ++;
TransmitByte(~tmp);
SelectRow(i);
FlipLatchLine();
}
}
void main(void)
{
InitDotLedPort();
EnableRow(TRUE);
while(1)
{
PrintDotLed(font);
__delay_cycles(5000);
}
}
//----------------------------------------------------
config.h文件
#ifndef _CONFIG_H
#define _CONFIG_H
//#define GCCAVR
#define CPU_CYCLES 7372800L
#ifndef GCCAVR
#define _BV(bit) (1 << (bit))
#endif
#define MSB 0x80
#define LSB 0x01
#define FALSE 0
#define TRUE 1
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
typedef unsigned char boolean;
#include <ioavr.h>
#include <inavr.h>
#include "dotled.h"
#endif
//-----
资源简介:16 16点阵显示汉字原理及显示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define ...
上传时间: 2013-11-18
上传用户:mnacyf
资源简介:16位LED点阵显示 显示汉字等可以显示想要显示的信息
上传时间: 2013-12-04
上传用户:gmh1314
资源简介:51控制16*16点阵。。看看点阵显示汉字是怎么显示的吧。。。
上传时间: 2014-11-30
上传用户:LouieWu
资源简介:51单片机液晶显示初始化及显示汉字程序
上传时间: 2013-12-15
上传用户:qlpqlq
资源简介:微波技术基础,实验(省优课件) PDF版
上传时间: 2013-04-15
上传用户:eeworm
资源简介:TMS320X281xDSP原理及C程序开发
上传时间: 2013-04-24
上传用户:851197153
资源简介:数据库原理及应用程序,Access开发环境美容店管理系统
上传时间: 2013-12-21
上传用户:jjj0202
资源简介:12232的一个显示汉字的C语言程序,希望给有需要的人。
上传时间: 2016-11-03
上传用户:1159797854
资源简介:在arm_linux上无须图形界面就可以运行的显示汉字和图像的程序。
上传时间: 2014-01-17
上传用户:Pzj
资源简介:这个是单片机显示汉字的c语言程序,大家可以直接用,我已经验证过了。
上传时间: 2017-04-17
上传用户:Ants
资源简介:51单片机显示汉字和数字的程序,希望对大家有帮助
上传时间: 2017-04-27
上传用户:ggwz258
资源简介:LCD 1602 16x2字符型带背光液晶显示模块资料及一些程序
上传时间: 2017-05-17
上传用户:qq521
资源简介:ULN2003步进电机驱动原理及应用程序
上传时间: 2015-01-02
上传用户:wqxstar
资源简介:书籍《TMS320X281xDSP原理及C程序开发》中涉及到的应用程序的源代码。
上传时间: 2016-06-18
上传用户:小眼睛LSL
资源简介:TMS320X281X DSP原理及C程序开发(光盘) -苏奎峰 吕强
上传时间: 2016-11-04
上传用户:wxhwjf
资源简介:PIC单片机原理及矢口程序设计,有前PIC单片面应用方面的教材.
上传时间: 2013-12-24
上传用户:yzy6007
资源简介:TMS320X281xDSP原理及C程序开发-光盘应用程序
上传时间: 2014-03-02
上传用户:haohaoxuexi
资源简介:基于FPGA的数字频率计的设计11利用VHDL 硬件描述语言设计,并在EDA(电子设计自动化) 工具的帮助下,用大规模可编程逻辑器件(FPGA/ CPLD) 实现数字频率计的设计原理及相关程序
上传时间: 2013-11-25
上传用户:ruan2570406
资源简介:PIC18Fxxx单片机原理及接口程序设计.part1.rar
上传时间: 2018-04-12
上传用户:srj_01
资源简介:直流电机控制原理及C程序,有需要的可以参考!
上传时间: 2022-04-09
上传用户:得之我幸78
资源简介:附件为:LCD12864显示汉字和数字的程序与电路 /* 自定义延时子函数 */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判断LCD忙信号状态 */ void buys() { int dat; RW=1;...
上传时间: 2013-11-08
上传用户:aeiouetla
资源简介:LCD6963模块的驱动,可以显示汉字和图形. 线路图 89C51 T6963C -------- | 8 P1.0-1.7|=========== D0-7 | P3.0|----------- /RD P3.1|----------- /WR P3.2|----------- C/D | -- /CE | | | --- P3.3|----------- /RESET
上传时间: 2014-08-16
上传用户:zhengzg
资源简介:专辑类-开关电源相关专辑-119册-749M 剖析切換式電源供應器的原理及常用元件規格.pdf
上传时间: 2013-06-16
上传用户:huangzchytems
资源简介:12864液晶屏驱动: 显示器片选0=CS1,1=CS2 BZPD 0=上8X8半字,1=下8X8半字 HZDH 0=显示汉字,1=显示动画
上传时间: 2013-12-20
上传用户:sunjet
资源简介:数据库原理及应用 实验指导书 有学习价值
上传时间: 2017-06-12
上传用户:a1163438417
资源简介:红外遥控系统原理及单片机软件解码实例,适合感兴趣的学习者学习,可以提高自己的能力,大家可以多交流哈
上传时间: 2022-05-16
上传用户:
资源简介:编译原理课程小程序
上传时间: 2013-12-16
上传用户:天涯
资源简介:LSD12864CT是一种图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及128×64全点阵液晶显示器组成.可完成图形显示,也可以显示8×4个(16×16点阵)汉字.
上传时间: 2013-12-24
上传用户:2404
资源简介:基于51单片机16*16像素LED点阵汉字显示原理图
上传时间: 2013-12-03
上传用户:qweqweqwe
资源简介:51单片机驱动16×16LED点阵显示动画汉字汇编程序
上传时间: 2013-05-25
上传用户:lx9076