51单片机应用程序大全

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
io=1;
delay(8);
io=0;
delay(80);//12M延时600us
io=1;
delay(8);
n=io;//
delay(50);//由于器件一般是好的,在这里就不判断。
//判断可在后返回n,判断n的值是否为零。
}
/***********写字节数据************/
void write_byte(uchar dat)
#include<AT89X51.H>
#define uint unsigned int
#define uchar unsigned char
sbit io=P3^7;
Unsigned char codesmg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7,0x3f,0x06,0x5b,
*输入:无
*输出:无
*******************************************************************************/
void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=0;i<8;i++)
void init_ds18b20(void);//初始化函数
void write_byte(uchar dat);//写一个字节
uchar read_byte(void);//读一个字节
uchar read_tmp(void);//读温度函数
void display(void);
void delay1(void);
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x69,0x5e,0x79,0x71};
unsigned char code smg_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(uint t);
init_ds18b20();
write_byte(0xcc); //跳过ROM
write_byte(0x44); //启动温度测量地址
delay1(); //给一段时间让它测量温度
for(i=0;i<8;i++)
{
io=0;
value=value>>1;//延时移位
io=1;
if(io)
value|=0x80;
delay(4);
}
return value;
}
/*******直接读出温度**************/
uchar read_tmp(void)
{
uchar a,b;
case(7):
LSA=1;LSB=1;LSC=1; break;//显示第7位
}
GPIO_DIG=DisplayData[i];//发送段码
j=10;//扫描间隔时间设定
while(j--);
GPIO_DIG=0x00;//消隐
}
}
*************18B20温度显示*************
{
DisplayData[i]=DIG_CODE[i];
}
while(1)
{
DigDisplay();
}
}
/*******************************************************************************
*函数名: DigDisplay
*函数功能:使用数码管显示
{
uchar i;
for(i=0;i<8;i++)
{
io=0;
io=dat&0x01;
delay(4);//延时一会,让器件采样
io=1;
dat>>=1;
}
delay(4);
}
/*******读字节函数**************/
uchar read_byte(void)
{
uchar i,value;
LSA=1;LSB=1;LSC=0; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1; break;//显示第6位
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
unsigned char DisplayData[8];
//用来存放要显示的8位数的值
void DigDisplay(); //动态显示函数
/*******************************************************************************
uchar temp;
void delay1(void)
{
uint t;
for(t=0;t<2000;t++);
}
void delay(uint t)
{
while(t--);
}
/***********初始化函数************/
void init_ds18b20(void)
{
uchar n;
*函数名: main
*函数功能:主函数
*输入:无
*输出:无
*******************************************************************************/
void main(void)
{
unsigned char i;
for(i=0;i<8;i++)
#include<reg51.h>
#define GPIO_DIG P0
sbit LSA=P2^2;
sbit LSห้องสมุดไป่ตู้=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
{
switch(i)//位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
case(3):
相关文档
最新文档