一个旋转编码器+LCD1602的驱动程序.doc_第1页
一个旋转编码器+LCD1602的驱动程序.doc_第2页
一个旋转编码器+LCD1602的驱动程序.doc_第3页
一个旋转编码器+LCD1602的驱动程序.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include /* 宏定义字符串 */#define uchar unsigned char #define LCD_DAT P0 /LCD数据/指令输入端(D7,D6,D5,D4,D3,D2,D1,D0)sbit LCD_RW = P25;/LCD读写控制端sbit LCD_RS = P26;/LCD指令/数据控制端sbit LCD_E = P27; /LCD使能控制端sbit AA = P10;/接编码器A端sbit BB = P11;/接编码器B端/* 任意ms延时函数 */void delayms(uchar count)uchar i,j;for(i = 0; i count; i+)for(j = 0; j 0; b-)for(a = 130; a 0; a-);/* LCD写函数 */void LCD_W(uchar m, uchar com_dat) /m=0:写指令,m=1:写数据LCD_RS = m;LCD_RW = 0;/写操作LCD_E = 0; /使能禁止LCD_DAT = com_dat; /在指令/数据端置数delay(); /5ms延时LCD_E = 1; /使能允许delay(); /5ms延时LCD_E = 0; /使能禁止/* LCD初始化函数 */void LCD_INIT()delay();delay();delay(); /5ms延时LCD_W(0, 0x38); /不检测忙信号delay();LCD_W(0, 0x38); /不检测忙信号delay();LCD_W(0, 0x38); /不检测忙信号LCD_W(0, 0x38); /显示模式LCD_W(0, 0x08); /显示关闭LCD_W(0, 0x06); /光标移动LCD_W(0, 0x0c); /显示开和光标设置/* LCD清屏函数 */void CLS()LCD_W(0, 0x01); /清屏/* LCD定位函数 */void LOCATE(uchar H, uchar L)if(H = 1) /如果是第一行LCD_W(0, 0x80 + L - 1); /定位在第一行第L列elseLCD_W(0, 0x80 + 0x40 + L - 1); /否则定位在第二行第L列/* LCD显示数值函数 */void LCD(unsigned long num)char n, m;unsigned long ww;if(num 9) /两位数以上进行处理显示n = log10(num); /取数值的位数for(m = n; m = 0; m-) /从高位开始输出ww = (num / pow(10, m); /从高位向低位依次取数ww = ww % 10; /取各次的最低位数LCD_W(1, 48 + ww); /输出else LCD_W(1, 48 + num); /一位数直接显示LCD_W(1, ); /显示空格 LCD_W(1, ); /显示空格 LCD_W(1, ); /显示空格 /* 主函数 */void main()uchar kkk, keys, tmp = 1;LCD_INIT();/LCD初始化CLS();/清屏while(1)if(AA = 0)/开始检测是否旋转了开关delayms(10);/消除抖动if(AA = 0) /确实是旋转了,进行正反转判断if(BB = 0)/正转,进行正转处理tmp = tmp * 2;/为了使LED正向递增if(tmp = 0)tmp = 128;/达到最大值,不再加kkk = +;/正转显示 +if(BB = 1)/反转,进行反转处理tmp = tmp / 2;/为了使LED反向递减 if(tmp = 0)tmp = 1;/达到最小值,不再减kkk = -;/反转显示 -LOCATE(1,1);/定位第 1 行 1 列LCD(tmp);/显示数值LOCATE(1,5);/定位第 1 行 5 列LCD_W(1, kkk);/显示字符keys = 0;/延时等待计数器while(AA = 0)/等待开关A端复位(断开),防止出现乱加减的现象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论