- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
孵化箱总程序(国外英语资料)
孵化箱总程序(国外英语资料)
#包括 reg51. H
#包括信息。”
#定义unsigned char函数
# unsigned int定义单元
函数二,分钟,小时;
函数= 0;
普通FS = P3 ^ 4;
P3 ^了DQ = 0;//定义通信端口
公司ZS = P1 ^ 0;
普通蜂鸣器= P1 ^ 1;
函数代码ledtab [ ] = { 0x3F,0x06,0x5b,0x4f,0x66,0x6d,7d,0x07,0x7f,0x6f,0x77 };
/ /延时函数
字符表[ ] = { 0x3F,0x06,0x5b,0x4f、0x66,
0x6d,7d,0x07,0x7f,0x6f,
0x40,0x00 };
/ /共阴数码管0-9’”
无符号字符表[ ] = { 0xBF 0x86,0xdb,0xcf,0xe6,
0xed,0xfd,0x87,0xff,0xef,
0xc0,0x80 };//带小数点的共阴数码管
signed char商= 40;//上限报警温度,默认值为38
无符号int = 0;
unsigned char tflag;
无符号整型温度;
无符号char = 0;
unsigned char数据disdata [ 4 ];
无效()
{
TMOD = 1;// 0x00
0xff TH0 =;
TL0 = 0x0f;
ET0 = 1;//定时器0中断允许位
tr0 = 1;//定时器0运行控制位
电针= 1;
}
delay2(void函数T)
{
我的函数;
为(0;t)
对于(I = 124;i 0;i);
}
无效的极限(unsigned int数)
{
无符号整型;
而(计数)
{
我= 150;
虽然(0)
我--;
计数—;
}
}
无效延迟(无符号I)
{
而(我-);
}
无效display()
{
P2 = 0xf7;
P0 = ledtab [分钟] % 10;
(10)delay2;
P2 = 0xfb;
P0 = ledtab [分钟] / 10;
(10)delay2;
P2 = 0xfd;
P0 = ledtab [ 10 ]小时%;
(10)delay2;
P2 = 0xfe;
P0 = ledtab [小时/ 10 ];
(10)delay2;
}
/ /初始化函数
init_ds18b20(void)
{
DQ = 1;// DQ复位
_nop_();/ /稍做延时
DQ = 0;//单片机将DQ拉低
延迟(80);//精确延时大于480us
DQ = 1;//拉高总线
延迟(5);
/ /稍做延时后如果x = 0则初始化成功x =“1则初始化失败”
延迟(20);
}
/ /读一个字节
readonechar(void)
{
无符号字符i = 0;
无符号char = 0;
对于(I = 8;i 0;i)
{
DQ = 0;//给脉冲信号
_nop_();
= 1;
DQ = 1;//给脉冲信号
_nop_();
_nop_();
如果(DQ)
这| = 0x80;
延迟(20);
}
返回(DAT);
}
/ /写一个字节
writeonechar(unsigned char dat)
{
无符号字符i = 0,j;
对于(J = 8;j 0;j)
{
我= DAT和0x01;
数据(= 1);
如果(我= = 0x01)
{
DQ = 0;//拉低总线2微秒后释放,写逻辑1;
_nop_();
_nop_();
DQ = 1;
}
其他的
{
DQ = 0;//拉低总线60微秒以上,写逻辑0;
延迟(20);
DQ = 1;
}
延迟(20);
}
}
/ /读取温度
读出温度(void)
{
无符号char = 0;
无符号char = 0;
init_ds18b20();
writeonechar(0xcc);/ /跳过读序号列号的操作发送指令0xcc
writeonechar(0x44);/ /启动温度转换发送指令0x44
极限(2);
init_ds18b20();
writeonechar(0xcc);/ /跳过读序号列号的操作
writeonechar(0xbe);/ /读取温度寄存器等(共可读9个寄存器)前两个就是温度发送指令0xbe
a readonechar();/ /读取温度值低位
B = readonechar();/ /读取温度值高位
乙型肝炎;
T = 8;
/ / =一 4;/ /低位右移4位,舍弃小数部分
/ / T = B<<4;/ /高位左移4位,舍弃符号位
T=t|a;
With high and low numerical / /
If (t0xfff)
Tflag=1;
Else
{
Tflag=0;
T=
文档评论(0)