51单片机用12864显示唐诗

上传人:F****n 文档编号:97796124 上传时间:2019-09-06 格式:DOC 页数:6 大小:24KB
返回 下载 相关 举报
51单片机用12864显示唐诗_第1页
第1页 / 共6页
51单片机用12864显示唐诗_第2页
第2页 / 共6页
51单片机用12864显示唐诗_第3页
第3页 / 共6页
51单片机用12864显示唐诗_第4页
第4页 / 共6页
51单片机用12864显示唐诗_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《51单片机用12864显示唐诗》由会员分享,可在线阅读,更多相关《51单片机用12864显示唐诗(6页珍藏版)》请在金锄头文库上搜索。

1、 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 key1=P30;sbit key2=P31;void del

2、ay_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则busyP0=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; /读操作 LCD_databus=value; EN=1;/EN由1-0锁存有效数据

3、 _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);void Set_line(uchar startline) /设置显示的起始行

4、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)/显示开关函数:0x3E是关显示,0x3F是开显示 onoff=0x3e|onoff;

5、 /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; SelectScreen(screen);/0-全屏;1-左半屏;2-右半屏 for(i=0;i8

6、;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,uchar column,uchar *p)uchar i;SelectScreen(screen);Set

7、_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() ClearScreen(0); Display_HZ(1,0,0,zi);/guanjian zhizheng Display_HZ(1,

8、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 Display_HZ(1,2,3,ren);/guanjian zhizheng Display_HZ(2,2,0,jie);/

9、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,6,0,zhi);/guanjian zhizheng Display_HZ(1,6,1,jin);/guanjian zhiz

10、heng 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 Display_HZ(1,0,2,guo);/guanjian zhizheng Display_HZ(1,0,3,jiang);/gua

11、njian 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();在能力与知识结构方面,要求学生应具有扎实的专业和日语语言基础,熟练掌握日语听、说、读、写、译的基本技能;了解日本社会及日本文化等方面的基本知识,熟悉日本国情,具有一定的日本人文知识及运用这些知识与日本人进行交流的能力。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号