使用PixelPut(打点函数)点阵显示汉字的程序小结

首先看“画汉字”的函数:(具有一定的通用性)

//画汉字
void DemoHZ(unsigned char *buf, int x, int y, int color)
{
    int i;
	int j;
	int k;
	
	//下面是使用【字模3】软件生成的数据
	//	第一、二个字节为“像素高和宽“,这里假设高和宽一样
	//	第三个字节为“宽的字节数”
	int nWidth = buf[0];
	int nBytesPerRow = buf[2];
	
	
	
	//开始写汉字
	buf	+=3;
	for(i=0; i<nWidth; i++)
	{
		for(j=0; j<nBytesPerRow; j++)
		{
			for(k=0;k<8;k++)
				if(((buf[nBytesPerRow*i+j]>>(7-k))&0x1)!=NULL)
					putPixel(x+8*j+k, y+i, color);
		}
	}
}

上面用到了【字模III】工具,破解版的在这里下载: http://download.csdn.net/detail/dijkstar/6239435,putPixel是一个“画点”函数,在每个OS下要替换相应的打点函数,在最后介绍。

比如使用字模工具产生一个汉字“设”字,43*43像素,多大的像素及字体,你自己可以在字模工具里设,

unsigned char  Bmp001[]=
{
/*------------------------------------------------------------------------------
;  若数据乱码,请检查字模格式设置,注意选择正确的取模方向和字节位顺序。
;  源文件 / 文字 : 设
;  宽×高(像素): 43×43
;  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/258字节
;  数据转换日期  : 2013-9-2 17:55:19
------------------------------------------------------------------------------*/
0x2B,0x2B,0x06,//宽的像素数,高的像素数,宽的字节数,参数设置可选
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x04,0x00,0x00,0x03,0x80,0x00,0x07,0x00,0x00,0x03,0x80,0x00,0x07,0x80,0x00,0x03,
0x80,0x00,0x07,0x80,0x00,0x03,0x80,0x00,0x07,0x00,0x00,0x03,0x8C,0x00,0x0F,0x00,
0x00,0x03,0x8F,0x80,0x0F,0x00,0x00,0x03,0x8F,0xE0,0x0E,0x00,0x0F,0xFF,0x8F,0xF8,
0x1E,0x00,0x0F,0xFF,0x8D,0xFC,0x1E,0x00,0x0F,0xFF,0x0C,0x7F,0x3C,0x00,0x0E,0x00,
0x0C,0x1F,0xB8,0x00,0x0E,0x00,0x0C,0x07,0xF8,0x00,0x0E,0x00,0x0C,0x03,0xF0,0x00,
0x0E,0x00,0x0C,0x01,0xF0,0x00,0x0E,0x00,0x0C,0x03,0xF0,0x00,0x0E,0x00,0x0C,0x07,
0xF8,0x00,0x0E,0x00,0x0C,0x1F,0xBC,0x00,0x0F,0xF0,0x0C,0x7E,0x3C,0x00,0x0F,0xFC,
0x0F,0xFC,0x1E,0x00,0x0F,0xFF,0x0F,0xF0,0x1E,0x00,0x00,0xFF,0x8F,0xC0,0x0F,0x00,
0x00,0x0F,0xDF,0x00,0x0F,0x00,0x00,0x03,0xFC,0x00,0x07,0x00,0x00,0x01,0xDC,0x00,
0x07,0x80,0x00,0x00,0x80,0x07,0x07,0x80,0x00,0x00,0x00,0x0F,0x03,0x00,0x00,0x00,
0x00,0x07,0x82,0x00,0x01,0xC0,0x00,0x03,0xC0,0x00,0x03,0xE0,0x00,0x01,0xE0,0x00,
0x07,0xC1,0xFF,0xFF,0xF8,0x00,0x0F,0x81,0xFF,0xFF,0xFC,0x00,0x1F,0x01,0xFF,0xFF,
0xF8,0x00,0x0C,0x01,0xC0,0x00,0x10,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x01,
0xC0,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,
};
那么,可以使用:DemoHZ(Bmp001, x, y, 15);,其中,x和y是显示的位置,最后一个15是颜色。


