本帖最后由 芯圣电子官方QQ 于 2023-7-20 11:15 编辑
收到开发板有段时间了,昨天才有空测试一下。
首先感谢21IC,感谢芯圣。
再次来个拆包
然后来个测试Tim1定时器,
#define ALLOCATE_EXTERN
#include "HC89S003F4.h"
/***************************************************************************************
* @ʵÏÖЧ¹û T1¶¨Ê±Ê±¼ä1ms£¬Ã¿1ms½øÈëÒ»´ÎÖжϣ¬P22·×ª
***************************************************************************************/
int main()
{
/************************************ϵͳ³õʼ»¯****************************************/
WDTCCR = 0x00; //¹Ø±Õ¿´ÃŹ·
while((CLKCON&0x20)!=0x20); //µÈ´ýÄÚ²¿¸ßƵRCÆðÕñ
CLKSWR = 0x51; //Ñ¡ÔñÄÚ²¿¸ßƵʱÖÓΪÖ÷ʱÖÓ£¬ÄÚ²¿¸ßƵRC2·ÖƵ£¬Fosc=16MHz
while((CLKSWR&0xC0)!=0x40); //µÈ´ýÄÚ²¿¸ßƵÇл»Íê³É
CLKDIV = 0x01; //Fosc1·ÖƵµÃµ½Fcpu£¬Fcpu=16MHz
/**********************************Ïà¹ØÅäÖóõʼ»¯**************************************/
P2M1 = P2M1&0xF0|0x08; //P22ÉèÖÃΪÍÆÍìÊä³ö
/**********************************TIM1ÅäÖóõʼ»¯**************************************/
TCON1 = 0x00; //T1¶¨Ê±Æ÷ʱÖÓΪFosc
TMOD = 0x00; //16λÖØ×°Ôض¨Ê±Æ÷/¼ÆÊýÆ÷
//Tim1¼ÆËãʱ¼ä = (65536 - 0xFACB) * (1 / (Fosc /Timer·ÖƵϵÊý))
// = 1333 / (16000000 / 12)
// = 1 ms
//¶¨Ê±1ms
//·´ÍƳõÖµ = 65536 - ((1/1000) / (1/(Fosc / Timer·ÖƵϵÊý)))
// = 65536 - ((1/1000) / (1/(16000000 / 12)))
// = 65536 - 1333
// = 0xFACB
TH1 = 0xFA;
TL1 = 0xCB;
IE |= 0x08; //´ò¿ªT1ÖжÏ
TCON |= 0x40; //ʹÄÜT1
EA = 1; //´ò¿ª×ÜÖжÏ
while(1);
return 0;
}
/***************************************************************************************
* @˵Ã÷ T1ÖжϷþÎñº¯Êý
* @²ÎÊý ÎÞ
* @·µ»ØÖµ ÎÞ
* @×¢ ÎÞ
***************************************************************************************/
void TIMER1_Rpt(void) interrupt TIMER1_VECTOR
{
P2_2 =~ P2_2; //P22·×ª
}
,最后来个点灯
|