下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于lcd12864显示器的数字示波器设计图2 lcd点阵分布结构图此lcd 屏由水平128 列,垂直64 行组成。水平128 列分左右各64 列两个半屏构成。垂直64 行又分8 页,每页8 行(1 列8 点刚好1 字节)。程序每次对lcd 的绘图操作就是以最小单位1 字节举行操作的。理解这点至关重要。也就是每次只能针对8 点举行操作,而不是1 点举行操作。左右屏由单独地址线控制(前面的接口定义就是分左右屏定义的)。实际打点只需往指定“位置”写入数据,“1”亮,“0”暗。lcd 驱动忙检测函数void loop_lcd12864_is_busy(unsigned char right)。voi
2、d loop_lcd12864_is_busy(unsigned char right)unsigned char tmp,counter=0;do if(right) tmp = lcd_rcr;else tmp = lcd_lcr;if(counter+>50) break; / 超时跳出while (tmp|0x7f)=0xff); /bit7 为1 则表示lcd 内部执行指令,处于“忙”状态对lcd 举行读写操作时,需要举行“忙”检测,lcd 内部也是由控制器来完成一系列刷屏操作的,执行各种操作都是需要一定的时光,也就是说不是任何时候外部控制器都可以对lcd 发操作命令的,惟独l
3、cd为空闲状态时才可以操作,忙检测就是循环读取lcd状态标记位,推断是否空闲,关于指令的详情请参考数据手册。指令写入函数void lcd_cmd_wr(unsigned char cmd,right)。void lcd_cmd_wr(unsigned char cmd, right)loop_lcd12864_is_busy(right); / 忙检测if(right) lcd_rcw = cmd; / 右屏指令写入else lcd_lcw = cmd; / 左屏指令写入数据写入函数void lcd_dat_wr(unsigned char data,right)。void lcd_dat_w
4、r(unsigned char data,right)loop_lcd12864_is_busy(right);if(right) lcd_rdw = data;else lcd_ldw = data;lcd_cmd_wr() 和lcd_dat_wr() 两个函数分离是给lcd 写指令和写数据函数,通过写指令函数设定地址。每个函数都分左右屏,“right”参数挑选,“0”选左屏,“非0”选右屏。读数据函数unsigned char lcd_dat_rd(unsigned char right)。unsigned char lcd_dat_rd(unsigned char right)loop_
5、lcd12864_is_busy(right);if(right) return(lcd_rdr);else retuen(lcd_ldr);该函数可以读出lcd 当前显示的数据,首次操作需要读2次才有效。lcd 清屏函数void lcd12864_clr(void)。void lcd12864_clr(void)unsigned char i,j;for(i=0;ilcd_cmd_wr(orgx,0); / 分页设定左屏0 点地址lcd_cmd_wr(orgy+i,0);lcd_cmd_wr(orgx,1); / 分页设定右屏0 点地址lcd_cmd_wr(orgy+i,1);for(j=0
6、;jlcd_data_wr(0,0);lcd_data_wr(0,1);该函数对lcd 全部点阵写0,完成一次清屏操作。这里的orgy,prgx 是设定光标的指令,光标指向(0,0)字节,是一个固定值。实际在执行数据写入的时,x 坐标范围从0 到63,在延续写入过程中能够实现自动加1,y 轴页地址范围从0 到7,需要逐页设定。lcd 初始化函数void lcd12864_init(void)。void lcd12864_init(void)lcd_cmd_wr(dispon,0); / 显示开启lcd_cmd_wr(dispfirst,0); / 设定显示首行地址,修改首行地址可以实现屏幕滚动
7、显示效果lcd_cmd_wr(orgy,0); / 设定初始光标lcd_cmd_wr(orgx,0);lcd_cmd_wr(dispon,1); / 初始另外一半lcd_cmd_wr(dispfirst,1);lcd_cmd_wr(orgy,1);lcd_cmd_wr(org,1);lcd12864_clr(); / 执行清屏,非必需操作 该函数用来初始化lcd,设置显示模式,光标位置等,在对lcd 绘图时,最多的指令就是设定当前光标位置,通过光标位置来指定将要操作的lcd 显示点。在对lcd 编程操作以前,一定要执行此函数对lcd 举行初始化操作。从驱动函数可见,一次对lcd 写入数据是以字节为单位,通过写指令设定坐标,y 坐标从0 页到7 页,x 坐标从0 列到63 列,分左右屏,左上角为坐标(0,0)点,这和我们习惯的左下角为(0,0)坐标轴是不一样的。由于每次操作lcd 是一个字节为单位,对应8 点,假如我们希翼以随意点为坐标显示,还得另外寻觅别的方法编程实现真正“点”显示。3 所示,在屏幕
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西省农村信用社联合社客户服务中心座席招聘初试笔试历年典型考题及考点剖析附带答案详解
- 2025年春季安徽淮南市寿县联合村镇银行招聘笔试历年典型考题及考点剖析附带答案详解
- 2026电子厂升职考试题及答案
- 2026电网考试题库及答案
- 设备部5月月度测评测试卷及答案
- 2026电气专业考试题库及答案
- 2026电脑维修考试题及答案
- 衡阳师范学院“共筑保密防线公民人人有责”保密安全知识竞赛测试卷及答案
- 危险化学品出入库登记制度
- 文旅市场执法检查工作实施方案
- 八年级物理上册(人教版2024)-新教材解读培训课件
- 心理咨询服务个人隐私保密协议
- JJF2095-2024压力数据采集仪校准规范
- 《模拟电子技术》课件-加减运算电路
- 教师信息技术应用能力培训课件
- 国家地质公园规划编制技术要求
- GB/T 17469-2024汽车制动器衬片摩擦性能评价小样台架试验方法
- 供应商来料质量报告(年度与月度)
- 巨人通力电梯NOVA GKE调试说明书故障代码GPN15 GVN15-GKE - 51668093D01-2022
- 简约劳务合同范本
- JT-T-776.3-2010公路工程玄武岩纤维及其制品第3部分:玄武岩纤维土工隔栅
评论
0/150
提交评论