標(biāo)題: LCD1602簡(jiǎn)單顯示仿真實(shí)驗(yàn) [打印本頁(yè)]

作者: abuMoo    時(shí)間: 2018-7-12 18:42
標(biāo)題: LCD1602簡(jiǎn)單顯示仿真實(shí)驗(yàn)
一開(kāi)始學(xué)習(xí)的時(shí)候 仿真的時(shí)候1602只亮但是不顯示字符 后來(lái)發(fā)現(xiàn)。。
顯示程序那里需要注意一下 不然仿真會(huì)出問(wèn)題 下面有說(shuō)明

實(shí)驗(yàn):用lcd0602顯示任意英文或數(shù)字.

程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrw=P2^5;  //讀寫(xiě)端   RW=1,讀;RW=0,寫(xiě)
sbit lcdrs=P2^6;    //寄存器選擇(RS=0,命令寄存器;RS=1,數(shù)據(jù)寄存器
sbit lcden=P2^7;    //使能端
uchar tab[]={"      EDC"};
uchar tab1[]={"  Edison Chen"};//啊這個(gè)引號(hào)里隨便你想寫(xiě)什么都行

void delay(uint x)     //延時(shí)
{
uint i,j;
  for(i=0;i>0;i++)
  for(j=110;j>0;j++);
}
void write_com(uchar cmd)  //寫(xiě)入指令到LCD
{
lcdrw=0;
lcden=0;
lcdrs=0;   
P0=cmd;              //將指令從P0口傳給1602
delay(2);
lcden=1;
delay(2);
lcden=0;
}
void write_data(uchar date)                //寫(xiě)入字符顯示數(shù)據(jù)到LCD
{
lcdrw=0;
lcden=0;
lcdrs=1;
P0=date;
delay(2);
lcden=1;
delay(2);
lcden=0;
}
void init()
{
write_com(0x38);     //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
delay(1);
write_com(0x06);     //移動(dòng)光標(biāo)
delay(1);
write_com(0x0c);     //顯示開(kāi),關(guān)光標(biāo)
delay(1);
write_com(0x01);     //清除LCD的顯示內(nèi)容
delay(1);
}
void lcd_POS(uchar pos)                    //設(shè)定顯示位置
{
write_com(0x80|pos);            //數(shù)據(jù)指針=80+地址變量  “|”為“按位或”
}
void show_string(uchar *str)            //顯示子程序  (這個(gè)真的很方便)
{
while(*str!='\0')                //只要沒(méi)有寫(xiě)到結(jié)束標(biāo)志,就繼續(xù)寫(xiě)(注意:這里不加分號(hào) 加了分號(hào)LCD沒(méi)有顯示
write_data(*str++);              //將字符常量寫(xiě)入LCD,并指向下一個(gè)字符
}
void main()
{
init();
while(1)
{
  lcd_POS(0);             //第一行第一列開(kāi)始顯示
  show_string(tab);        //將tab數(shù)組字符串寫(xiě)入LCD顯示
  delay(5);   
  lcd_POS(0x40);              //第二行第一列開(kāi)始顯示
  show_string(tab1);

}


LCD0602簡(jiǎn)單顯示.png (48.08 KB, 下載次數(shù): 158)

LCD0602簡(jiǎn)單顯示.png

作者: 904884181    時(shí)間: 2019-5-20 17:05
還是沒(méi)有顯示啊
作者: 積極向前    時(shí)間: 2019-10-9 17:53
這個(gè)程序的延時(shí)程序處有點(diǎn)問(wèn)題,不知是樓主寫(xiě)錯(cuò)還是上傳的時(shí)候搞錯(cuò)的
原程序:void delay(uint x)     //延時(shí)
{
uint i,j;
  for(i=0;i>0;i++)
  for(j=110;j>0;j++);
}
修改為:void delay(uint x)     //延時(shí)
{
uint i,j;
  for(i=0;i<x;i++)
  for(j=110;j>0;j--);
}
這樣就可以了
作者: 5508    時(shí)間: 2020-6-17 10:19
怎么下載
作者: SweetSins    時(shí)間: 2020-12-1 16:30
仿真軟件用的什么

作者: 米花卷    時(shí)間: 2021-3-12 22:56
按樓上的改了延遲,一開(kāi)始仿真都沒(méi)通過(guò)1602.c(69): error C141: syntax error near '',最后一行錯(cuò)誤141,少一個(gè)},然后運(yùn)行了,速度很慢,以為沒(méi)運(yùn)行呢,點(diǎn)了個(gè)煙才出來(lái)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1