资源简介
在STM8S003最小系统上用PC3、PC4引脚模拟串口的发送和接收,通过查询方式进行串口通信
代码片段和文件信息
#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);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 292 2017-11-14 17:17 SimUart3\checkres.spy
文件 6013 2017-11-15 15:40 SimUart3\Debug\delay.ls
文件 2472 2017-11-15 15:40 SimUart3\Debug\delay.o
文件 16124 2017-11-15 16:38 SimUart3\Debug\main.ls
文件 18414 2017-11-15 16:38 SimUart3\Debug\main.o
文件 16822 2017-11-15 16:28 SimUart3\Debug\simuart.elf
文件 2302 2017-11-14 12:54 SimUart3\Debug\simuart.lkf
文件 25948 2017-11-15 16:28 SimUart3\Debug\simuart.map
文件 3812 2017-11-15 16:28 SimUart3\Debug\simuart.s19
文件 21694 2017-11-15 16:28 SimUart3\Debug\simuart.sm8
文件 5420 2017-11-15 15:40 SimUart3\Debug\stm8_interrupt_vector.ls
文件 2619 2017-11-15 15:40 SimUart3\Debug\stm8_interrupt_vector.o
文件 2307 2017-11-14 12:56 SimUart3\delay.c
文件 519 2017-11-14 12:57 SimUart3\delay.h
文件 3940 2017-11-15 16:37 SimUart3\main.c
文件 2308 2017-11-14 12:54 SimUart3\Release\simuart.lkf
文件 593 2017-11-15 16:39 SimUart3\simuart.dep
文件 905 2017-11-15 16:26 SimUart3\simuart.pdb
文件 12352 2017-11-14 13:15 SimUart3\simuart.stp
文件 203 2017-11-15 16:39 SimUart3\SimUart.stw
文件 43447 2017-11-15 16:28 SimUart3\SimUart.wdb
文件 31975 2017-11-15 16:39 SimUart3\SimUart.wed
文件 2077 2017-11-14 10:23 SimUart3\stm8_interrupt_vector.c
文件 3616 2017-11-13 15:12 SimUart3\TAGS.txt
文件 231 2017-11-13 15:12 SimUart3\TAGS_Filelist.txt
目录 0 2017-11-15 15:40 SimUart3\Debug
目录 0 2017-11-15 14:03 SimUart3\Release
目录 0 2017-11-15 16:39 SimUart3
----------- --------- ---------- ----- ----
226405 28
............此处省略1个文件信息
- 上一篇:ModBus 流程图.
- 下一篇:STM8S003模拟IIC总线读取PCF8563
相关资源
- STM8S003模拟IIC总线读取PCF8563
- STM8S003F使用I/O口模拟串口一发送数据
- PMS5003T Arduino Uno
- stm32f103+Vs1003b例程
- AD Altium Designer STM8 STM32 库
- winPE下整合raid驱动安装windows2003
- STM32的GPIO口模拟串口通信.rar
- winSer2003激活工具&补丁工具
- 最新巴西烤肉提权工具,最新Win2003提
- STM8 SPI从机通讯程序
- STVD代码量插件
- iis6.0 forwin 2003 里面5个难找的组件cf
- Rational Rose 2003 rational_perm.dat
- CA6140车床拨叉831003加工2-M8孔夹具课设
- IAR for STM8注册机
- WindowsServer2003-KB968730-x86-ENU
- IAR for STM8 3.10.4汉化补丁
- STM8和STM32F103原理图库AD
- IAR for STM8 3.10.4汉化
- STM8定时器2输入捕获功能寄存器版
- STM8S单片机输出互补PWM可通过刹车输入
- 使用 STM8S103F3 设计的数字电压表头
- ULN2003驱动步进电机
- STM8S 模拟I2C程序 源码
- 在安装Exchange2003服务器时Windows Serve
- stm8s003与ds1307时钟芯片程序
- 遗传算法优化rbf网络108003
- STM32的GPIO口模拟串口通信
- STM8L152R6 STM8L152R8 SCH封装
- stvd 4.1.2 汉化版ST Visual Develop Version
评论
共有 条评论