久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4079|回復: 12
打印 上一主題 下一主題
收起左側

單片機程序做好以后仿真也可以,但是下載到開發板以后lcd第二行不亮,沒有反應!

[復制鏈接]
跳轉到指定樓層
樓主
LCD1602A第一行顯示信息加學號滾動顯示,第二行顯示倒計時40s,晶振11.0952MHz,程序似乎是沒什么問題,proteus仿真也是好的,但是我下載到開發板以后就只有第一行的滾動顯示,而沒有第二行的倒計時,為什么啊?用的是YL-51單片機,請大家看看我的程序和仿真圖。我是新手,好多地方都不太懂,求指教!

單片機源程序如下:
#include <REGX51.H>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P3^5;
sbit RW=P3^6;
sbit EN=P3^4;
unsigned char i,q=0,w=0,e=0,x=0,c=40;
unsigned char xuehao1[]="LGL1605230139";
unsigned char xuehao2[]="ZCY1605230140";
unsigned char xuehao3[]="SGJ1605230126";
unsigned char xuehao4[]="XWQ1605230124";
unsigned char code num[]={0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39};

void delay(int n)
{
int j,k;
for(k=0;k<n;k++)
{
  for(j=0;j<200;j++);
}
}
void timer0()
{
TMOD=0X01;
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
EA=1;
ET0=1;
TR0=1;
}
void LCD1602_write_cmd(unsigned char cmd)
{
P0=cmd;
RS=0;
RW=0;
EN=1;
EN=0;
delay(10);

}
void LCD1602_write_Data(unsigned char Data)
{
P0=Data;
RS=1;
RW=0;
EN=1;
EN=0;
delay(10);

}
void LCD1602_init()
{
    LCD1602_write_cmd(0x38);
    LCD1602_write_cmd(0x0C);
    LCD1602_write_cmd(0x06);
    LCD1602_write_cmd(0x01);
}
void disp_LCD(uint c)
{
   LCD1602_write_cmd(0xC0);
   LCD1602_write_Data(num[c/10]);
   LCD1602_write_cmd(0XC1);
   LCD1602_write_Data(num[c%10]);
}
void disp_XXLCD()
{
  LCD1602_write_cmd(0X80);
  for(w=e;w<13+e;w++)

{

   LCD1602_write_Data(xuehao1[w]);

}

      e++;
          if(e>=45)

   {

         e=0;

         delay(200);

        }

      delay(60);
          }
void main()
{
  timer0();
  LCD1602_init();
  while(1)
{
   disp_XXLCD();
   disp_LCD(c);
   if(c==0)
   while(1);  
}
}
void timer() interrupt 1
{
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
x++;
if(x==100)
{
  x=0;
  c--;
}
}

這個是我的程序,另外我的這個設計,倒計時的時候好像因為前面的顯示程序需要的時間太長,后邊的倒計時不是一秒,而是一秒多,這個問題該怎么解決呢?最重要的是怎么解決開發板第二行不顯示的問題

IMG_20190617_223929.jpg (2.59 MB, 下載次數: 103)

IMG_20190617_223929.jpg

IMG_20190617_223940.jpg (3.03 MB, 下載次數: 99)

IMG_20190617_223940.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2019-6-18 08:13 | 只看該作者
先設法證明第二行全部是OK的。例如:顯示一行完整的信息。然后再找自己的原因。
回復

使用道具 舉報

板凳
ID:332444 發表于 2019-6-18 09:16 | 只看該作者
void main()
{
   timer0();
   LCD1602_init();
   while(1)
{
    disp_XXLCD();
    disp_LCD(c);
    if(c==0)
    while(1);  //**************到此死循環了
}
}
回復

使用道具 舉報

地板
ID:560111 發表于 2019-6-18 09:50 | 只看該作者
yzwzfyz 發表于 2019-6-18 08:13
先設法證明第二行全部是OK的。例如:顯示一行完整的信息。然后再找自己的原因。

