找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2242|回复: 0
打印 上一主题 下一主题
收起左侧

LCD显示字符串

[复制链接]
跳转到指定楼层
楼主
ID:215568 发表于 2017-6-28 18:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "reg51.h"
#include"absacc.h"  
typedef unsigned char BYTE;
typedef unsigned int  WORD;

#define  wr_com  XBYTE[0xC000]   
#define  wr_data  XBYTE[0xC100]   
#define  rd_com  XBYTE[0xC200]     
#define  rd_data  XBYTE[0xC300]   

void lcd_init(void);                                    // lcd???
void write_cmd(BYTE cmd);
void write_data(BYTE dat) ;                    // ???  
void set_display_place(BYTE line,column);
void write_string_lcd(BYTE line,column,unsigned char *string);
void Delay(WORD n)
{     WORD x;
         while(n--)  
{      x=500;   while(x--);  }
}
void write_cmd(BYTE cmd)
                 {     BYTE dl;
                         do {  
                         dl=rd_com;   }
                         while((dl&0x80)!=0); //??   
                         wr_com= cmd;   
                 Delay(1); }
                 
                 void write_data(BYTE dat)
{  BYTE dl;  
         do {   dl=rd_com;   }
         while((dl&0x80)!=0); //??   
         wr_data= dat;      
                Delay(1); }

                void write_string(BYTE *s)            
                        {     while(*s != '\0')            //'\0'????????     
                                {         write_data(*s);      
                        s++;     } }
                       
                        void set_display_place(BYTE line,column) {   
                                BYTE address;   
                                if(line == 1)     {        
                                        address = 0x80 + column;
                                         }     
                        else if(line == 2)   
                        {         address = 0xc0 + column;     }   
                        write_cmd(address);          }
                       
                        void write_string_lcd(BYTE line,column,unsigned char *string) {   
                        set_display_place(line,column);   
                        write_string(string);   
                        Delay(1); }
                        void lcd_init(void)       {  
                                write_cmd(0x38);//   
                                write_cmd(0x38);//   
                                write_cmd(0x06);//  
                                write_cmd(0x0c);//
                                write_cmd(0x01);//
                                }  
void main() {
         lcd_init();      
while(1)         
        {
        write_string_lcd(1,1,"   0123456789   ");
write_string_lcd(2,1,"   ABCDEDGHIJ   ");      } }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表