51单片机用12864显示唐诗

51单片机用12864显示唐诗

ID:39348578

大小:28.02 KB

页数:6页

时间:2019-07-01

51单片机用12864显示唐诗_第1页
51单片机用12864显示唐诗_第2页
51单片机用12864显示唐诗_第3页
51单片机用12864显示唐诗_第4页
51单片机用12864显示唐诗_第5页
资源描述:

《51单片机用12864显示唐诗》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、51单片机用12864显示唐诗#include#include#include#include"nn.h"#defineucharunsignedchar#defineuintint#defineLCD_databusP0//LCD12864的8位数据口sbitRS=P2^2;//RS为0---命令;1----数据sbitRW=P2^1;//RW为1---写;0---读sbitEN=P2^0;//使能端sbitCS1=P2^4;//片选1低电

2、平有效,控制左半屏sbitCS2=P2^3;//片选1低电平有效,控制右半屏sbitkey1=P3^0;sbitkey2=P3^1;voiddelay_ms(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddelay(uinti){while(--i);}voidRead_busy()//读“忙”函数-----数据线的最高位DB71则busy{P0=0x00;RS=0;RW=1;EN=1;while(P0&0x80);EN=0;}voidw

3、rite_LCD_command(ucharvalue)//写命令函数{Read_busy();//对LCD的每次读写都要读忙RS=0;//选择命令RW=0;//读操作LCD_databus=value;EN=1;//EN由1----0锁存有效数据_nop_();_nop_();EN=0;}voidwrite_LCD_data(ucharvalue)//写数据函数{Read_busy();RS=1;//选择数据RW=0;LCD_databus=value;EN=1;//EN由1----0锁存有效数据_

4、nop_();_nop_();EN=0;}voidSet_page(ucharpage)//设置“页”LCD12864共8页,一页是8行点阵点{page=0xb8

5、page;//页的首地址为0xB8write_LCD_command(page);}voidSet_line(ucharstartline)//设置显示的起始行{startline=0xC0

6、startline;//起始行地址为0xC0write_LCD_command(startline);//设置从哪行开始:共0--63;一般从0行开始

7、显示}voidSet_column(ucharcolumn)//设置显示的列{column=column&0x3f;//列的最大值为64column=0x40

8、column;//列的首地址为0x40write_LCD_command(column);//规定显示的列的位置}voidSetOnOff(ucharonoff)//显示开关函数:0x3E是关显示,0x3F是开显示{onoff=0x3e

9、onoff;//onoff:1---开显示;0---关显示write_LCD_command(onoff);

10、}voidSelectScreen(ucharscreen)//选择屏幕{switch(screen){case0:CS1=0;CS2=0;break;//全屏case1:CS1=0;CS2=1;break;//左半屏case2:CS1=1;CS2=0;break;//右半屏default:break;}}voidClearScreen(ucharscreen)//清屏函数{uchari,j;SelectScreen(screen);//0--全屏;1---左半屏;2---右半屏for(i=0;i<8

11、;i++)//控制页数0-7,共8页{Set_page(i);Set_column(0);for(j=0;j<64;j++)//控制列数0-63,共64列{write_LCD_data(0x00);//写入0,地址指针自加1}}}voidinit_LCD()//LCD的初始化{SetOnOff(1);//开显示SelectScreen(0);ClearScreen(0);//清屏Set_line(0);//开始行:0}voidDisplay_HZ(ucharscreen,ucharpage,uchar

12、column,uchar*p){uchari;SelectScreen(screen);Set_page(page);//写上半页:16*8Set_column(column*16);//控制列for(i=0;i<16;i++)//控制16列的数据输出{write_LCD_data(p[i]);//汉字的上半部分}Set_page(page+1);//写下半页:16*8Set_column(column*16);//控制列for(i=0;i<16;i++

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。