找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2311|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

不能實現(xiàn)復(fù)位而且蜂鳴器也不能響怎么回事??求教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:191774 發(fā)表于 2017-4-25 13:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>        //頭文件
#define uchar unsigned char    //預(yù)定義
#define uint unsigned int
#define lcd_dat  P0
sbit lcdrs=P2^6;     //1602的數(shù)據(jù)/指令選擇控制線
sbit lcdrw=P2^5;      //1602的讀寫控制線
sbit lcden=P2^4;      //1602的使能控制線
sbit yihao=P2^0;        //一號病房按鍵
sbit erhao=P2^1;
sbit sanhao=P2^2;
sbit sihao=P2^3;
uchar table1[]="Number";
uchar table2[]="1234";
void delay(uint z)       //延時子程序
{
  uint x,y;
  for(x=z;x>0;x--)   for(y=110;y>0;y--);
}
void write_com(uchar com)    //寫命令子程序
{  
lcdrs=0;   
lcdrw=0;     
P0=com;  
delay(5);  
lcden=1;
delay(3);
lcden=0;
}
void write_data(uchar date)     //寫數(shù)據(jù)子程序
{
lcdrs=1;   
lcdrw=0;     
P0=date;   
delay(5);  
lcden=1;  
delay(3);  
lcden=0;
}
void init()              //1602初始化子程序
{
write_com(0x38);//顯示模式設(shè)置。        
delay(5);
write_com(0x0c);//關(guān)光標(biāo),不閃爍        
delay(5);  
write_com(0x06);  //顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移位         
delay(5);
write_com(0x01); //清屏
delay(5); }
void Number()                //顯示Number子程序
{uchar m;
write_com(0x80);
       for(m=0;m<6;m++)     //將table[]中的數(shù)據(jù)依次寫入1602顯示     
{  
            write_data(table1[m]);                        
delay(200);
}
}
void main()            //主函數(shù)  
{
unsigned char FLAG;   //FLAG的值為P2口的值  
init();
do
{  
   FLAG=P2;
switch(FLAG&0X0f)      //屏蔽P2口高四位
{
case 0X0E:
       Number();
       write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位               
           write_data(table2[0]);                  
delay(200);     
break;
case 0X0D:
        Number();
        write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位               
                write_data(table2[1]);                       
        delay(200);           
        break;
case 0X0B:
       Number();
       write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位               
           write_data(table2[2]);                        
       delay(200);      
      break;
case 0X07:      
       Number();
       write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位            
           write_data(table2[3]);                       
        delay(200);            
        break;
default:
        break;   
       }   
   }
while(1);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:91114 發(fā)表于 2017-4-25 17:43 | 只看該作者
和開關(guān)串聯(lián)電阻去掉,晶振兩端電容改到10pF 到30PF之間
回復(fù)

使用道具 舉報

板凳
ID:187614 發(fā)表于 2017-4-25 18:25 | 只看該作者
不是不能復(fù)位,而系統(tǒng)就沒有啟動,C1,C2用30p就可以,R5用1K或去掉。
回復(fù)

使用道具 舉報

地板
ID:191774 發(fā)表于 2017-4-25 20:15 | 只看該作者
我照著改了可是按完還是沒效果,是不是程序也需要改呀
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表