资源简介
用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 SimUart4\checkres.spy
文件 6013 2017-11-15 18:13 SimUart4\Debug\delay.ls
文件 2472 2017-11-15 18:13 SimUart4\Debug\delay.o
文件 20932 2017-11-16 08:37 SimUart4\Debug\main.ls
文件 19951 2017-11-16 08:37 SimUart4\Debug\main.o
文件 17365 2017-11-16 08:37 SimUart4\Debug\simuart.elf
文件 2302 2017-11-14 12:54 SimUart4\Debug\simuart.lkf
文件 26674 2017-11-16 08:37 SimUart4\Debug\simuart.map
文件 4386 2017-11-16 08:37 SimUart4\Debug\simuart.s19
文件 22952 2017-11-16 08:37 SimUart4\Debug\simuart.sm8
文件 5453 2017-11-15 18:13 SimUart4\Debug\stm8_interrupt_vector.ls
文件 2633 2017-11-15 18:13 SimUart4\Debug\stm8_interrupt_vector.o
文件 2307 2017-11-14 12:56 SimUart4\delay.c
文件 519 2017-11-14 12:57 SimUart4\delay.h
文件 5092 2017-11-16 08:35 SimUart4\main.c
文件 2308 2017-11-14 12:54 SimUart4\Release\simuart.lkf
文件 593 2017-11-16 08:41 SimUart4\simuart.dep
文件 905 2017-11-15 16:26 SimUart4\simuart.pdb
文件 12352 2017-11-14 13:15 SimUart4\simuart.stp
文件 203 2017-11-16 08:41 SimUart4\SimUart.stw
文件 32459 2017-11-16 08:40 SimUart4\SimUart.wdb
文件 32658 2017-11-16 08:41 SimUart4\SimUart.wed
文件 2129 2017-11-15 17:22 SimUart4\stm8_interrupt_vector.c
文件 3616 2017-11-13 15:12 SimUart4\TAGS.txt
文件 231 2017-11-13 15:12 SimUart4\TAGS_Filelist.txt
目录 0 2017-11-15 18:13 SimUart4\Debug
目录 0 2017-11-15 17:04 SimUart4\Release
目录 0 2017-11-16 08:41 SimUart4
----------- --------- ---------- ----- ----
226797 28
............此处省略1个文件信息
相关资源
- STM8S003读取DS18B20温度传感器
- ABAQUS FRIC 子程序模拟文件及子程序
- 51单片机Protues点阵广告屏仿真及实现
- QT开发的串口通讯软件(基于qextseri
- 利用msp430g2553进行串口通信
- 单片机或者STM32能直接用的sht读温湿度
- Abaqus模拟焊接的方法
- MSP430G2553串口程序
- 单片机AD 转换 和 串口通信汇编语言
- 51单片机的串口采集温度程序
- PMDG 737NGX破解文件
- 2017全国电子设计竞赛微电网模拟系统
- 基于STM32实现的模拟I2C
- 请求页式管理缺页中断模拟设计--FI
- 串口以太网二合一调试助手
- 网神 防火墙 虚拟机
- BLE蓝牙串口助手
- 用QT做的LINUX下串口通信测试可用
- 模拟硬盘物理序列号
- LabView模拟温度监测系统
- Unity3d实现的十字路口的模拟
- STM8工程模板史上最完整版
- arduino使用串口语音模块,解决汉子编
- 串口调试软件带校验的
- 串联文件,连续文件的存储模拟
- 新版正方教务系统登录密码RAS加密破
- 使用simpy模拟FQ和WFQ
- unity快速动态衣服布料仿真物理模拟游
- 通讯服务器,带Socket功能,操作串口
- NS与网络模拟徐雷鸣例程源码
评论
共有 条评论