资源简介
通过STM8S003最小系统板,读取DS18B20温度传感器的值。
代码片段和文件信息
#include “delay.h“
////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK
//使用汇编代码进行精确延时处理
//包括delay_usdelay_ms
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//修改日期:2013/6/25
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
//All rights reserved
//******************************************************************************
//V1.0 20130625
//支持不同时钟频率
//提供delay_usdelay_ms两个延时函数.
////////////////////////////////////////////////////////////////////////////////
volatile u8 fac_us=0; //us延时倍乘数
//延时函数初始化
//为确保准确度请保证时钟频率最好为4的倍数最低8Mhz
//clk:时钟频率(24/16/12/8等)
void delay_init(u8 clk)
{
if(clk>16)fac_us=(16-4)/4;//24Mhz时stm8大概19个周期为1us
else if(clk>4)fac_us=(clk-4)/4;
else fac_us=1;
}
//延时nus
//延时时间=(fac_us*4+4)*nus*(T)
//其中T为CPU运行频率(Mhz)的倒数单位为us.
//准确度:
//92% @24Mhz
//98% @16Mhz
//98% @12Mhz
//86% @8Mhz
void delay_us(u16 nus)
{
// STVD 编译环境下汇编代码
#asm
PUSH A //1T压栈
DELAY_XUS:
LD A_fac_us //1Tfac_us加载到累加器A
DELAY_US_1:
NOP //1Tnop延时
DEC A //1TA--
JRNE DELAY_US_1 //不等于0则跳转(2T)到DELAY_US_1继续执行若等于0则不跳转(1T).
NOP //1Tnop延时
DECW X //1Tx--
JRNE DELAY_XUS //不等于0则跳转(2T)到DELAY_XUS继续执行若等于0则不跳转(1T).
POP A //1T出栈
#endasm
//Keil 开发环境下汇编代码
/*
__asm(
“PUSH A \n“ //1T压栈
“DELAY_XUS: \n“
“LD Afac_us \n“ //1Tfac_us加载到累加器A
“DELAY_US_1: \n“
“NOP \n“ //1Tnop延时
“DEC A \n“ //1TA--
“JRNE DELAY_US_1 \n“ //不等于0则跳转(2T)到DELAY_US_1继续执行若等于0则不跳转(1T).
“NOP \n“ //1Tnop延时
“DECW X \n“ //1Tx--
“JRNE DELAY_XUS \n“ //不等于0则跳转(2T)到DELAY_XUS继续执行若等于0则不跳转(1T).
“POP A \n“ //1T出栈
);
*/
}
//延时nms
//为保证准确度nms不要大于16640.
void delay_ms(u32 nms)
{
u8 t;
if(nms>65)
{
t=nms/65;
while(t--)delay_us(65000);
nms=nms%65;
}
delay_us(nms*1000);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6013 2017-09-06 11:00 DS18B20\Debug\delay.ls
文件 2472 2017-09-06 11:00 DS18B20\Debug\delay.o
文件 16605 2017-09-06 11:00 DS18B20\Debug\ds18b20.elf
文件 2320 2017-09-06 10:51 DS18B20\Debug\ds18b20.lkf
文件 9327 2017-09-06 11:00 DS18B20\Debug\ds18b20.ls
文件 28821 2017-09-06 11:00 DS18B20\Debug\ds18b20.map
文件 16268 2017-09-06 11:00 DS18B20\Debug\ds18b20.o
文件 4280 2017-09-06 11:00 DS18B20\Debug\ds18b20.s19
文件 27616 2017-09-06 11:00 DS18B20\Debug\ds18b20.sm8
文件 1964 2017-09-06 11:00 DS18B20\Debug\main.ls
文件 12673 2017-09-06 11:00 DS18B20\Debug\main.o
文件 5420 2017-09-06 11:00 DS18B20\Debug\stm8_interrupt_vector.ls
文件 2619 2017-09-06 11:00 DS18B20\Debug\stm8_interrupt_vector.o
文件 2307 2017-09-05 09:15 DS18B20\delay.c
文件 1012 2017-09-06 10:53 DS18B20\delay.h
文件 2570 2017-09-06 11:00 DS18B20\ds18b20.c
文件 732 2017-09-06 11:24 DS18B20\ds18b20.dep
文件 233 2017-09-06 10:47 DS18B20\ds18b20.h
文件 897 2017-09-06 11:24 DS18B20\ds18b20.pdb
文件 12620 2017-09-06 11:03 DS18B20\ds18b20.stp
文件 203 2017-09-06 11:24 DS18B20\ds18b20.stw
文件 29720 2017-09-06 11:24 DS18B20\ds18b20.wdb
文件 31153 2017-09-06 11:24 DS18B20\ds18b20.wed
文件 525 2017-09-06 10:51 DS18B20\main.c
文件 2328 2017-09-06 10:51 DS18B20\Release\ds18b20.lkf
文件 1954 2007-11-13 16:37 DS18B20\stm8_interrupt_vector.c
目录 0 2017-10-14 11:37 DS18B20\Debug
目录 0 2017-10-14 11:37 DS18B20\Release
目录 0 2017-10-14 11:37 DS18B20
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:STM8S003模拟串口中断接收
- 下一篇:STM8S003 PWM功能实现
相关资源
- STM8S003 PWM功能实现
- STM8S003模拟串口中断接收
- DS18B20读取序列号并匹配读取温度值
- DOSRDP是可以从DOS连到windows终端的软件
- DS18B20介绍、程序流程图和程序源代码
- STM8工程模板史上最完整版
- STM32 DS18b20
- 基于mini2440+linux下的ds18b20驱动,
- 摄像头模组-EV76C560+DS90UB913A+STM8S103
- STM8S105C6T6开发板
- 用51单片机驱动DS1302时间模块+DS18B20温
- 430的读取DS18B20并在1602液晶上显示
- 1602电子时钟万年历isis仿真文件,程序
- MSP430 和VS1003 完成的音乐播放
- STM8S_PWM_LED呼吸灯
- DS18B20温度控制风扇 原理图及源代码
- 工业级STM8霍尔测速程序
- 使用定时中断方式与ds18b20通信
- 完美解决VS2003.Net fatal error LNK1201: 写入
- ds18b20测温程序
- QT 4.5.0 with vs2003 vs2005 vs2008
- DS18B20关于search rom指令的使用
- RMS_CHS_WM2003sp_WM5_0_V2.0.exe
- ULN2003应用电路及中文资料
- verilog的ds18b20代码
- ExtPart Windows Server 2003 磁盘扩容工具
- zw_stm8-32-sht-20-30.zip
- 4cbec1e17fae30034cd45625bdbab27d.rar
- 2003 server kb938397 和微软 KB968730 补丁
- 802.11h-2003.pdf
评论
共有 条评论