这个是在1602上显示 “年月日” 中文的程序,希望大神不要见笑,还有,本小白建了个51单片机学习交流群:26661550,希望能和大家一起学习交流
完整代码下载:
1602上显示汉字.rar
(908 Bytes, 下载次数: 22)
- /*************************************
- * 程序功能:1602显示汉字 *
- * *
- * 欢迎加入51单片机学习交流群26661550 *
- * 一起学习共同进步 ^-^ *
- *************************************/
- #include <reg52.H>
- #define uchar unsigned char
- #define uint unsigned int
- sbit lcdrs=P2^6;
- sbit lcdrw=P2^5;
- sbit lcden=P2^7;
- uchar code table[]={
- 0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//一
- 0x00,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,//二
- 0x00,0x1F,0x00,0x0E,0x00,0x1F,0x00,0x00,//三
- 0x02,0x04,0x0F,0x12,0x0F,0x0A,0x1F,0x02,//年
- 0x0F,0x09,0x0F,0x09,0x0F,0x09,0x09,0x11,//月
- 0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00,//日
- 0x00,0x00,0x00,0x0A,0x15,0x0A,0x04,0x00,//心型
- 0x00,0x04,0x15,0x0E,0x1F,0x0E,0x11,0x00//坦克
- };
- uchar code table1[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //自定义字符数据地址
- uchar code table2[]="2661550";
- void waitready() //检查lcd是否在忙
- {
- unsigned char sta;
- P0= 0xff;
- lcdrs=0;
- lcdrw=1;
- do{
- lcden=1;
- sta=P0;
- lcden=0;
- }
- while (sta&0x80);
- }
- void write_com(uchar com)
- {
- waitready();
- lcdrs=0;
- lcdrw=0;
- lcden=0;
- P0=com;
- lcden=1;
- lcden=0;
- }
- void write_date(uchar date)
- {
- waitready();
- lcdrs=1;
- lcdrw=0;
- P0=date;
- lcden=1;
- lcden=0;
- }
- void init_lcd1602()
- {
- write_com(0x01); //清屏
- write_com(0x38); //功能设置
- write_com(0x0c); //显示设置
- write_com(0x06); //输入方式从左到右
- }
- void main()
- {
- uchar i;
- init_lcd1602();
- while(1)
- {
- write_com(0x40); //开始写入你要显示的自定义字符、汉字代码
- for(i=0;i<64;i++)
- {
- write_date(table[i]);
- }
- write_com(0x80); //从第一行第一列开始显示
- for(i=0;i<8;i++) //显示自定义字符
- {
- write_date(table1[i]);
- }
- write_com(0xc0); //第二行地址 显示群号:26661550
- for(i=0;i<7;i++)
- {
- write_date(table2[i]);
- }
- }
- }
复制代码
|