Keil.5如何确定程序烧录成功

Keil.5如何确定程序烧录成功,第1张

确定单片机驱动电压弊竖是否正确

先检查最小系统的连线是否正确

用protues仿真你或卜衫的程序,看仿真能否成功

测试烧录软件是否运行正衫腔常五、测试单片机驱动引脚,

/*-----------------------------------------------

名称:18B20温度传感器

函数名:18b20.h

编写:浪溢泽沉

日期:2009.5

修改:无

内容:18B20单线温度检测的应用样例程序

------------------------------------------------*/

#ifndef __DS18B20_H__

#define __DS18B20_H__

#include<reg52.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义源段旅

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

/*------------------------------------------------

端口定义

------------------------------------------------*/

sbit DQ=P1^3//ds18b20 端口

/*------------------------------------------------

函数声明

------------------------------------------------*/

unsigned int ReadTemperature(void)

bit Init_DS18B20(void)

unsigned char ReadOneChar(void)

void WriteOneChar(unsigned char dat)

#endif

/*-----------------------------------------------

名称:18B20温度传感器

编写:浪溢泽沉

日期:2009.5

修改:无

内容:18B20单线温度检测的应用样例程燃陵序

------------------------------------------------*/

#include"delay.h"

#include"18b20.h"

/*------------------------------------------------

18b20初始化

------------------------------------------------*/

bit Init_DS18B20(void)

{

bit dat=0

DQ = 1 //DQ复位

DelayUs2x(5) //稍做延时

DQ = 0//单片雹凳机将DQ拉低

DelayUs2x(200)//精确延时 大于 480us 小于960us

DelayUs2x(200)

DQ = 1 //拉高总线

DelayUs2x(50)//15~60us 后 接收60-240us的存在脉冲

dat=DQ //如果x=0则初始化成功, x=1则初始化失败

DelayUs2x(25)//稍作延时返回

return dat

}

/*------------------------------------------------

读取一个字节

------------------------------------------------*/

unsigned char ReadOneChar(void)

{

unsigned char i=0

unsigned char dat = 0

for (i=8i>0i--)

{

DQ = 0// 给脉冲信号

dat>>=1

DQ = 1// 给脉冲信号

if(DQ)

dat|=0x80

DelayUs2x(25)

}

return(dat)

}

/*------------------------------------------------

写入一个字节

------------------------------------------------*/

void WriteOneChar(unsigned char dat)

{

unsigned char i=0

for (i=8i>0i--)

{

DQ = 0

DQ = dat&0x01

DelayUs2x(25)

DQ = 1

dat>>=1

}

DelayUs2x(25)

}

/*------------------------------------------------

读取温度

------------------------------------------------*/

unsigned int ReadTemperature(void)

{

unsigned char a=0

unsigned int b=0

unsigned int t=0

Init_DS18B20()

WriteOneChar(0xCC)// 跳过读序号列号的 *** 作

WriteOneChar(0x44)// 启动温度转换

DelayMs(10)

Init_DS18B20()

WriteOneChar(0xCC)//跳过读序号列号的 *** 作

WriteOneChar(0xBE)//读取温度寄存器等(共可读9个寄存器) 前两个就是温度

a=ReadOneChar() //低位

b=ReadOneChar() //高位

b<<=8

t=a+b

return(t)

}

上面是检测温度的程序,第一个是.h的文件,第二个是.c文件,自己调用就行了。

如果你还不会的话,问我吧……

希望能帮到你,以后互相交流!!!

你的问题太过于庞统,回答起来有芦尺一点难度,如果你是想看I/O接口的结果,可以点“外围陪州高设备”菜单下的几个规定设备如I/0接口,ininterrup等等。可以点击调用椎栈图标即眼镜图标的“监视#1或者#2,点击“<按F2按键可编辑>"再输入你所观察的部件的名称如TL1,P1 P2 P3 这迹橘样你可以看到运行的情情况,此法适合于单步运行,否则很难看清其结果,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12410779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存