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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Proteus中加了排阻LCD1602屏幕不亮

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 shurmin 于 2018-12-3 21:56 編輯

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^2;
sbit K2=P3^3;
sbit beep=P3^7;
sbit rs=P2^0;
sbit rw=P2^1;
sbit ep=P2^2;
uchar i;
uchar song_Index=0,Tone_Index=0;
uchar *song_Tone,*song_Time;
uchar *discode;
uchar code dis1[]={" Yuan Yin Wo "};//the name of the first song
uchar code dis2[]={" Cong Ci Yi Hou "};//the name of the second song
uchar code dis3[]={" 203 "};//the name of the third song
uchar code dis4[]={" 203 "};
uchar code dis5[]={" 203 "};
uchar code dis[]={"K1:Down  K2:Up"};
uint code Tone_tab[]={
        62018,62401,62491,62895,63184,63441,63506,
        63773,63965,64137,64215,64360,64488,64603,
        64654,64751,64836,64876,64948,65012,65067,65535};
uchar code song1_Tone[]={
  14,14,14,14,13,12,
        12,14,13,12,12,14,13,12,
        12,11,11,11,11,12,9,9,14,13,12,
        12,14,13,12,12,11,11,12,12,16,16,
        16,16,16,14,13,12,
        12,14,13,12,12,14,13,12,
        12,16,15,15,14,12,12,12,12,11,11,12,
        12,16,16,12,11,11,12,12,16,16,15,15,
        15,14,12,12,12,12,0xff};
uchar code song1_Time[]={
        8,8,8,4,2,2,
        8,4,2,2,4,2,1,1,
        1,1,1,1,1,2,1,4,2,1,1,
        4,2,1,1,1,1,1,1,1,2,1,
        8,8,8,2,1,1,
        4,2,1,1,4,2,1,1,
        2,1,1,1,1,1,1,4,1,1,1,1,
        1,2,1,1,1,1,1,1,2,1,2,2,
        2,1,1,8,8,8,0xff};
uchar code song2_Tone[]={
        7,7,7,5,7,
        9,8,9,8,9,12,11,9,
        8,9,9,5,7,
        9,8,9,11,8,9,8,8,8,7,
        7,9,9,7,7,8,
        9,8,9,8,9,12,13,14,
        13,13,11,11,8,9,9,7,
        5,7,9,8,8,6,6,4,
        5,5,5,5,0xff};
uchar code song2_Time[]={
        8,8,8,2,2,
        2,2,2,2,2,2,2,2,
        4,4,4,2,2,
        2,2,2,2,1,1,1,1,2,2,
        2,2,4,4,2,2,
        2,2,2,2,2,2,2,2,
        2,1,1,2,2,4,2,2,
        4,2,2,2,1,1,2,2,
        4,4,4,4,0xff};
uchar code song3_Tone[]={
  7,9,8,7,9,
        5,7,6,7,8,
        4,9,8,7,9,
        8,7,7,7,7,5,9,9,
        9,9,8,7,9,
        5,7,6,7,8,
        9,11,12,9,9,8,7,
        7,7,7,7,5,6,6,7,
        7,7,0xff};
uchar code song3_Time[]={
  8,1,1,1,1,
        8,1,1,1,1,
        8,1,1,1,1,
        1,1,1,1,1,1,1,1,
        8,1,1,1,1,
        8,1,1,1,1,
        1,1,1,1,1,1,4,
        1,1,1,1,1,1,1,1,
        8,8,0xff};
uchar code song4_Tone[]={
  14,14,14,14,13,12,
        12,14,13,12,12,14,13,12,
        12,11,11,11,11,12,9,9,14,13,12,
        12,14,13,12,12,11,11,12,12,16,16,
        16,16,16,14,13,12,
        12,14,13,12,12,14,13,12,
        12,16,15,15,14,12,12,12,12,11,11,12,
        12,16,16,12,11,11,12,12,16,16,15,15,
        15,14,12,12,12,12,0xff};
uchar code song4_Time[]={
        8,8,8,4,2,2,
        8,4,2,2,4,2,1,1,
        1,1,1,1,1,2,1,4,2,1,1,
        4,2,1,1,1,1,1,1,1,2,1,
        8,8,8,2,1,1,
        4,2,1,1,4,2,1,1,
        2,1,1,1,1,1,1,4,1,1,1,1,
        1,2,1,1,1,1,1,1,2,1,2,2,
        2,1,1,8,8,8,0xff};
