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 //-----
上传时间: 2013-11-18
上传用户:mnacyf
本实验板采用仿真芯片STC89C51RD或52作为核心部件。最有特色的就是可以在线下载程序。而且单片机内部也有存贮器…修改程序再也不需要拿去编程器烧好程序再插到实验板上,只需从串口下载,方便快捷。实验板直接从电脑的USB口取电,免除由整流器取电的麻烦,真正做到一台电脑,一块板就能玩转51。另外板子面积也比较小…约为12 x 7 CM.各个功能的说明:1.NOKINA3310液晶屏,诺基亚3310液晶点阵为48*84点,可以同时显示字符,文字,图形。2.I2C 串行EEPROM24C08,这个就比较常用了,密码锁等,与断电保存数据有关的就能用上。3.8个按键,非常实用2X4键盘,通过简洁的程序即可完成键盘输入控制.4.8个LED.,这个就不用说了吧,流水灯,提示灯什么的都能用上。5.1个四位数码管,可以做个计数器,可以显示频率,反正跟数字显示有关都可以了。6.时钟芯片,喜欢就自己做个时钟,显示时间,日期,农历也可以啊,呵呵。7.手动复位,这个主要是为了方便单片机复位,不用拨电源那么麻烦,轻轻一按就好了。8.蜂鸣器,可以完成各种奏乐、报警等发声音类实验。
上传时间: 2013-11-18
上传用户:wff
一款处理汉字点阵字库的软件,处理后的点阵字库可用于点阵液晶、LED汉显等领域。 支持 1024x1024以内的任意点阵汉字支持 所有Windows字体支持 汉字大小调整支持 汉字位置调整支持 单个汉字字模生成支持 海量汉字批量字模生成支持 按汉语拼音排序支持 横扫纵扫两种扫描方式生成数据支持 8bit(字节)"ZN"扫描方式支持 4-32bit多种数据长度分组选择支持 字模数据取反支持 字节按位倒置支持 汉语拼音自动命名C语言数组格式支持 汉语拼音自动命名汇编语言DB表格式支持 自动编号数组命名及自动编号汇编DB表命名方式支持 图片Logo点阵数据生成支持 二进制数据字库DAT和BIN文件的生成支持 二进制字库文件索引(两个字节索引)支持 GB2312 字符集选择导入及字库生成支持 GBK字符集选择导入及字库生成(仅供参考)支持 繁简字体自由转换支持 单字节字符支持RS232串口通讯、可把字模数据发送到移动存储设备,集成汉字自动识别功能,清除非汉字字符,提取汉字功能,汉字字模点阵数据批量生成工具可用作开发辅助工具,得到精减汉字库,节约有限的ROM空间资源。也可用作带点阵LCD显示系统的汉化工具或其它需要汉字点阵数据的地方。
上传时间: 2014-01-24
上传用户:menggesimida
更新说明: 1。界面采用新的字体,不会再有那种难看的黑色粗体字,比以前的要漂亮多了。 2。加入全面的提示帮助,尽量减少普通用户的各种疑惑。 3。修正生成文件的扩展名的一些BUG,不会总是加上FON的扩展名了。 4。修正生成字模数据的一些格式BUG,现在生成的C51格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了 5。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式 6。最重要的更新:全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生成窗口选项信息均可保存,下一次打开窗口时不用重新设置(由于要全面更改程序使用的变量结构,所以这部分化了很多时间)。 7。修正了新建图象时会自动跳到图形模式的BUG 8。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。 9。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。 10。修正了取模说明的一些错误,并改动了格式。 11。现在当用户选择10进制输出时,会自动去掉生成字模数据前的“0x",或后面的“H”,选择16进制时则会自动加上。 12。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。 13。增加生成英文点阵字库功能,可自动生成ASCII码从0-127的任意点阵字库,使用方法同生成国标点阵字库功能。 14。再次优化代码,去掉各种调试信息,使程序速度再快一些。 15。还有一些细微的调整我记不清了…… 需要注意的地方: 在测试的过程中我发现了一个问题:在WIN98或WINME下当用户需要生成特大点阵的字模时(例如320*320,1024*768的汉字字模),此时由于数据量非常庞大,而WIN98/WINME会有64K的数据容量限制,所以在主窗口中是无法得到全部的字模数据的,这时您需要使用字库生成功能,通过形成一个数据文件才能得到完整的字模数据。 另外生成特大字模时如果出现“内存不足”的提示,请把液晶仿真面板的像素点改小一些,这样可以节省内存。
上传时间: 2013-10-17
上传用户:fengzimili
该电路适合初学者使用,8乘8的LED点阵引脚示意图及运用。
上传时间: 2014-12-28
上传用户:lxm
如何利用SOPC制作点阵显示
上传时间: 2013-10-12
上传用户:jx_wwq
一个比较小巧实用的图形界面~
上传时间: 2013-10-30
上传用户:daoxiang126
论述了汉字显示的基本原理,基于OpenGL提出了在VxWorks嵌入式系统中汉字输入及显示的实现方案,并以16×16点阵字库为例,给出了关键程序设计。通过该输入法的输入及显示,结果表明,OpenGL提供了一种直观的编程环境,以及一系图形变换和外部设备访问函数,使开发者可以方便地访问鼠标、键盘等外设,简化了图形程序开发。
上传时间: 2013-11-03
上传用户:tou15837271233
与传统电脑结构类似,决定SoC芯片性能的两个重要组成单元分别是通用处理核心(CPU)和图形处理核心(GPU)。通用处理核心(CPU)的大东家就是我们熟知的ARM公司。图形处理核心(GPU)的设计授权公司有ARM公司、英国Imagination公司和美国高通公司
上传时间: 2013-11-06
上传用户:netwolf
Cortex-M3 是ARM 公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。STM32 系列产品得益于Cortex-M3 在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2 指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。本系统是基于Cortex-M3 内核的STM32 微控制器的mp3 播放器,在硬件方面主要有VS1053硬件音频解码器和12864 点阵液晶屏,在软件方面主要有VS1053 的驱动,SD 卡工作在SPI 模式下的读写驱动,FAT 文件系统的移植,12864 液晶的驱动,嵌入式操作系统ucOSii 的移植以及嵌入式图形管理器ucGUI 的移植。整个设计过程包括电子系统的设计技术及调试技术,包括需求分析,原理图的绘制,pcb 板的绘制,制版,器件采购,安装,焊接,硬件调试,软件模块编写,软件模块测试,系统整体测试等整个开发调试过程。
上传时间: 2013-11-19
上传用户:shaoyun666