#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P2^5;
sbit du=P2^6;
sbit we=P2^7;
void delay(uint n) //n为1 延时1ms
{
uint i,j;
for(i=0;i<n;i++)
for(j=0;j<121;j++);
}
void write_com_Data(uchar n,uchar com_Data) //n为0写指令,n为1写数据
{
RW=0;
if(n==0)
RS=0;
else
RS=1;
P0=com_Data;
delay(5);
EN=1;
delay(5);
EN=0;
}
void init_1602() //1602初始化函数
{
du=0; //关闭数码管
we=0;
EN=0;
delay(5);
write_com_Data(0,0x38);//7x5点阵
write_com_Data(0,0x0f);//开显示,光标闪烁
write_com_Data(0,0x06);//地址自动加一,不移动
write_com_Data(0,1); //清屏
}
void main()
{
// while(1)
init_1602();
}
为什么注释掉while(1) 蜂鸣器一直响,加上了就不响了,蜂鸣器接P2^3,低电平响,我没操作P2^3啊,麻烦帮看看吧
|