精华内容
下载资源
问答
  • MFC CComboBox 添加字符显示不正确的解决方法

    笔者今日使用CComboBox顺序添加了若干字符串,但在软件界面中却显示的顺序与添加的顺序不正确。如下图:

    添加的顺序是:



    显示的顺序是:



    解决方法是:

    将AddString() 替换成 InsertString()




    展开全文
  • secure CRT 字符美化操作 先来贴一个secure CRT破解版的下载地址吧: http://download.csdn.net/detail/zhaole20094463/4554334 我们在嵌入式开发中总是需要连接开发板的串口,进行通信,以及操作控制。 当然...

    secure CRT 字符美化操作

    先来贴一个secure CRT破解版的下载地址吧:

    http://download.csdn.net/detail/zhaole20094463/4554334

    我们在嵌入式开发中总是需要连接开发板的串口,进行通信,以及操作控制。

    当然我们希望看的的字体是美观的,这样开发起来既直观,看着心情也好。

    串口通信软件很多,最好的莫过于这次说到的secure CRT了。




    这样的美化方案是不是不错?即不刺眼,文件又以不同的颜色根据不同的文件

    属性显示出来了。那么我们来看看是如何设置的。

    选中会话选项



    选中仿真如图设置


    选中外观,如图设置



    这只是其中的一种设置方案,当然最适合你的肯定不是我的设置,那么修改

    相应的选项,自己尝试一下吧。

                                        secureCRT下的串口不能输入

    【问题】

    用secureCRT建了一个串口COM1后,连接上开发板后,可以正确接受和显示串口的输出,但是按键输入无效。

    【办法】

    Session Options -> Connection -> Serial -> Flow Control,将原先默认选中的 RTS/CTS取消掉,再重新connect开发板,再次连上后,此时就可以从键盘输入了。

     

    【后记 2011-04-03】

    其中,你可以看到的流控制(Flow Contrl)有三个选项,对应着三种不同的流控制模式:

    【RS232的三种流控制模式】

    DTR/DSR硬件上要有对应接口,软件上实现对应协议,才能实现此流控制。具体实现起来,一般好像是和RTS/CTS一直搭配使用。

    RTS/CTS硬件上要有对应接口,软件上实现对应协议,才能实现此流控制。一般常见的也就是这种。但是很多开发板用secureCRT连接开发板的时候,往往都是在Uboot阶段,那时候还没有实现对应的RTS/CTS的流控制,所以此处需要取消此选择,否则,secureCRT就会去一直检测对应的RTS(Request To Send)pin脚,发现一直是无效,所以就一直没有接受到数据,就“卡”在那了。同样,你要输入数据,就是secureCRT要发送数据,所以其先发了个RTS给开发板,然后就一直检测自己的CTS是否有效,直到自己的CTS有效后,才能发送数据,而此处由于开发板上的驱动没有实现RTS/CTS,所以secureCRT就一直检测CTS,就“卡”死了,即你无法输入数据。

    XON/XOFF软件上实现的流控制,硬件上无需像上面的RTS/CTS或DTR/DSR那样要增加对应的引脚。但是由于XON/XOFF分别对应的两个二进制的值,所以如果本身传输数据中包括该值,那么此软件的流控制就失效了。现在好像也很少用此种流控制了。



    展开全文
  • 如果要显示彩色字符串,用bios调用即可 13h显示字符串 ;lea dx,mesg mov ax,1301h mov bh,0 mov bl,01001111B mov cx,LL mov dh,10 sub dh,count; 行数 mov dl,0h lea bp,mesg int 10h ;int 21h exit: ...

    原理:

    系统的8254的0号定时计数器会引发日时钟中断。

    0号定时计数器每隔55ms向8259A IR0端提一次日时钟中断请求。

    CPU响应之后转入08H中断服务程序,并在其中执行软件中断1CH。

    所以,我们可以置换1CH的终端服务子程序,来实现系统每隔55ms执行08H的时候执行我们定义的1CH子程序。

    要求:

    1.每隔一定时间,显示字符串。书上的是显示黑白字符串,这里用bios调用显示彩色。

    重点:

    1.掌握中断向量的置换(用前保存、写入、用完恢复)
    2.掌握用户中断(service)的设计(怎么样实现固定时间显示 和 彩色显示)

    ;njupt 3th experiment:show the character string dynamicly
    .486
    data segment use16
    	;mesg db 'Hello,njupt!',0DH,0AH,'$'
    	mesg db 'Hello,njupt!'
    	ll equ $-mesg
    	old1c dd ?
    	icount db 18	;延迟的时间 18*55 大约是1s 
    	count db 10
    data ends
    code segment use16
    	assume cs:code,ds:data
    beg:
    	mov ax,data
    	mov ds,ax
    	cli
    	call read1c
    	call write1c
    	sti
    scan:
    	cmp count,0
    	jnz scan
    	call reset
    	mov ah,4ch
    	int 21h
    
    service proc
    	pusha
    	push ds
    	mov ax,data
    	;--mov ds,ax
    	mov es,ax
    	dec icount
    	jnz exit
    	mov icount,5 ;在这里修改每次显示延迟的时间  5*55ms
    	dec count
    	;mov ah,9	;原始的是用9号调用ds:dx指向要显示的字符串
    	;如果要显示彩色字符串,用bios调用即可 13h显示字符串
    	;lea dx,mesg
    	mov ax,1301h
    	mov bh,0
    	mov bl,01001111B
    	mov cx,LL
    	mov dh,10
    	sub dh,count; 行数
    	mov dl,0h
    	lea bp,mesg
    	int 10h
    	
    	;int 21h
    exit:	
    	pop ds
    	popa
    	iret
    service endp
    ;------------------------
    read1c proc
    	mov ax,351ch
    	int 21h
    	mov word ptr old1c,bx
    	mov word ptr old1c+2,es
    	ret
    read1c endp
    ;----------------------------
    write1c proc
    	push ds
    	mov ax,code
    	mov ds,ax
    	mov dx,offset service
    	mov ax,251ch
    	int 21h
    	pop ds
    	ret
    write1c endp
    ;-------------------------
    reset proc
    	mov dx,word ptr old1c
    	mov ds,word ptr old1c+2
    	mov ax,251ch
    	int 21h
    	ret
    reset endp
    code ends
    	end beg

    效果:


    展开全文
  • 1602字符液晶显示

    千次阅读 2019-12-19 14:44:04
    环境 软件 uVision V4.02 ISIS Professional 7.8 芯片 AT89C51 LM016L(LCD) 仿真图

    环境

    软件

    • uVision V4.02
    • ISIS Professional 7.8

    芯片

    • AT89C51
    • LM016L(LCD)

    仿真图

    在这里插入图片描述

    实现效果

    实现功能有四个

    • 水平滚动显示字符串
    • 带光标显示随机算术式
    • 全码表字符显示
    • CGRAM自定义字符显示
      在这里插入图片描述

    相关代码及资源

    https://github.com/duganlx/DSP

    操作小记

    LCD1602相关函数编写

    指令表

    在这里插入图片描述

    指令说明

    上述表中,1为高电平0为低电平

    • 指令1:清显示:,光标复位到地址00H位置
    • 指令2:光标返回:,光标返回到地址00H
    • 指令3:光标和显示模式设置
      • I/D:光标移动方向,1:右移,0:左移
      • S:屏幕上所有文字是否左移动或右移:1:有效,0:无效
    • 指令4:显示开关控制
      • D:控制整体显示的开关,1:开显示,0:关显示
      • C:控制光标的开关,1:有光标,0:无光标
      • B:控制光标是否闪烁,1:闪烁,0:不闪烁
    • 指令5:光标或显示移位S/C:1:移动显示的文字,0:移动光标
    • 指令6:功能设置命令
      • DL:1:4位总线,0:8位总线(有些模块反过来,比如这里所用的就是)
      • N:0:单行显示,1:双行显示
      • F:0:575*7的点阵字符,1:5105*10的点阵字符
    • 指令7:字符发生器RAM地址设置
    • 指令8:DDRAM地址设置
    • 指令9:读忙信号和光标地址
      • BF:1:忙,此时模块不能接收命令或数据,0:不忙
    • 指令10:写数据
    • 指令11:读数据

    其他说明

    1. 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平(不忙),否则该指令失效
    2. 当显示字符时要先输入显示字符地址,以下是内部显示地址
      在这里插入图片描述
      所以若要写入字符到第二行第一个(40H),那么实际上写入的命令数据为C0H0100_0000(40H)+1000_0000(80H)=1100_0000(C0H)

    基本操作时序

    说明下,RS为寄存器选择,高电平时选择寄存器,低电平时选择指令寄存器RW为读写信号线,高电平时进行读操作低电平时进行写操作EN为使能端,当EN端由高电平跳变成低电平时,液晶模块执行命令L表示低电平,H表示高电平。

    • 读状态
      • 输入:RS=L; RW=H; E=H
      • 输出:D0~7=状态字
    • 写指令
      • 输入:RS=L; RW=L; E=下降沿脉冲; D0~7=指令码
      • 输出:null
    • 读数据
      • 输入:RS=H; RW=H; E=H
      • 输出:D0~7=数据
    • 写数据
      • 输入:RS=H; RW=L; E=下降沿脉冲; D0~7=数据
      • 输出:null
    时序图

    在这里插入图片描述

    时序参数

    在这里插入图片描述

    字符代码与字符图形对应关系

    在这里插入图片描述

    使用样例

    比如要输出A,查询表可知对应代码为0100_0001,而后显示时模块把地址41H中的点阵字符图形显示出来,我们就可以看到A

    头文件

    #include<reg51.h>
    #include<intrins.h> //使用_nop_();
    #include<string.h>
    

    宏定义

    // RS为寄存器选择,高电平时选择寄存器,低电平时选择指令寄存器
    sbit RS = P2^0;
    // RW为读写信号线,高电平时进行读操作,低电平时进行写操作 
    sbit RW = P2^1;
    // EN为使能端,当EN端由高电平跳变成低电平时,液晶模块执行命令
    sbit EN = P2^2;
    

    初始化函数

    /**
    * LCD初始化
    *
    * @return
    */
    void init()
    {
    	/*
    	  0011_1000 置功能
     	  DL=1 --> 8位总线
    	  N=0  --> 单行显示
    	  F=0  -->	显示5x7的点阵字符
    	*/	
    	write_cmd(0x38);
    	
    	/*
    	  0000_0001 清显示
    	  指令码01H,光标复位到地址00H位置
    	*/ 
    	write_cmd(0x01);
    	
    	/*
    	  0000_0110 置输入模式
    	  I/D=1 --> 光标右移
    	  S=0   --> 屏幕上所有文字左移或右移
    	*/
    	write_cmd(0x06);
    	
    	/*
    	  0000_1100	显示开/关控制
    	  D=1 --> 开显示
    	  C=0 --> 无光标
    	  B=0 --> 光标不闪烁
    	*/
    	write_cmd(0x0C);
    }
    

    检测BF(busy flag)位状态

    /*
    * 检测BF(busy flag)位状态
    * 
    * @return
    */
    void test_BF()
    {
    	unsigned char LCD_status;
    	do{
    		P0 = 0xFF; // LCD1602读取状态数据,必须有一个上拉电平
    		EN = 0; RS = 0; RW = 1; // RS为0时,P0的数据为命令
    		EN=1;// 让RS和RW设置有效
    		LCD_status = P0;
    		_nop_(); _nop_();
    		EN = 0;
    	}while(LCD_status&0x80); // 1000_0000 忙碌状态
    }
    

    写数据

    /*
    * 写数据(一位一位的写)
    *
    * @param data8 八位数据
    * @return
    */
    void write_data(unsigned char data8)
    {
    	test_BF();
    	EN = 0; RS = 1; RW = 0;
    	P0 = data8;
    	EN = 1; _nop_(); EN = 0;
    }
    

    写命令

    /*
    * 写命令
    *
    * @param cmd8 八位命令
    * @return
    */
    void write_cmd(unsigned char cmd8)
    {
    	test_BF();
    	EN = 0; RS = 0; RW = 0;
    	P0 = cmd8;
    	EN = 1; _nop_(); EN = 0;
    }
    

    写字符串

    /**
    * 写字符串
    *
    * @param r row
    * @param c column
    * @param str 字符串
    * @return
    */
    void write_str(int r, int c, char *str)
    {
    	int i=0;	
    	unsigned char Addressx[] = {0x80, 0xC0};
    	unsigned char StartAdd = (Addressx[r] | c);//按位或
    
    	write_cmd(StartAdd);
    	
    	for(i = 0; i < 16; i++){
    		if(str[i]==0) break;
    		write_data(str[i]);
    	}
    	// 如果不够16位,用空格填充
    	for(;i < 16; i++){
    		write_data(' '); 	
    	}
    }
    

    主函数编写

    头文件

    #include<reg51.h>
    #include<intrins.h>
    #include<string.h>
    #include<stdlib.h>
    #include<stdio.h>
    

    宏定义

    sbit switch1 = P3^0;
    sbit switch2 = P3^1;
    sbit switch3 = P3^2;
    sbit switch4 = P3^3;
    
    unsigned char *strCode="                I Love You!";
    

    引入外部函数

    extern void delay_ms(int ms);
    extern void init();
    extern void write_cmd(unsigned char cmd8);
    extern void write_str(int r, int c, char *str);
    extern void write_data(unsigned char data8);
    

    功能1:水平滚动文字

    void h_scroll_words()
    {
    	int i;
    	init();
    	write_str(0,0, "    Example-1   ");
    	while(1)
    	{
    		/*
    		  fun1
    		*/
    		for(i = 0; i<strlen(strCode); i++)
    		{
    			write_str(1, 0, strCode + i);
    			delay_ms(100);
    		}
    		
    		if(switch1 != 0) break;
    	}
    
    }
    

    功能2:随机数相加

    void random_words()
    {
    	int a,b,i;
    	unsigned char tempStr[17];
    
    	init();
    	write_cmd(0x0F); //0000_1111:显示开/关控制
    	write_str(0,0, "    Example-2   ");
    
    	while(1)
    	{
    		//srand(TH0);
    		a = rand()%10;
    		b = rand()%10;
    		sprintf(tempStr, "%d+%d=%d", a, b, a+b);
    		write_cmd(0xC0|0x05); //1100_0101
    		for(i = 0; i < 11; i++)
    		{
    			if(tempStr[i]) write_data(tempStr[i]); 
    			else write_data(' ');
    			delay_ms(150);
    		}
    		write_str(1, 0, "           ");
    		delay_ms(150);
    		if(switch2 != 0) break;
    	}
    
    }
    

    功能3:全码显示

    void all_str_code()
    {
     	int i,j;
    	init();
    	write_cmd(0x0F);//0000_1111:显示开/关控制 
    	write_str(0,0, "    Example-3   "); 	
    	while(1)
    	{
    		write_cmd(0xC0);
    		for(i = 0x20; i <= 0xFF; i++)
    		{
    			if(switch3) return;
    			if(i >= 0x80 && i < 0xa0) continue;
    
    			if((++j) == 16)
    			{
    				write_str(1, 0, "           ");
    				j = 0;
    				//如果命令让它从第二行写,就重置到第二行第一个地址
    				write_cmd(0xC0);
    			}
    			//if(i == 0xFF) i = 0x20;
    			write_data(i);
    			delay_ms(50);
    		}
    	
    	}
    
    }
    

    功能4:自定义字符显示

    void character_str_code()
    {
      	int i = 0;
      	unsigned char CC[] = {0x1F,0x11,0x1F,0x11,0x1F,0x11,0x1F,0x00};
      	init();
    	write_cmd(0x0F); // 0000_1111:显示开关控制
    	write_str(0, 0, "    Example-4   ");
    	write_cmd(0x40); //0100_0000:置字符发生存贮器地址
    	for(i = 0; i < 8; i++)
    	{
    		// 通过上面write_LCD_CMD(0x40); 把数组写到CGRAM
    		write_data(CC[i]);	
    	}
    	while(1)
    	{
    		write_cmd(0xC0);
    		for(i = 0; i < 16; i++)
    		{
    			if(switch4) return;
    			write_data(0);
    			delay_ms(50);
    		}
    		//当满行显示后清屏
    		write_str(1, 0, "                ");
    		delay_ms(150);
    	}
    	
    
    }
    

    主函数

    void main()
    {
    	while(1)
    	{
    		if(switch1 == 0)
    		{
    			h_scroll_words();
    		}
    		else if(switch2 == 0)
    		{
    			random_words();
    		}
    		else if(switch3 == 0)
    		{
    			all_str_code();
    		}
    		else if(switch4 == 0)
    		{
    			character_str_code();
    		}
    	}
    }
    
    展开全文
  • 1. 简单的显示测试程序 — 帮助理解 使用PCtoLCD对字符取模 无论什么屏幕,都是由一个个像素点组成的,所以...取模软件使用PCtoLCD2002完美版,附上下载链接。 取模软件中的设置如下: 生成数据:C51格式: 点阵格...
  • ASCII控制字符和ASCII可显示字符

    千次阅读 2018-07-03 17:29:22
    ASCII控制字符和ASCII可显示字符 ASCII控制字符 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 00000000 0 00 NUL ␀ 空字符(Null) 000000...
  • wps空字符显示为方块

    千次阅读 2015-02-07 14:39:34
    表格导出到excel ,一个单元格式很长的一个空字符串,word显示正常,wps显示为方框,原因是导出的表格在wps中字体是Tahoma,wps支持这种字体下空字符显示,微软word支持。两个软件完全能比啊
  • ASCII可显示字符和ASCII控制字符

    千次阅读 2016-06-03 10:39:59
    ASCII可显示字符 二进制 十进制 十六进制 图形 0010 0000 32 20 (空格)(␠) 0010 0001 33 21 ! 0010 0010 34 22 " ...
  • 分析wireshark中无法正确显示字符的原因
  • 汇编:显示字符

    千次阅读 2019-10-25 19:13:47
    汇编:显示字符串前言源代码利用库函数库函数实现 前言 DOS功能调用 DOS利用软件中断方式提供系统功能。 中断调用指令是“INT N”,其中N表示调用的中断号、即中断0~中断255号。 DOS系统调用一般有如下4个步骤: ...
  • 字符显示只修改vga_display模块,其他模块参考FPGA实现VGA显示(二)——————color_bar显示及方框移动(参考开拓者FPGA开发指南) 字符显示相对较简单,主要是控制每一个像素点的黑白,...
  • matlab中特殊字符显示

    千次阅读 2008-05-27 21:32:00
    这里只要知道Matlab借用了Latex中命令,用于显示特殊的字符和标识.有效区域 这些特殊字符有效区域主要集中在: Axes中标识整个坐标系的Title, X, Y, Z轴的Label, 以及Annotation中TextBox, Legend(图例)上标, 下标
  • 主要完成功能:输入随机个字符个数(最大98个,可调),统计字母,数字,空格,其他字符个数,统计好以后显示出来相应个数。 存在部分问题未找到解决办法,希望高人能请联系我,问题如下: 1.如果输入任何字符,...
  • LCD1602模块如何显示自定义字符

    万次阅读 多人点赞 2018-01-28 22:44:23
    假如现在我想显示某个温度值,需要标志出温度符号”°C”,现在你去字库表里面查找,发现根本找到这个符号,那怎么办?下面我们就来就来通过自定义字符解决这个问题。前面讲了,对于显示模块的控制,主要关注两个...
  • s3c2440的LCD字符显示

    万次阅读 热门讨论 2010-03-26 10:06:00
    在上一篇文章中,我们详细介绍了如何驱动LCD,对于在LCD屏上...简单的方法是使用“字模提取”之类的软件,它能够把任意的字符转换为一个字节型的数组,数组元素中的每一位代表LCD上的一个像素点,当为1时,表示该位置
  • vim字符编码与显示

    千次阅读 2010-02-08 16:34:00
    转自:http://blog.chinaunix.net/u1/37553/showart_347927.html 和所有的流行文本编辑器一样,...然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。Vim 有四个跟字符编码方式有关的选项,encod
  • 以字模的方式存储图形或者文字,每一个点都需要一个bit位来存储,该位为0代表该像素点不显示,为1代表显示。这样,一个字节就可以存储8个像素点的显示情况。  一般采用宋体小四号的字符来做显示,这样一个英文...
  • Notepad++怎样显示所有的字符

    千次阅读 2017-05-23 16:27:46
    Notepad++怎样显示所有的字符 打开notepad++ 视图->显示符号->显示所有字符 显示换行符号CRLF(Windows下)
  • PLSQL设置显示中文的字符

    千次阅读 2015-05-30 22:34:40
    刚才下载安装了PLSQL Developer 11 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示。经过网上查询得知这是客户端跟服务器的字符匹配造成的。解决方法如下: 1、查询oracle server端的...
  • 最简单实现vtk显示中文字符的办法

    千次阅读 热门讨论 2017-04-30 16:58:03
    在使用vtk进行软件开发遇到一个头疼的问题,无法直接解析中文字符。网上查了很多资料,一直未果。有的资料显示要自己添加类,重新编译VTK,这样工作量非常大,且易出错,效果并未能达到想要的结果。经过一番实践,...
  • 对于这个BUG建议还是不要修改软件,因为确定在某些特定条件下是否会引起莫名奇妙的其他问题,而且涉及到这个BUG的汉字多,下面是从GB2312中抽了出来: 褒 饼 昌 除 待 谍 洱 俘 庚 过  糊 积 箭 烬 君 魁...
  • MySQL字符集和校对规则MySQL的字符集是用来定义MySQL存储字符串的方式,校对规则(有的软件叫排序规则)则是用来定义了比较字符串的方式。字符集和校对规则是一对多的关系。每种字符集都有一个默认校对规则。查看...
  • 在使用UE软件写代码的过程中,用到了中文字符,脚本中的字符能正常显示,但是到了运行界面显示出来的却是乱码 ,摸索了一阵,找到解决办法了 打开ue软件找到高级: 然后选择 设置代码页 ...
  • 一、 LCD12864(ST7565P)简介 LCD12864是一种具有4位/8位并行、...可以显示8×4行16×16点阵的汉字,也可完成图形显示。 二、实验材料 1、stm32最小系统。 2、LCD12864液晶屏。 3、杜邦线若干。 三、程序代码 1、 ...
  • 前面笔者总结了如何显示单字符,设立通过一个简单的任务来总结如何实现vga多字符显示。 实验要求 基础: 由PC通过UART发送数据在VGA显示。数据可以为字母,数字,汉字(任选10个字),VGA分为左右两个区域,输入...
  • 在vim中显示gbk字符

    千次阅读 2013-11-02 11:34:52
    由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。修改了一下配置文件,使vim支持gb编码就好了。 $vim ~/.vimrc ...如果正常,重新开一个终端,
  • 串口软件Vofa+,超好用。可用于直观化显示数据动态
  • windows -- 一个字符串转换的工具软件

    千次阅读 2020-02-15 12:25:07
    文章目录一、前言二、目前支持的转换1、主界面显示效果2、增删空格功能3、增删十六进制前缀0x4、增删逗号(数据分割)5、计算CRC6、大小写转换7、退出三、源码以及.exe文件下载四、声明 一、前言 在C语言的开发、...
  • VS2010设置高亮显示相同字符

    千次阅读 2017-10-18 14:03:57
    工具->扩展管理器->联机库->Highlight all occurrences of selected word 重启软件即可使用
  • secureCRT显示乱码/字符集设置

    千次阅读 2018-03-21 17:49:37
    绝大部分企业级服务器以Unix或linux系统担当,所以在远程连接Unix系统时,楼主使用了VANDYKE公司的SecureCRT软件,下面就来介绍在连接中出现乱码怎么处理及设置。 1.首先,配置登录信息后,来连接进入远程服务器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 406,523
精华内容 162,609
关键字:

下载软件动态字符不显示