社区
单片机/工控
帖子详情
液晶光标设定
HEROP
2004-08-11 06:19:00
我用的是日晶公司的128*64戴中文字库的液晶,驱动为st7920\st7921,但我在显示数字时,因为只占8*16即半宽型字,这样我在设定时,因为光标宽度为16,这样就占了两个数字,看起来很不美观,那位大虾能告诉我怎能让光标闪烁时也显示8*16即半宽型字,先谢谢了!!!
...全文
85
3
打赏
收藏
液晶光标设定
我用的是日晶公司的128*64戴中文字库的液晶,驱动为st7920\st7921,但我在显示数字时,因为只占8*16即半宽型字,这样我在设定时,因为光标宽度为16,这样就占了两个数字,看起来很不美观,那位大虾能告诉我怎能让光标闪烁时也显示8*16即半宽型字,先谢谢了!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
peng22277
2004-08-12
打赏
举报
回复
自己画一个光标
romyks
2004-08-12
打赏
举报
回复
不然自己画一个光标算了,要多宽就可以是多宽
tjjack
2004-08-12
打赏
举报
回复
不可能的哦!那和内部的控制器有管!也是就说厂商已经就这样作的!除非你也自己作!!
单片机12864
液晶
程序设计
单片机1 2864
液晶
程序设计 硬件结构框架: 1,12864
液晶
显示效果: 1,显示汉字 相关知识点: 1,类似点阵型
液晶
的操作 注意事项: 1,
液晶
的复位引脚直接连接在MCU的IO口上, 在对
液晶
初始化时应先对其复位操作 /*******************************************************************/ /* */ /* LCD初始化
设定
*/ /* */ /*******************************************************************/ void lcd_init() { wei_1(); duan_1(); LCD_RST=0; delay(1); LCD_RST=1; LCD_PSB=1; delay(10); lcd_wcmd(0x34); //扩充指令操作 delay(5); lcd_wcmd(0x30); //基本指令操作 delay(5); lcd_wcmd(0x0C); //显示开,关
光标
delay(5); lcd_wcmd(0x01); //清除LCD的显示内容 delay(5); }
1602
液晶
显示例题
#include
#include
//具有_nop_()函数的库文件 typedef unsigned char zj; //重定义数据类型zj为无符号字符型; sbit L_RS=P2^0; //定义控制信号L_RS连接的引脚 sbit L_RW=P2^1; //定义控制信号L_RW连接的引脚 sbit L_EP=P2^2; //定义控制信号L_EP连接的引脚 zj code disp[]={"digital tempratu"}; //写入liquid crystal的字符串数组 delay(int ms) //延时函数 { int i; while(ms--) { for(i=0;i<250;i++) { _nop_();_nop_();_nop_();_nop_(); } //_nop_()空操作; }} bit licrystal_bz() //测是liquid crystal 忙状态函数,返回“bit”类型; { bit result; //定义bit变量; L_RS=0; //L_RS=0,为读命令而不是数据; L_RW=1; //L_RW=0为读操作,而不是写操作; L_EP=1; //L_EP=0,高电平使读操作有效; _nop_();_nop_();_nop_();_nop_(); result=(bit)(P0&0x80); //将P0口的最高位取出,并强制为bit类型; L_EP=0; //停止读操作; return result; //返回liquid crystal忙标志; } licrystal_wcmd(zj cmd) //向liquid crystal写入指令函数; { while(licrystal_bz()); //liquidcrystal 忙时等待; L_RS=0; //l_RS=0为读写命令; L_RW=0; //L_RW为写操作 L_EP=0; //L_EP=0,为正脉冲做准备; _nop_();_nop_(); P0=cmd; //将命令写入P0口(于liquid crystal数据总线相连); _nop_();_nop_(); _nop_();_nop_(); L_EP=1; //L_EP=1,准备写操作下降沿; _nop_();_nop_();_nop_();_nop_(); L_EP=0; //l_ep=0,出现有效下降沿。 } licrystal_pos(zj pos) //
设定
字符显示位置函数;pos 的范围为00h~27H,40H~67H { licrystal_wcmd(pos|0x80); //调用写命令函数,写入位置值 } licrystal_wdat(zj dat) //向liquid crystal写入字符(一字节的数据) { while(licrystal_bz()); //当忙时等待; L_RS=1; //写数据操作 L_RW=0; //数据操作; L_EP=0; //写操作; P0=dat; //将显示数据写入p0口 _nop_();_nop_();_nop_();_nop_(); L_EP=1; //L_EP=1,准备写操作下降沿; _nop_();_nop_();_nop_();_nop_(); L_EP=0; //L_EP=0,出现有效下降沿; } licrystal_init() //软件初始化函数 { //L_RW为写操作 licrystal_wcmd(0x38); //16*2显示,5*7点阵,8位数据(001,DL=1,N=0,F=0,00) delay(1); licrystal_wcmd(0x0f); //显示开、关
光标
,不闪烁(0000,1,D=1,C=0,B=0;) delay(1); licrystal_wcmd(0x06); //增量方式移动
光标
(0000,0,1,I/D=0,S=0); delay(1); licrystal_wcmd(0x01); //清除LCD的显示内容,AC与DDRAM初始化 delay(1); } main() { zj i; //定义不符号字符变量i licrystal_init(); //调用初始化函数,软件初始化LCD delay(10); while(1) //无限循环 { licrystal_wcmd(0x06); //调用写命令函数,向右移动
光标
(增量) licrystal_pos(0); //调用显示位置函数,设置显示位置为第一行的一个字符 i=0; //变量初始化 while(disp[i]!='\0') //如果没有遇到结束符,则显示字符 { licrystal_wdat(disp[i]); //调用写数据函数,向liquid crystal写字符,由于增量方式,所以AC自动加1 i++; delay(10); //设置两个字符之间显示的速度 } //控制两屏之间的转换时间 } }
液晶
显示的PID炉温控制系统-电路方案
液晶
显示的PID炉温控制系统内容概述: 本系统为以AT89S51单片机为核心的炉温控制系统。该系统在硬件设计上主要是通过温度传感器DS18B20对温度进行采集,直接输出数字式的温度值。AT89S51将采集到的数字温度送到LCD1602,以数字形式显示测量温度,并采用PID控制来实现对温度的调节。 DS18B20温度显示仿真如下,DS18B20的值可以任意调整,模拟温度的采集,LCD的显示值随DS18B20的温度值变化而变化。当温度超过界限,LED亮,同时SOUNDER响,模拟警报系统。当按下k1,显示温度的最高位
光标
开始闪烁,进入
设定
温度调整,按下k2,
光标
右移,按下k3数值加1,按下k4数值减1。 PID控制仿真如图,电加热炉OVEN输出的模拟量经ADC0804转化成数字量,再送到LCD显示。 OVEN的温度与
设定
温度在单片机内进行PID运算,PID输出量控制晶闸管的导通,从而控制OVEN的加热。
液晶
显示的PID炉温控制系统功能要求: 1.采用
液晶
显示器显示温度测量值。 2.检测的温度范围为0~128℃。 3.温度超过警戒值时能报警提示。 4.能通过键盘输入
设定
温度并显示。 5.用PID控制温度,控温精度≦±2℃。
LCD12864 哆啦A梦图片显示STC8A8K单片机KEIL工程文件源码.zip
LCD12864 哆啦A梦图片显示STC8A8K单片机KEIL工程文件源码: /*******************************************************************/ /* */ /* LCD初始化
设定
*/ /* */ /*******************************************************************/ void lcd_init() { // LCD_PSB = 1; //并口方式 LCD_RST = 0; //
液晶
复位 delay(3); LCD_RST = 1; delay(3); lcd_wcmd(0x34); //扩充指令操作 delay(5); lcd_wcmd(0x30); //基本指令操作 delay(5); lcd_wcmd(0x0C); //显示开,关
光标
delay(5); lcd_wcmd(0x01); //清除LCD的显示内容 delay(5); } /********************************************************* * * * 图形显示 * * * *********************************************************/ void photodisplay(uchar *bmp) { uchar i,j; lcd_wcmd(0x34); //写数据时,关闭图形显示 for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先写入水平坐标值 lcd_wcmd(0x80); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 lcd_wdat(*bmp++); delay1(3); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp++); delay1(3); } lcd_wcmd(0x36); //写完数据,开图形显示 } /********************************************************* * * * 主函数 * * * *********************************************************/ void main() { delay(100); //上电,等待稳定 lcd_init(); //初始化LCD photodisplay(Photo1); //显示图片1 delay(20000); while(1); } /*************************
C51单片机LCD电子时钟课程设计.doc
中南大学 《自动化工程训练》 设计题目 LCD时钟程序设计 指导老师 设计者 专业班级 自动化 级 班号 设计日期 2016年9月 目录 一、设计任务要求分析 1 1、1设计总体方案及其方案论证 1 二、 组成电路介绍 1 2、1 复位电路: 1 2、2晶振电路: 1 2、3键盘控制系统设计: 2 2、4闹钟部分: 3 2、5显示电路设计 3 2、5、1 LCD1602简介 3 三 、软件设计 4 3、1程序主流程图 5 3、2初始化流程图 5 3、3延时中断子程序 6 3、4时间设置子程序 7 四、系统测试 7 4、1 测试方法 7 4、2 测试结果 7 4、3 结果分析 8 五、源程序 8 一、设计任务要求分析 本设计要实现得功能就是:实时显示当前得时钟,并且可以
设定
闹铃,以蜂鸣器鸣响5 秒得方式作为闹铃。 1、1设计总体方案及其方案论证 按照系统得设计功能所要求得,
液晶
显示电子时钟原理图如图所示。
液晶
显示电子时钟原理图 本系统以AT89C51单片机为核心,该单片机可把数据进行处理,从而把数据传输 到显示模块LCD1602
液晶
显示器,实现时间及日期得显示。以LCD
液晶
显示器为显示模块 ,把单片机传来得数据显示出来,并且显示多样化,还可以对时间与日期进行设置,主要靠 按键来实现。 组成电路介绍 2、1 复位电路: 复位电路 复位电路有两种方式:上电复位与按钮复位,我们主要用按钮复位方式。如图所示: 2、2晶振电路: 晶振电路如图所示: 晶振模块原理图 选取原则:电容选取22pF,晶振为12MHz。 1. 电源: AT89S51单片机得供电电源就是5V得直流电。 2. EA非/Vpp脚: 我们没有用外部扩展ROM,因此EA非/Vpp为高电平,即接+5V电源。 2、3键盘控制系统设计: 按键需要4个,分别实现为时间调整、时间得加、时间得减、闹钟调整四个功能。用 单片机得4个I/O口接收控制信号,其电路如图所示: 按键调时电路 通过控制键来控制所要调节得就是时、分、还就是秒。在控制键按下后LCD中会在相 应得位置出现
光标
,这时在通过加数键或减数键来控制时分秒得加或减。在调闹钟键按下 后LCD中也会在相应得位置出现
光标
,这时也通过加数键或减数键来设置闹钟。 2、4闹钟部分: 闹钟部分主要由蜂鸣器,三极管,电阻组成。其电路图如图所示: 闹钟电路 当单片机得P1^5接口输出为高电平时,蜂鸣器响,当输出为低电平时,蜂鸣器停止 。 2、5显示电路设计 2、5、1 LCD1602简介 LCD1602
液晶
也叫1602字符型
液晶
,它就是一种专门用来显示字母、数字、符号等 得点阵型
液晶
模块,它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可 以显示一个字符。每位之间有一个点距得间隔,每行之间也有也有间隔,起到了字符间距 与行间距得作用,正因为如此,所以她不能显示图形(用自定义CGRAM,显示效果也不好 )。1602LCD就是指显示得内容为16X2,即可以显示两行,每行16个字符
液晶
模块( 显示字符与数字)。目前市面上字符
液晶
绝大多数就是基于HD44780
液晶
芯片得,控制 原理就是完全相同得,因此基于HD44780写得控制程序可以很方便地应用于市面上大部 分得字符型
液晶
。 (1)LCD1602得主要技术参数 显示容量:16×2个字符; 芯片工作电压:4、5—5、5V; 工作电流:2、0mA(5、0V); 模块最佳工作电压:5、0V; 字符尺寸:2、95×4、35(W×H)mm。 (2)LCD1602引脚功能说明 1602LCD采用标准得14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下: 第1脚:VSS为地电源; 第2脚:VDD接5V正电源; 第3脚:VL为
液晶
显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比 度过高时会产生"鬼影",使用时可以通过一个10K得电位器调整对比度; 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器; 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS与R/W共同为 低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS 为高电平R/W为低电平时可以写入数据; 第6脚:E端为使能端,当E端由高电平跳变成低电平时,
液晶
模块执行命令; 第7~14脚:D0~D7,为8位双向数据线; 第15脚:背光源正极; 第16脚:背光源负极。 1602
液晶
模块得读写操作,屏幕与
光标
得操作都就是通过指令编程来实现得。本显示 电路将单片机得P0口作为
液晶
得数据口,由于P0口没有上拉电阻,所以需额外加一个排 阻作为上拉电阻,利用
单片机/工控
27,373
社区成员
28,771
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章