Electronics 板


LINE

来自书本范例~ 书名:单晶片MCS-51与C语言入门实习 此程式有做过实验~可以正常动作! //************** LCD1.C ********************************** //动作:由LCD显示两行文字,令其闪烁或移位 // P35=RS , P36=R/W ,P37=EN ,P1=DATA_BUS //********************************************************** #include <AT89X51.h> char code Table1[] = "12345678901234567890"; //第一行列表字元 char code Table2[] = "ABCDEFGHIJKLMNOPQRST"; //第二行列表字元 sbit RS=0xb5; //P35=RS=0指令暂存器,RS=1资料暂存器 sbit RW=0xb6; //P36=RW=1读取,RW=0写入 sbit EN=0xb7; //P37=EN=0禁能LCD,EN=1致能LCD sfr DATA_BUS=0x90; //DATA bus=P1 void Reset_LCD(void); void Delay(unsigned int dly); void LCD_Cmd(unsigned char comm); void Send_Data(char Data); void main(void) { int i; P1=0; Reset_LCD(); //重置及清除LCD LCD_Cmd(0x80); //游标由第一行开始显示 for(i=0 ; i< 20 ; i++) Send_Data(Table1[i]); //读取列表20字送到LCD显示 LCD_Cmd(0xC0); //游标由第二行开始显示 for(i=0 ; i< 20 ; i++) Send_Data(Table2[i]); //读取列表20字送到LCD显示 loop: LCD_Cmd(0x08); Delay(60000); //D=0关闭显示器 LCD_Cmd(0x0c); Delay(60000); //D=1开启显示器 //LCD_Cmd(0x1c); Delay(60000); //SC=1及RL=1显示幕右移? //LCD_Cmd(0x18); Delay(60000); //SC=1及RL=0显示幕左移 goto loop; } void Reset_LCD(void) //LCD的启始程式 { LCD_Cmd(0x38); //DL=1:8bit传输,N=1:显示2行,F=0:5*7字型 LCD_Cmd(0x0c); //D=1:显示幕ON,C=0:不显示游标,B=0:游标不闪烁 LCD_Cmd(0x06); //I/D=1:显示完游标右移,S=0:游标移位禁能 LCD_Cmd(0x01); //清除显示幕 LCD_Cmd(0x02); //游标回原位 } void Send_Data(char Data) //传送资料到LCD { DATA_BUS=Data; //资料送到BUS RS=1;RW=0;EN=1; //资料到LCD内 Delay(60); EN=0; //禁能LCD } void LCD_Cmd(unsigned char comm) //传送命令到LCD { DATA_BUS=comm; //命令送到BUS RS=0;RW=0;EN=1; //命令到LCD内 Delay(60); EN=0; //禁能LCD } void Delay(unsigned int dly) //延时函数 { while(dly > 0) dly --; } -------------------------------------------------------------------- ※ 引述《submarines ()》之铭言: : 最近才刚开始学51… : 写到LCD时照着范例打只能显示一行而已 : 我需要显示两行 : 但程式怎麽改就是无法呼叫第二行 : 以下附的是显示一行的程式… : 希望在这里的高手能帮我解决一下…thanks : #include "AT89X51.H" : #define RS P2_0 : #define RW P2_1 : #define Enable P2_2 : char one=0; : char zero=0; : void DELAY(int zzz) : { : int d; : for(d=zzz;d>0;d--); : } : void CheckBusy(void) : { : char i=0x80; : while(i&0x80) : { : RS=0; : RW=1; : Enable=1; : i=P3; : Enable=0; : DELAY(250); : } : } : void WriteData(char i) : { : RS=1; : RW=0; : Enable=1; : P3=i; : Enable=0; : CheckBusy(); : } : void WriteString(count,MSG) : char count; : char MSG[]; : { : char i; : for(i=0;i<count;i++) : WriteData(MSG[i]); : } : void WriteIns(char instruction) : { : RS=0; : RW=0; : Enable=1; : P3=instruction; : Enable=0; : CheckBusy(); : } : void InitialLCD(void) : { : WriteIns(0x38); : WriteIns(0x08); : WriteIns(0x01); : WriteIns(0x0e); : WriteIns(0x06); : } : void main() : { : char MSG0[]="FIRLAB"; : InitialLCD(); : WriteString(6,MSG0); : while(1); : } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.117.4







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl 或 站内搜寻

TOP