资源简介
用STM8S003最小系统的PC3、PC4引脚模拟串口接收发送,接收数据用中断实现,通道检测接收引脚下降沿来开始接收数据,避免了用查询方式接收时漏掉数据的情况。
![](http://www.nz998.com/pic/51802.jpg)
代码片段和文件信息
#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个文件信息
相关资源
- 易语言OTG串口通信
- delphi 串口通讯
- 模拟QQ登陆界面,按钮无效自己写
- STM32蓝牙和串口程序
- LCD显示温度+串口接收温度.rar
- WPF USB 网络 串口 通信软件
- DELPHI与西门子200PLC的串口通信实例
- 交通咨询模拟系统完整代码
- Verilog FPGA UART串口控制器
- USB转串口驱动,FT232R驱动程序,最新
- 卡西欧工程计算器模拟器Casio FX
- S7-200模拟量编程实例
- 波浪模拟UDF程序
- PC -- 单片机的串口数据传输系统设计
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- PC 串口调试软件
- 51单片机读取温度数据存储到SD卡中并
- 分页系统模拟实验 操作系统 课程设
- 课程作业:模拟仓库管理系统
- 单片机与PC机串口通讯仿真
- 模拟段页式虚拟存储管理中地址转换
- 串口调试助手V5.0
- STM32F103 CC2500完整驱动(模拟SPI)
- 双串口调试助手 V4.0 _ 可同时调试两个
- 读取串口数据并画实时曲线的VC 程序
- 报文模拟仿真测试工具2.0
- 模拟ATM柜员机系统--连接数据库
- HOOK 记录和模拟 Keyboard Mouse
评论
共有 条评论