我試了一下把前面的信息顯示關掉,讓它在第二行只顯示一個1,可是開發板上的第二行還是沒反應,背光都不亮.這是怎么回事啊,在proteus里頭都是好著的啊
回復

使用道具 舉報

5#
ID:560111 發表于 2019-6-18 10:28 | 只看該作者
xianfajushi 發表于 2019-6-18 09:16
void main()
{
   timer0();

這個是倒計時完畢就讓它停止了啊
回復

使用道具 舉報

6#
ID:332444 發表于 2019-6-18 13:10 | 只看該作者
檢查液晶顯示器引腳是否存在接觸問題,或拿別處試看是否正常
程序也一樣在別的板子上試看
把第一行改發第二行察看液晶是否有問題
回復

使用道具 舉報

7#
ID:842806 發表于 2020-11-12 21:19 | 只看該作者
是程序的問題,你可能有個時候把輸入數據中的“”RS”和“RW”同時改成了0,也就是輸入數據變成了輸入指令
回復

使用道具 舉報

8#
ID:88256 發表于 2020-11-12 23:46 | 只看該作者
對C語言不熟悉,num是強制類型轉換的?把 disp_LCD 函數改成下面看看效果
void disp_LCD(uint c)
{
   LCD1602_write_cmd(0xC0);
   LCD1602_write_Data(0X30+c/10);
   LCD1602_write_cmd(0XC1);
   LCD1602_write_Data(0X30+c%10);
}
回復

使用道具 舉報

9#
ID:314908 發表于 2020-11-13 20:45 | 只看該作者
#include <REGX51.H>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char

sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^2;
#define Port  P2

unsigned char i,q=0,w=0,e=0,x=0,c=41;
unsigned char xuehao1[]="LGL1605230139   ";
unsigned char xuehao2[]="ZCY1605230140   ";
unsigned char xuehao3[]="SGJ1605230126   ";
unsigned char xuehao4[]="                ";
unsigned char code num[]="0123456789";

uchar flag=0;

void delay(int n)

回復

使用道具 舉報

10#
ID:314908 發表于 2020-11-13 20:49 | 只看該作者
        在初始化1602里加入
RW=0;        ///////////新加入的兩條
        EN=0;  ////////////// 新加入的兩條
即可顯示兩行
去掉就只顯示一行了
回復

使用道具 舉報

11#
ID:314908 發表于 2020-11-13 21:03 | 只看該作者
修改后的顯示

IMG_20201113_205340.jpg (2.29 MB, 下載次數: 94)

IMG_20201113_205340.jpg
回復

使用道具 舉報

12#
ID:314908 發表于 2020-11-13 21:08 | 只看該作者
1秒不準,是因為你的延時函數延時太長,沒正在利用定時器
回復

使用道具 舉報

13#
ID:314908 發表于 2020-11-13 21:30 | 只看該作者
沒正確利用
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文一区二区视频 | 91色视频在线观看 | 午夜激情影院 | 精品一区二区在线观看 | 欧美日韩精品区 | 18性欧美| 久久国产精品精品国产色婷婷 | 一级黄色片在线免费观看 | 精品视频在线播放 | 在线免费国产视频 | 狠狠操电影| 国产精品视频久久 | 国产成人免费视频 | 夜夜操操操 | 久久99精品久久久久久青青日本 | 欧美在线视频观看 | 日韩一区二区三区视频 | 在线日韩 | 久久精品天堂 | 日韩国产在线观看 | 欧美久久精品一级黑人c片 91免费在线视频 | 国产十日韩十欧美 | 精品久久影院 | 欧美性猛片aaaaaaa做受 | 亚洲免费av一区 | 神马久久久久久久久久 | 日韩国产一区 | 91精品国产综合久久精品 | 成人欧美一区二区三区黑人孕妇 | 美女视频网站久久 | 亚洲h视频| 免费观看黄色片视频 | av一区二区三区在线观看 | 99久久精品视频免费 | 精品三级| 久久这里有精品 | 欧美一区二区三区电影 | 日韩三| 99热热99| 久久网日本| 韩国毛片一区二区三区 |