ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:15.86KB ,
资源ID:10082743      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10082743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机用12864显示唐诗.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机用12864显示唐诗.docx

1、51单片机用12864显示唐诗51单片机用12864显示唐诗 51单片机用12864显示唐诗 #include#include#include#includenn.h#define uchar unsigned char#define uint int#define LCD_databus P0 /LCD12864的8位数据口sbit RS=P22; /RS为0-命令;1-数据 sbit RW=P21; /RW为1-写;0-读 sbit EN=P20; /使能端 sbit CS1=P24; /片选1低电平有效,控制左半屏 sbit CS2=P23; /片选1低电平有效,控制右半屏 sbit k

2、ey1=P30;sbit key2=P31;void delay_ms(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void delay(uint i) while(-i);void Read_busy()/读“忙”函数-数据线的最高位DB71则busy P0=0x00; RS=0; RW=1; EN=1; while(P0 & 0x80); EN=0;void write_LCD_command(uchar value) /写命令函数 Read_busy(); /对LCD的每次读写都要读忙 RS=0; /选择命令 RW=0; /读操作

3、 LCD_databus=value; EN=1; /EN由1-0锁存有效数据 _nop_(); _nop_(); EN=0;void write_LCD_data(uchar value)/写数据函数 Read_busy(); RS=1; /选择数据 RW=0; LCD_databus=value; EN=1; /EN由1-0锁存有效数据 _nop_(); _nop_(); EN=0;void Set_page(uchar page) /设置“页”LCD12864共8页,一页是8行点阵点 page=0xb8|page; /页的首地址为0xB8 write_LCD_command(page);

4、void Set_line(uchar startline) /设置显示的起始行 startline=0xC0|startline; /起始行地址为0xC0 write_LCD_command(startline); /设置从哪行开始:共0-63;一般从0 行开始显示void Set_column(uchar column) /设置显示的列 column=column &0x3f; /列的最大值为64 column= 0x40|column; /列的首地址为0x40 write_LCD_command(column); /规定显示的列的位置 void SetOnOff(uchar onoff)

5、 /显示开关函数:0x3E是关显示,0x3F是开显示 onoff=0x3e|onoff; /onoff:1-开显示;0-关显示 write_LCD_command(onoff);void SelectScreen(uchar screen) /选择屏幕 switch(screen) case 0: CS1=0;CS2=0;break; /全屏 case 1: CS1=0;CS2=1;break;/左半屏 case 2: CS1=1;CS2=0;break;/右半屏 default:break; void ClearScreen(uchar screen) /清屏函数 uchar i,j; Se

6、lectScreen(screen); /0-全屏;1-左半屏;2-右半屏 for(i=0;i8;i+) /控制页数0-7,共8页 Set_page(i); Set_column(0); for(j=0;j64;j+) /控制列数0-63,共64列 write_LCD_data(0x00); /写入0,地址指针自加1 void init_LCD() /LCD的初始化 SetOnOff(1); /开显示 SelectScreen(0); ClearScreen(0); /清屏 Set_line(0); /开始行:0void Display_HZ(uchar screen,uchar page,u

7、char column,uchar *p) uchar i; SelectScreen(screen); Set_page(page); /写上半页:16*8 Set_column(column*16); /控制列 for(i=0;i16;i+) /控制16列的数据输出 write_LCD_data(pi); /汉字的上半部分 Set_page(page+1); /写下半页:16*8 Set_column(column*16); /控制列 for(i=0;i16;i+) /控制16列的数据输出 write_LCD_data(pi+16); /汉字的下半部分 void disp1() Clear

8、Screen(0); Display_HZ(1,0,0,zi);/guanjian zhizheng Display_HZ(1,0,1,yun);/guanjian zhizheng Display_HZ(1,0,2,san);/guanjian zhizheng Display_HZ(1,0,3,hao);/guanjian zhizheng Display_HZ(1,2,0,sheng);/guanjian zhizheng Display_HZ(1,2,1,dang);/guanjian zhizheng Display_HZ(1,2,2,zuo);/guanjian zhizheng

9、Display_HZ(1,2,3,ren);/guanjian zhizheng Display_HZ(2,2,0,jie);/guanjian zhizheng Display_HZ(1,4,0,si);/guanjian zhizheng Display_HZ(1,4,1,yi);/guanjian zhizheng Display_HZ(1,4,2,wei);/guanjian zhizheng Display_HZ(1,4,3,gui);/guanjian zhizheng Display_HZ(2,4,0,xiong);/guanjian zhizheng Display_HZ(1,

10、6,0,zhi);/guanjian zhizheng Display_HZ(1,6,1,jin);/guanjian zhizheng Display_HZ(1,6,2,sii);/guanjian zhizheng Display_HZ(1,6,3,xiang);/guanjian zhizheng Display_HZ(2,6,0,yu);/ while(1);void disp2() ClearScreen(0); Display_HZ(1,0,0,bu);/guanjian zhizheng Display_HZ(1,0,1,ken);/guanjian zhizheng Displ

11、ay_HZ(1,0,2,guo);/guanjian zhizheng Display_HZ(1,0,3,jiang);/guanjian zhizheng Display_HZ(2,0,0,dong);/guanjian zhizheng void Key1() if(key1=0) delay_ms(10); if(key1=0) while(!key1) while(!key1) disp2(); void Key2() if(key2=0) delay_ms(10); if(key2=0) while(!key2) while(!key2) disp1(); void main() init_LCD(); /初始12864 ClearScreen(0); /清屏 Set_line(0); /显示开始行 disp1(); while(1) Key1(); Key2();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1