?? vfd-800a.c
字號:
#include <iom128v.h>
#include "vfd.h"
/*等待VFD空閑就返回,這個(gè)調(diào)用都是在SRE置位的情況下*/
void wait_free(void)
{
//while((PVFD & 0x80));
while(FRP!=0);
}
/*向VFD寫入一個(gè)字節(jié)命令*/
void write_cmd(BYTE cmd)
{
//SSRE();
CD=1;
wait_free();
WR=0;
PORTA=cmd;//PVFD=cmd;
WR=1;
wait_free();
CD=0;
//CSRE();
}
/*向VFD寫入一個(gè)字節(jié)數(shù)據(jù)*/
void write_data(BYTE data)
{
//SSRE();
CD=0;
wait_free();
WR=0;
PORTA=data;//PVFD=data;
WR=1;
wait_free();
CD=0;
//CSRE();
}
/*清VFD屏幕,current window*/
void display_clear(void)
{
write_cmd(0x5f);
}
/*清VFD屏幕坐標(biāo)(x,y)1列,current window*/
void display_clr(BYTE x,BYTE y)
{
set_position(x,y);
write_data(0x00);
set_position(x,y+1);
write_data(0x00);
}
/*初始化VFD模塊,*/
void init_vfd(void)
{
U8 n;
//write_data(0x1b);
//write_data(0x40);
write_cmd(0x5f);//顯示消除命令
del(100);
for(n=0;n<8;n++)
{
write_cmd(0x62);//顯示區(qū)域設(shè)定命令
write_cmd(n);
write_data(0xff);//0xff圖形顯示模式
}
brightness_control(0);
set_start_play(0,2);
display_on();
set_position_mode(2);
display_clear();
del(50);
set_position(0,0);
}
/*顯示開關(guān)設(shè)定*/
void display_on(void)
{
write_cmd(0x24);
write_cmd(0x40);
}
/*設(shè)置亮度級別*/
void brightness_control(BYTE level)
{
write_cmd(16*4+level);
}
/*GRAM數(shù)據(jù)寫入位置地址設(shè)定*/
void set_position(BYTE x,BYTE y)
{
write_cmd(0x64);
write_cmd(x);
write_cmd(0x60);
write_cmd(y);
}
/*GRAM顯示開始位置地址設(shè)定*/
void set_start_play(BYTE x,BYTE y)
{
write_cmd(0x70);
write_cmd(x);
write_cmd(16*11+y*2);
}
/*地址模式設(shè)定*/
void set_position_mode(BYTE mode)
{
write_cmd(16*8+mode*2);
}
/*10*16字符的定義*///////////////////////////////////////////////////////////////////
/*-- 文字: 0 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16
--*/
unsigned char h16[][20]={{0x00,0xF0,0x0C,0x02,0x02,0x02,0x02,0x0C,0xF0,0x00,0x00,0x0F,0x30,0x40,0x40,0x40,
0x40,0x30,0x0F,0x00},
/*-- 文字: 1 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x04,0x04,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,
0x40,0x00,0x00,0x00},
/*-- 文字: 2 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x38,0x04,0x02,0x02,0x02,0x02,0xC4,0x38,0x00,0x00,0x60,0x50,0x48,0x44,0x42,
0x41,0x40,0x60,0x00},
/*-- 文字: 3 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x1C,0x02,0x02,0x82,0x82,0xC2,0x46,0x3C,0x00,0x00,0x38,0x40,0x40,0x40,0x40,
0x40,0x21,0x1E,0x00},
/*-- 文字: 4 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0xC0,0x20,0x18,0xFE,0x00,0x00,0x00,0x00,0x06,0x09,0x08,0x08,0x08,
0x7F,0x08,0x08,0x00},
/*-- 文字: 5 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0xFC,0x82,0x42,0x42,0x42,0x82,0x00,0x00,0x00,0x00,0x20,0x40,0x40,0x40,
0x40,0x20,0x1F,0x00},
/*-- 文字: 6 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0xE0,0x98,0x44,0x42,0x42,0x42,0x82,0x0C,0x00,0x00,0x0F,0x30,0x40,0x40,0x40,
0x40,0x20,0x1F,0x00},
/*-- 文字: 7 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x0E,0x02,0x02,0x82,0x62,0x1A,0x06,0x02,0x00,0x00,0x00,0x00,0x7E,0x01,0x00,
0x00,0x00,0x00,0x00},
/*-- 文字: 8 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x1E,0x21,0x40,0x40,0x40,
0x40,0x21,0x1E,0x00},
/*-- 文字: 9 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0xF8,0x04,0x02,0x02,0x02,0x02,0x0C,0xF0,0x00,0x00,0x30,0x41,0x42,0x42,0x42,
0x22,0x19,0x07,0x00},
/*-- 文字: A --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0xE0,0x1C,0x0E,0xF0,0x00,0x00,0x00,0x40,0x70,0x4F,0x02,0x02,0x02,
0x02,0x4F,0x70,0x40},
/*-- 文字: B --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0xFE,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x40,0x7F,0x40,0x40,0x40,0x40,
0x41,0x21,0x1E,0x00},
/*-- 文字: C --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0xE0,0x18,0x04,0x02,0x02,0x02,0x02,0x04,0x1E,0x00,0x0F,0x30,0x20,0x40,0x40,0x40,
0x40,0x20,0x18,0x00},
/*-- 文字: D --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0xFE,0x02,0x02,0x02,0x02,0x04,0x18,0xE0,0x00,0x40,0x7F,0x40,0x40,0x40,0x40,
0x20,0x18,0x07,0x00},
/*-- 文字: E --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0xFE,0x82,0x82,0x82,0x82,0xE2,0x06,0x08,0x00,0x40,0x7F,0x40,0x40,0x40,0x40,
0x43,0x60,0x10,0x00},
/*-- 文字: F --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0xFE,0x82,0x82,0x82,0x82,0xE2,0x06,0x08,0x00,0x40,0x7F,0x40,0x00,0x00,0x00,
0x03,0x00,0x00,0x00},
/*-- 文字: "|" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAA,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00},
/*-- 文字: "." --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
0x00,0x00,0x00,0x00},
/*-- 文字: " " --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00},
/*-- 文字: "-" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x01,0x01,0x01,
0x01,0x01,0x01,0x01},
/*-- 文字: "u" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x20,0xE0,0x00,0x00,0x00,0x20,0xE0,0x00,0x00,0x00,0x00,0x07,0x08,0x08,0x08,
0x04,0x0F,0x08,0x00},
/*-- 文字: "m" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x20,0xE0,0x20,0x20,0xE0,0x20,0x20,0xC0,0x00,0x00,0x08,0x0F,0x08,0x00,0x0F,
0x08,0x00,0x0F,0x00},
/*-- 文字: "/" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x0C,0x02,0x00,0x00,0x40,0x30,0x0C,0x03,0x00,
0x00,0x00,0x00,0x00},
/*-- 文字: "v" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x10,0x30,0xD0,0x00,0x00,0x00,0xD0,0x30,0x10,0x00,0x00,0x00,0x01,0x06,0x18,0x06,
0x01,0x00,0x00,0x00},
/*-- 文字: "a" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x60,0x10,0x90,0x90,0x90,0xE0,0x00,0x00,0x00,0x0E,0x11,0x11,0x10,0x10,0x08,
0x1F,0x10,0x18,0x00},
/*-- 文字: "l" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x40,
0x40,0x40,0x00,0x00},
/*-- 文字: "H" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0xFE,0x82,0x80,0x80,0x80,0x82,0xFE,0x02,0x00,0x40,0x7F,0x40,0x00,0x00,0x00,
0x40,0x7F,0x40,0x00},
/*-- 文字: "X" --*/
/*-- 隸書12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=10x16 --*/
{0x02,0x06,0x1A,0x60,0x80,0x60,0x1A,0x06,0x02,0x00,0x40,0x60,0x58,0x06,0x01,0x06,
0x58,0x60,0x40,0x00}
};
unsigned char chn[][30]={
/*-- 文字: 測 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x20,0xC2,0x0C,0x80,0xFC,0x04,0xF4,0x04,0xFC,0x00,0xF8,0x00,0xFE,0x00,0x00,
0x04,0x7C,0x03,0x40,0x27,0x10,0x0F,0x10,0x67,0x00,0x27,0x40,0x3F,0x00},
/*-- 文字: 量 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x40,0x40,0x7C,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x7E,0x44,0x40,0x00,0x00,
0x40,0x50,0x5F,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x5F,0x50,0x40,0x00},
/*-- 文字: 零 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x40,0x30,0x94,0x94,0xB4,0x54,0xFC,0x94,0x54,0xB4,0x96,0x94,0x30,0x10,0x00,0x04,
0x04,0x04,0x02,0x16,0x15,0x26,0x54,0x4D,0x05,0x02,0x02,0x06,0x02,0x00},
/*-- 文字: 點(diǎn) --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x00,0x00,0xC0,0x40,0x40,0x40,0x7E,0x48,0x48,0x48,0xC8,0x08,0x00,0x00,0x00,
0x40,0x30,0x07,0x04,0x14,0x64,0x04,0x14,0x64,0x04,0x17,0x60,0x00,0x00},
/*-- 文字: 滿 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x20,0xC2,0x0C,0xC0,0x48,0x48,0x48,0xDE,0x48,0xC8,0x5E,0x48,0x6C,0x48,0x00,0x04,
0x7C,0x03,0x00,0x7F,0x11,0x09,0x07,0x15,0x0F,0x25,0x49,0x3F,0x00,0x00},
/*-- 文字: 度 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x00,0xF8,0x08,0x28,0x28,0xF8,0xAA,0xAC,0xA8,0xF8,0x28,0x2C,0x08,0x00,0x40,
0x30,0x0F,0x40,0x42,0x42,0x26,0x2A,0x12,0x2A,0x26,0x42,0x40,0x40,0x00},
/*-- 文字: 校 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x10,0x10,0xFE,0x50,0x90,0x08,0x88,0x68,0x0A,0x0C,0x28,0x48,0x88,0x08,0x00,0x0C,
0x03,0x7F,0x00,0x00,0x41,0x40,0x23,0x14,0x08,0x14,0x23,0x60,0x20,0x00},
//////////////////////////////////////////////////
/*-- 文字: 水 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x20,0x20,0x20,0xE0,0x00,0x00,0xFE,0x80,0x40,0x20,0x10,0x00,0x00,0x00,0x20,
0x10,0x08,0x06,0x01,0x20,0x40,0x3F,0x01,0x02,0x04,0x08,0x10,0x10,0x00},
/*-- 文字: 平 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x04,0x14,0x24,0x44,0x04,0xFC,0x04,0x04,0x44,0x24,0x16,0x84,0x00,0x00,0x01,
0x01,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00},
/*-- 文字: 垂 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x20,0x24,0x24,0xE4,0x24,0x24,0xFC,0x24,0x22,0xE2,0x20,0x20,0x00,0x00,0x01,
0x49,0x49,0x49,0x4F,0x49,0x49,0x7F,0x49,0x49,0x4F,0x49,0x49,0x01,0x00},
/*-- 文字: 直 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0x08,0x08,0xE8,0xA8,0xA8,0xBE,0xA8,0xA8,0xA8,0xE8,0x08,0x0C,0x08,0x00,0x40,
0x40,0x40,0x7F,0x52,0x52,0x52,0x52,0x52,0x52,0x7F,0x40,0x60,0x40,0x00},
/*-- 文字: 陰 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0xFC,0x04,0x64,0x9C,0x04,0x00,0xFC,0x24,0x24,0x24,0x24,0xFE,0x04,0x00,0x00,
0x7F,0x00,0x04,0x48,0x27,0x18,0x07,0x01,0x01,0x21,0x41,0x3F,0x00,0x00},
/*-- 文字: 陽 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x00,0xFC,0x04,0x64,0x9C,0x00,0xFC,0x84,0x84,0x84,0x84,0x84,0xFE,0x04,0x00,0x00,
0x7F,0x04,0x08,0x07,0x00,0x7F,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00},
/*-- 文字: 線 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x40,0x60,0x58,0xC6,0x20,0x10,0x20,0x20,0xFE,0x90,0x94,0x98,0x90,0x00,0x00,0x12,
0x36,0x13,0x0A,0x4A,0x41,0x21,0x21,0x17,0x08,0x14,0x22,0x40,0x78,0x00},
/*-- 文字: 校 --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x10,0x10,0xFE,0x50,0x90,0x08,0x88,0x68,0x0A,0x0C,0x28,0x48,0x88,0x08,0x00,0x0C,
0x03,0x7F,0x00,0x00,0x41,0x40,0x23,0x14,0x08,0x14,0x23,0x60,0x20,0x00},
/*-- 文字: 準(zhǔn) --*/
/*-- 宋體12; 此字體下對應(yīng)的點(diǎn)陣為:寬x高=15x16 --*/
{0x04,0x08,0xD8,0x00,0x40,0x20,0xF8,0x96,0x90,0xFC,0x90,0x90,0x98,0x10,0x00,0x02,
0x3F,0x00,0x00,0x00,0x00,0x7F,0x24,0x24,0x3F,0x24,0x24,0x34,0x20,0x00}
};
/*應(yīng)用編程接口(API)*/
/*************************************************************/
/* 15×16漢字顯示,顯示一個(gè)漢字 */
/* 在顯示屏上的坐標(biāo)為(x,y),x的范圍0~127列,y的范圍0~3(字節(jié)) */
/*************************************************************/
void disp_ch(BYTE x,BYTE y,BYTE ar[])
{
BYTE k;
set_position(x,y);
for(k=0;k<15;k++)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -