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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 638|回復: 4
打印 上一主題 下一主題
收起左側

AI寫的程序:FMD FT60E21X SOP8 單片機定時器0應用

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

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

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

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

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

/*-------------------------------------------------
* 函數(shù)名:POWER_INITIAL
* 功能:系統(tǒng)上電初始化(時鐘、IO口、中斷)
--------------------------------------------------*/
void POWER_INITIAL(void)
{
    // 1. 系統(tǒng)時鐘配置:內(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ù)手動開啟所需中斷)
    INTCON = 0x00;
    WPUA = 0x00;          // 關閉PA口上拉(LED為輸出,無需上拉)
}

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

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

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

運行OK
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表