uchar code song5_Tone[]={
  14,14,14,14,13,12,
        12,14,13,12,12,14,13,12,
        12,11,11,11,11,12,9,9,14,13,12,
        12,14,13,12,12,11,11,12,12,16,16,
        16,16,16,14,13,12,
        12,14,13,12,12,14,13,12,
        12,16,15,15,14,12,12,12,12,11,11,12,
        12,16,16,12,11,11,12,12,16,16,15,15,
        15,14,12,12,12,12,0xff};
uchar code song5_Time[]={
        8,8,8,4,2,2,
        8,4,2,2,4,2,1,1,
        1,1,1,1,1,2,1,4,2,1,1,
        4,2,1,1,1,1,1,1,1,2,1,
        8,8,8,2,1,1,
        4,2,1,1,4,2,1,1,
        2,1,1,1,1,1,1,4,1,1,1,1,
        1,2,1,1,1,1,1,1,2,1,2,2,
        2,1,1,8,8,8,0xff};
void delayms(uint ms)
{
        uchar a;
        while(ms--)
        {
                for(a=230;a>0;a--);
        }
}
uchar Busy_Check(void)
{
        uchar LCD_Status;
        rs=0;
        rw=1;
        ep=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        LCD_Status=P0&0x80;
        ep=0;
        return LCD_Status;
}
void lcd_wcmd(uchar cmd)
{
        while(Busy_Check());
        rs=0;
        rw=0;
        ep=0;
        _nop_();
        _nop_();
        P0=cmd;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep=1;
  _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep=0;
}
void lcd_pos(uchar pos)
{
        lcd_wcmd(pos|0x80);
}
void lcd_wdat(uchar dat)
{
        while(Busy_Check());
        rs=1;
        rw=0;
        ep=0;
        P0=dat;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep=1;
  _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep=0;
}
void lcd_init(void)
{
        lcd_wcmd(0x38);
        delayms(1);
        lcd_wcmd(0x0c);
        delayms(1);
        lcd_wcmd(0x06);
        delayms(1);
        lcd_wcmd(0x01);
        delayms(1);
}
void int0() interrupt 0
{
        delayms(100);
        if(INT0==0)
        {
                TR0=0;
                if(song_Index>5)
                {
                        song_Index=5;
                }
                else
                {
                        song_Index ++;
                }
                if(song_Index==1)
                {
                        song_Tone=song2_Tone;
                        song_Time=song2_Time;
                        discode=dis2;
                }
                if(song_Index==2)
                {
                        song_Tone=song3_Tone;
                        song_Time=song3_Time;
                        discode=dis3;
                }
                if(song_Index==3)
                {
                        song_Tone=song4_Tone;
                        song_Time=song4_Time;
                        discode=dis4;
                }
                if(song_Index==4)
                {
                        song_Tone=song5_Tone;
                        song_Time=song5_Time;
                        discode=dis5;
                }
                if(song_Index==5)
                {
                        song_Tone=song1_Tone;
                        song_Time=song1_Time;
                        discode=dis1;
                        song_Index=0;
                }
                TR0=1;
                i=0;
        }
}
void int1() interrupt 2
{
        delayms(100);
        if(INT1==0)
        {
                TR0=0;
                if(song_Index<1)
                {
                        song_Index=0;
                }
                else
                {
                        song_Index --;
                }
                if(song_Index==1)
                {
                        song_Tone=song2_Tone;
                        song_Time=song2_Time;
                        discode=dis2;
                }
                if(song_Index==2)
                {
                        song_Tone=song3_Tone;
                        song_Time=song3_Time;
                        discode=dis3;
                }
                if(song_Index==3)
                {
                        song_Tone=song4_Tone;
                        song_Time=song4_Time;
                        discode=dis4;
                }
                        if(song_Index==4)
                {
                        song_Tone=song5_Tone;
                        song_Time=song5_Time;
                        discode=dis5;
                }
                if(song_Index==5)
                {
                        song_Tone=song1_Tone;
                        song_Time=song1_Time;
                        discode=dis1;
                        song_Index=0;
                }
                TR0=1;
                i=0;
        }
}
void Timer0() interrupt 1
{
        TH0=Tone_tab[Tone_Index]/256;
        TL0=Tone_tab[Tone_Index]%256;
        beep=~beep;
}
void LCD_disp(void)
{
        uchar i;
        lcd_pos(0);
        i=0;
        while(discode!='\0')
        {
                lcd_wdat(discode);
                i++;
        }
        lcd_pos(0x40);
        i=0;
        while(dis!='\0')
        {
                lcd_wdat(dis);
                i++;
        }
}
void int_init(void)
{
        TMOD=0x01;
        ET0=1;
        EX0=1;
        IT0=1;
        EX1=1;
        IT1=1;
        EA=1;
        TR0=0;
}
void main(void)
{
        int_init();
        song_Tone=song1_Tone;
        song_Time=song1_Time;
        discode=dis1;
        lcd_init();
        while(1);
        {
                LCD_disp();
                Tone_Index=song_Tone;
                if(Tone_Index==0xFF)
                {
                        i=0;
                        TR0=0;
                }
                TR0=1;
                delayms(song_Time[Tone_Index]*60);
                TR0=0;
                i++;
        }
}
               
                       
                       
                       

