📄 winiotest.cpp
字号:
#include <windows.h>
#include <stdio.h>
void LCD_DrawHz(u8 x,u8 y,const u8 *zm)
{
u8 i;
for(i=0;i<32;i++)
{
if(i&1)
{
LCD_PutPixel8(x + 8, y + (i >> 1), zm[i]);
}
else
{
LCD_PutPixel8(x, y + (i >> 1), zm[i]);
}
}
}
// 向LCD中写一个ASCII字符的点阵
void lcd_putc( u8 chASC)
{
u8 i,j,k;
u8 zm; // 指向字母点阵数据
for(i=0;i<ASC_FONT_H;i++)
{
zm = ASCK[chASC-' '][i];
LCD_PutPixel8(x + 8, y + (i >> 1), zm);
}
}
void LCD_PutHz(u8 x, u8 y, u16 charactor)
{
switch(charactor)
{
case '西': LCD_DrawHz(x, y, HZ_xi);break;
default: break;
}
}
u8 LCD_Puts(u8 x, u8 y, u8 * str )
{
for(;*str!=0;str++)
{
if(*str<0x7F)
{
LCD_Putc(*str); /*是ASCII字符*/
}
else
{
hzchar hz = *str;
hz <<= 8;
str++;
hz+=*str; /*将汉字GB码整合为int*/
LCD_PutHz(x, y, (u16) hz); /*是汉字*/
}
}
return true;
}
void main()
{
bool bResult;
int i;
U16 pos;
// Call InitializeWinIo to initialize the WinIo library.
bResult = InitializeWinIo();
if (bResult)
{
// Under Windows NT/2000/XP, after calling InitializeWinIo,
// you can call _inp/_outp instead of using GetPortVal/SetPortVal
//GetPortVal(0x378, &dwPortVal, 2);
// dwPortVal=_inp(0x378);
// printf("%4X\n",dwPortVal);
//SetPortVal(0x378, 10, 4);
//reset lcd
LCD_Reset();
printf("Reset finished.\n");
//display off
// LCD_WriteCMDNP(0x90);
LCD_WriteCMDNP(0x80);
LCD_WriteCMDNP(0x98);
printf("Display off finished.\n");
//TEXT HOME
LCD_WriteCMD2P(0x40, 0x00, 0x00);
printf("TEXT HOME finished.\n");
//TEXT AREA
LCD_WriteCMD2P(0x41, 30, 0x00);
printf("TEXT AREA finished.\n");
//GRAPHIC HOME
LCD_WriteCMD2P(0x42, 0x00, 0x00);
printf("GRAPHIC HOME finished.\n");
//GRAPHIC AREA
LCD_WriteCMD2P(0x43, 30, 0x00);
printf("GRAPHIC AREA finished.\n");
//TEXT ON, GRAPHIC OFF
LCD_WriteCMDNP(0x98);
printf("TEXT ON finished.\n");
//TEXT WRITE "0"
LCD_WriteCMD2P(0x24, 0x00, 0x00);
printf("TEXT WRITE '0' finished.\n");
LCD_WriteCMDNP(0xB0);
for (i=0;i<0x2000;i++)
{
LCD_CheckStatus();
LCD_WriteData(0x00);
}
LCD_WriteCMDNP(0xB2);
/*
pos = 10 * 30 + 6;
//LCD_WriteCMD2P(0x21, 10, 6);
LCD_WriteCMD2P(0x24, pos & 0xff, pos >> 8);
LCD_CheckStatus();
LCD_WriteData(CHAR_0);
LCD_WriteCMDNP(0xc0);
*/
pos = 1 * 30 + 1;
LCD_WriteCMD2P(0x24, pos & 0xff, pos >> 8);
LCD_CheckStatus();
LCD_WriteData(0xff);
LCD_WriteCMDNP(0xc0);
// When you're done using WinIo, call ShutdownWinIo
ShutdownWinIo();
}
else
{
printf("Error during initialization of WinIo.\n");
exit(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -