91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 11KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-08
  • 語言: 其他
  • 標簽: 51單片機??

資源簡介

一般單片機內的 定時器只有三個,當我們做工程時往往需要很多定時器,就會遇到定時器不夠用的問題,這個程序是用軟件做出的很多定時器,解決了定時器不夠用的問題。適當修改可以各種控制的需求。

資源截圖

代碼片段和文件信息

/*------------------------------------------------------------------*/
/*?---?STC?MCU?International?Limited?-------------------------------*/
/*?---?STC?1T?Series?MCU?RC?Demo?-----------------------------------*/
/*?---?Mobile:?(86)13922805190?-------------------------------------*/
/*?---?Fax:?86-755-82944243?----------------------------------------*/
/*?---?Tel:?86-755-82948412?----------------------------------------*/
/*?---?Web:?www.STCMCU.com?-----------------------------------------*/
/*?If?you?want?to?use?the?program?or?the?program?referenced?in?the??*/
/*?article?please?specify?in?which?data?and?procedures?from?STC????*/
/*------------------------------------------------------------------*/

/************* 功能說明 **************

用Timer0做基準10ms定時,16個倒計時軟件定時器。

合適工業(yè)控制中類似PLC的軟件定時器。

每個定時器的值非0開始同步定時,減到0停止。

范例程序的定時器是8位的,定時值為1~255,對應0.01~2.55秒.

每個定時器點亮一個LED?不同閃爍時間。

******************************************/



/************* 用戶系統配置 **************/

#define?MAIN_Fosc 24000000L //定義主時鐘

#define?D_TIMER0 10000 //選擇定時器時間?us


/************* 以下宏定義用戶請勿修改 **************/
#include “reg51.H“
#define uchar unsigned?char
#define?uint unsigned?int

#define?freq_base (MAIN_Fosc?/?1200)
#define?Timer0_Reload (65536?-?(D_TIMER0?*?freq_base?/?10000))

uchar SoftTimer[16];

uchar code?T_BitTable[8]?=?{1248163264128};
uchar code?T_ReloadTimerL[16]?=?{10?20?30?40?50?60?70?80?90100110120130140150160};
uchar code?T_ReloadTimerH[16]?=?{30?40?50?60?70?80?90100110120130140150160170180};

/****************?Timer初始化函數?******************************/
void?InitTimer(void)
{
TMOD?=?1;
TH0?=?Timer0_Reload?/?256;
TL0?=?Timer0_Reload?%?256;
ET0?=?1;
TR0?=?1;
EA??=?1;
}

/*********************?主函數?*************************/
void?main(void)
{
uchar ij;

InitTimer(); //初始化Timer

while(1)
{
for(i=0;?i<16;?i++) //檢測16個定時器是否倒計時到0
{
if(SoftTimer[i]?==?0) //倒計時到0
{
if(i? {
P1?^=?T_BitTable[i]; //取反對應的LED
j?=?P1?&?T_BitTable[i]; //取當前輸出狀態(tài)
}
else //8~15對應P2.0~P2.7
{
P2?^=?T_BitTable[i-8]; //取反對應的LED
j?=?P2?&?T_BitTable[i-8]; //取當前輸出狀態(tài)
}
if(j?==?0) SoftTimer[i]?=?T_ReloadTimerL[i]; //輸出低電平的重裝定時值
else SoftTimer[i]?=?T_ReloadTimerH[i]; //輸出高電平的重裝定時值
}
}
}
}

/**********************?Timer0中斷函數************************/
void?timer0?(void)?interrupt?1
{
uchar i;

TR0?=?0;
TH0?=?Timer0_Reload?/?256;
TL0?=?Timer0_Reload?%?256;
TR0?=?1;

for(i=0;?i<16;?i++)
{
if(SoftTimer[i]?!=?0) SoftTimer[i]--; //倒計時定時器
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????161??2011-03-16?09:50??軟件定時器\SoftTimer.plg

?????文件?????????50??2011-03-03?17:20??軟件定時器\SoftTimer.lnp

?????文件???????4816??2011-03-03?17:20??軟件定時器\SoftTimer.M51

?????文件????????568??2011-03-03?17:20??軟件定時器\SoftTimer.hex

?????文件???????2888??2011-02-21?15:56??軟件定時器\SoftTimer.c

?????文件???????2005??2011-02-21?15:57??軟件定時器\SoftTimer_Uv2.Bak

?????文件???????2153??2011-03-02?21:05??軟件定時器\SoftTimer.Uv2

?????文件???????6054??2011-03-03?17:20??軟件定時器\SoftTimer.LST

?????文件???????3935??2011-03-03?17:20??軟件定時器\SoftTimer.OBJ

?????文件???????3603??2011-03-03?17:20??軟件定時器\SoftTimer

?????文件???????1037??2011-03-07?19:19??軟件定時器\SoftTimer_Opt.Bak

?????文件???????1035??2011-03-16?09:50??軟件定時器\SoftTimer.Opt

?????目錄??????????0??2011-03-16?09:50??軟件定時器

-----------?---------??----------?-----??----

????????????????28305????????????????????13


評論

共有 條評論