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點陣。??纯袋c陣顯示漢字是怎么顯示的吧。。。
上傳時間: 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