欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 638|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

AI寫的程序:FMD FT60E21X SOP8 單片機(jī)定時(shí)器0應(yīng)用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:59341 發(fā)表于 2025-10-22 08:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//AI寫的定時(shí)器0應(yīng)用:PA4接一個(gè)LED(低電平亮,高電平滅),1秒亮1秒滅,這樣循環(huán)。看看代碼有沒(méi)有問(wèn)

#include "SYSCFG.h"
#include "FT60F21X.h"

// 宏定義:LED引腳(PA4)及中斷計(jì)數(shù)變量
#define LED_PIN     PA4
unsigned char timer0_cnt = 0;  // Timer0溢出計(jì)數(shù)(16ms/次)
bit led_flag = 0;              // LED狀態(tài)標(biāo)志(0:滅,1:亮)

/*-------------------------------------------------
* 函數(shù)名:interrupt ISR
* 功能:中斷處理(Timer0溢出中斷)
* 說(shuō)明:每16ms進(jìn)入一次中斷,計(jì)數(shù)62次后翻轉(zhuǎn)LED狀態(tài)
--------------------------------------------------*/
void interrupt ISR(void)
{
    if (INTCON & 0x04)  // 檢查Timer0溢出標(biāo)志(T0IF=1)
    {
        timer0_cnt++;    // 溢出次數(shù)累加
        if (timer0_cnt >= 62)  // 62次×16ms≈1秒
        {
            timer0_cnt = 0;    // 計(jì)數(shù)清零
            led_flag = ~led_flag;  // 翻轉(zhuǎn)LED狀態(tài)標(biāo)志
            LED_PIN = led_flag;    // 更新PA4電平(低電平亮)
        }
        INTCON &= ~(1 << 2);  // 清除T0IF中斷標(biāo)志
        TMR0 = 0;             // 重置Timer0計(jì)數(shù)初值
    }
}

/*----------------------------------------------------
* 函數(shù)名:TIMER0_INITIAL
* 功能:Timer0初始化
* 定時(shí)計(jì)算:(1/8MHz)×4(指令周期)×128(預(yù)分頻)×255≈16ms
----------------------------------------------------*/
void TIMER0_INITIAL(void)
{
    T0ON = 0;             // 關(guān)閉Timer0(配置期間)
    TMR0 = 0;             // 計(jì)數(shù)初值清零
    T0CON0 = 0x00;        // 時(shí)鐘源選擇指令周期,禁止Timer0(后續(xù)手動(dòng)使能)
    OPTION = 0x06;        // 配置預(yù)分頻:1:128(PS2-PS0=110),分頻器分配給Timer0(PSA=0)
    T0ON = 1;             // 使能Timer0
}

/*-------------------------------------------------
* 函數(shù)名:POWER_INITIAL
* 功能:系統(tǒng)上電初始化(時(shí)鐘、IO口、中斷)
--------------------------------------------------*/
void POWER_INITIAL(void)
{
    // 1. 系統(tǒng)時(shí)鐘配置:內(nèi)部8MHz(IRCF=110)
    OSCCON = 0x60;        // IRCF[6:4]=110 → HIRC=8MHz
    while (!(OSCCON & 0x04));  // 等待HIRC穩(wěn)定(HTS=1)

    // 2. IO口配置:PA4為輸出,初始高電平(LED滅)
    TRISA &= ~(1 << 4);   // PA4方向:輸出(TRISA[4]=0)
    PSRCA &= ~(0x03);     // PA4源電流:3mA(PSRCA[1:0]=00)
    PSINKA &= ~(0x01);    // PA4灌電流:最小(PSINKA[0]=0)
    LED_PIN = 1;          // 初始狀態(tài):PA4高電平(LED滅)

    // 3. 中斷初始化:禁止所有中斷(后續(xù)手動(dòng)開(kāi)啟所需中斷)
    INTCON = 0x00;
    WPUA = 0x00;          // 關(guān)閉PA口上拉(LED為輸出,無(wú)需上拉)
}

/*-------------------------------------------------
* 函數(shù)名:main
* 功能:主函數(shù)(初始化+死循環(huán))
--------------------------------------------------*/
void main()
{
    POWER_INITIAL();      // 系統(tǒng)初始化(時(shí)鐘、IO口)
    TIMER0_INITIAL();     // Timer0初始化(16ms溢出)

    // 開(kāi)啟中斷:全局中斷(GIE)+ Timer0中斷(T0IE)
    GIE = 1;
    T0IE = 1;

    // 死循環(huán):等待中斷觸發(fā)(無(wú)需額外操作)
    while (1)
    {
        NOP();
    }
}

大伙看看代碼有沒(méi)有問(wèn)題,寫得規(guī)范嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:67199 發(fā)表于 2025-10-23 11:53 | 只看該作者
用AI寫個(gè)PIC的代碼,個(gè)人感覺(jué),整體架構(gòu)還行,不同芯片的差異等細(xì)節(jié)問(wèn)題還處理不好,有待加強(qiáng),需人工逐一審定修改。
回復(fù)

使用道具 舉報(bào)

板凳
ID:584814 發(fā)表于 2025-10-24 17:31 | 只看該作者
AI寫的代碼微型全套或可直接用,多可參考。
回復(fù)

使用道具 舉報(bào)

地板
ID:71233 發(fā)表于 2025-10-24 22:31 | 只看該作者
上述代碼可以正常運(yùn)行嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:59341 發(fā)表于 2025-11-4 17:59 | 只看該作者
lmn2005 發(fā)表于 2025-10-24 22:31
上述代碼可以正常運(yùn)行嗎?

運(yùn)行OK
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表