資源簡介
在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
評論
共有 條評論