在DOS下,BC++、Turbo C的打点函数为:putpixel;

在Windows下,VC的打点函数为:CDC::SetPixel;

在vxWorks下,WindML的打点函数为:uglPixelSet

### 回答1: STM32F030C8T6微控制器是由ST公司出品的一款高性能、低功耗的微控制器,广泛应用于多种嵌入式系统中。 LCDHT1621是一款常见的驱动LCD显示屏的芯片,常用于数字时钟、温度计和电压表等设备中。如果要在STM32F030C8T6微控制器上使用LCDHT1621芯片,我们需要编程实现打点函数打点函数是实现数字显示效果的重要函数之一。它可以根据需要在LCD屏幕上绘制不同的数字,例如时钟的小时数、分钟数等。以下是STM32F030C8T6液晶显示LCDHT1621打点函数的关键代码实现: 1. 首先需要定义一个数组用于保存数字的二进制数据,例如: Uint8 NumCode[]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; 这个数组定义了0~9这十个数字的二进制码,可以根据需要自行添加其他数字的码值。 2. 接下来需要编写打点函数。下面是一个基本的打点函数实现: void Write_LCD(Uint8 Data, Uint8 BitCnt) { uint8_t i; for (i=BitCnt; i>0; i–) { SCK_L; if (Data & (1<<(i-1))) SDA_H; else SDA_L; SCK_H; } } 这个函数实现的是向LCDHT1621芯片发送数据的功能。其中,Data代表一个字节长度的数据(例如数字的二进制码),BitCnt是数据的位数。函数使用了SCK_L、SDA_H和SDA_L等控制信号来实现数据发送功能。 3. 最后,可以在主函数中调用打点函数来实现数字的显示。例如,下面是一个基本的主函数实现: int main(void) { // 初始化LCD屏幕 LCD_Init(); // 显示数字7 Write_LCD(NumCode[7], 8); // 显示数字3 Write_LCD(NumCode[3], 8); // 显示数字5 Write_LCD(NumCode[5], 8); while(1); } 这个主函数实现了对数字7、3和5的显示效果,数字的显示顺序可以根据需要灵活调整。 总的来说,STM32F030C8T6液晶显示LCDHT1621打点函数是一个比较复杂的功能模块,需要仔细地设计和编程才能实现良好的显示效果。以上关键代码和主函数实现仅供参考,具体的函数实现需要根据具体的应用场景进行调整和扩展。 ### 回答2: STM32F030C8T6是一款基于ARM Cortex-M0内核的微控制器,LCDHT1621是一款数字式液晶显示控制器。在使用STM32F030C8T6驱动LCDHT1621进行液晶显示时,需要使用打点函数来实现。打点函数是指用一个像素点(Dot)代表液晶屏上的一个显示位,通过一系列打点函数的调用,可以实现字母、数字、符号等字符的显示。 在STM32F030C8T6上使用LCDHT1621液晶显示时,首先需要进行引脚配置,即将控制器的IO口连接至液晶屏的引脚上。然后需要进行LCDHT1621的初始化操作,包括设置液晶屏的像素点数、显示模式等。接下来就可以通过打点函数来进行字符的显示了。 例如,若要在液晶屏上显示字符“123”,可以使用以下代码: /* 设置液晶屏初始状态 */ LCD_Init(); /* 显示字符“1” */ LCD_Dot(0, 0, 1); LCD_Dot(0, 1, 1); LCD_Dot(0, 2, 1); /* 显示字符“2” */ LCD_Dot(1, 0, 1); LCD_Dot(1, 1, 0); LCD_Dot(1, 2, 1); LCD_Dot(1, 3, 1); /* 显示字符“3” */ LCD_Dot(2, 0, 1); LCD_Dot(2, 1, 0); LCD_Dot(2, 2, 1); LCD_Dot(2, 3, 1); 其中,LCD_Init()函数用于初始化LCDHT1621液晶显示控制器,LCD_Dot(x, y, color)函数用于在液晶显示屏的第x行、第y列处显示一个像素点,color值为1时表示亮点,为0时表示灭点。 通过这样的打点函数,可以实现在液晶屏上显示任意字符的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值