QQ圖片20181202233035.png (39.94 KB, 下載次數: 38)

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

使用道具 舉報

沙發
ID:94031 發表于 2018-12-3 10:19 | 只看該作者
你給 LCD 2腳VDD應該加上+5v電源
回復

使用道具 舉報

板凳
ID:421499 發表于 2018-12-3 17:19 | 只看該作者
電平跳動都沒有,你再檢查一下程序
回復

使用道具 舉報

地板
ID:438041 發表于 2018-12-3 21:33 | 只看該作者
xuyaqi 發表于 2018-12-3 10:19
你給 LCD 2腳VDD應該加上+5v電源

還是沒有字符

QQ圖片20181203213307.png (8.1 KB, 下載次數: 31)

QQ圖片20181203213307.png
回復

使用道具 舉報

5#
ID:60469 發表于 2018-12-3 21:41 | 只看該作者

給 LCD 2腳VDD應該加上5v電源
回復

使用道具 舉報

6#
ID:337883 發表于 2018-12-3 21:47 | 只看該作者
我也有同樣問題,同求
回復

使用道具 舉報

7#
ID:438041 發表于 2018-12-3 21:48 | 只看該作者
xuyaqi 發表于 2018-12-3 10:19
你給 LCD 2腳VDD應該加上+5v電源

而且如果加了電源以后,3腳的燈不亮了,說明3腳不運行了
回復

使用道具 舉報

8#
ID:438041 發表于 2018-12-3 21:56 | 只看該作者
哈嘍哈 發表于 2018-12-3 17:19
電平跳動都沒有,你再檢查一下程序

剛剛檢查了一下,確實有點錯誤,但是還是不能讓電平跳動
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产精品一区二区 | 精品亚洲国产成av人片传媒 | 日本a网站 | 黄色av一区| 国产毛片久久久久久久久春天 | 免费毛片网 | 欧美在线a | 欧美一级免费观看 | 毛片视频观看 | 3级毛片 | 国产精品特级毛片一区二区三区 | 91在线导航 | 日韩在线播放视频 | 成人午夜免费网站 | 亚洲国产一区二区视频 | 色性av| 九九久久精品视频 | 日日爱夜夜操 | 中文字幕亚洲视频 | 国产精品资源在线 | 亚洲a在线观看 | 国产av毛片 | 国产精品久久久久久久岛一牛影视 | 亚洲毛片 | 国产一级视频 | 国产福利网站 | 91在线视频观看 | 成人在线视频一区二区三区 | 国产一区二区在线免费视频 | 欧美一区二区三区在线观看视频 | 精品日韩 | 日韩精品一区二区三区久久 | 麻豆a级片 | 韩日有码 | 日本视频免费 | 国产精品视频偷伦精品视频 | 在线观看成年人视频 | 亚洲日韩中文字幕一区 | 亚洲91精品 | 久久99深爱久久99精品 | 欧美成人猛片aaaaaaa |