找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

下載程序后STC8G1K08A單片機(jī)不運(yùn)行,幫忙看看是那里有問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:56002 發(fā)表于 2024-4-18 14:20 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序代碼
#include"stc8g.h"
#define uchar unsigned char
#define uint unsigned int
sbit LED = P5^4;  //定義IO管腳
int counter; //計(jì)數(shù)變量
void InitTimer0()   //中斷函數(shù)      
{
    TMOD = 0x01;
    TH0=(65536-60000)/256; //50ms
    TL0=(65536-60000)%256;
    EA = 1;     //允許CPU中斷
    ET0 = 1;   //定時(shí)器0中斷打開
    TR0 = 1;  //啟動(dòng)定時(shí)器
}   

/*--------------------------主函數(shù)------------------------------*/
void main()
{         
        P3M0 = 0x00; //設(shè)置P3.0~P3.7為雙向口模式
        P3M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
        InitTimer0(); //初始化定時(shí)器
        LED  = 0; //IO初始化為低電平
        while(1);   
}
void Timer0() interrupt 1 //啟用中斷組1
{      
        TH0=(65536-60000)/256; //裝初值
        TL0=(65536-60000)%256;
        counter++; //產(chǎn)生200MS的脈沖 等待ECU檢測
        if(counter >= 1000)  { LED  = 1;}   //延時(shí)30S                             
        else if(counter >= 1950)  { LED  = 0; counter = 0; TR0 = 0; }      
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1110945 發(fā)表于 2024-4-18 16:28 | 只看該作者
中斷里面為什么還要再“裝初值”?
中斷里面“1950”那一行前面不能用“else”,要直接用“if”,
加了else之后這一行就變得沒有意義了(比較的結(jié)果永遠(yuǎn)為“否”),
因?yàn)樵谛∮?000的數(shù)字里面永遠(yuǎn)沒有大于1950的數(shù)字。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1109793 發(fā)表于 2024-4-18 16:58 | 只看該作者
1950已經(jīng)在>=1000的條件之內(nèi)了。你可以把else 去掉,或者兩個(gè)>=都改成==
回復(fù)

使用道具 舉報(bào)

地板
ID:56002 發(fā)表于 2024-4-18 17:13 | 只看該作者
明日之星8 發(fā)表于 2024-4-18 16:28
中斷里面為什么還要再“裝初值”?
中斷里面“1950”那一行前面不能用“else”,要直接用“if”,
加了el ...

屏蔽中斷,在while里將LED置高,P5^4 IO 管腳還是沒有輸出,是IO的配置問題嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:69038 發(fā)表于 2024-4-18 17:26 | 只看該作者
如果是這樣,個(gè)人覺得,就該是>=1950在前,然后才是>=1000.
但<1000時(shí)會(huì)是什么情況呢?
回復(fù)

使用道具 舉報(bào)

6#
ID:1109793 發(fā)表于 2024-4-18 17:35 | 只看該作者
oplink 發(fā)表于 2024-4-18 17:13
屏蔽中斷,在while里將LED置高,P5^4 IO 管腳還是沒有輸出,是IO的配置問題嗎?

雖然標(biāo)準(zhǔn)模式IO的高電平輸出比較弱,但是點(diǎn)亮LED還是可以的,雖然亮度可能比較低
回復(fù)

使用道具 舉報(bào)

7#
ID:1109793 發(fā)表于 2024-4-18 17:36 | 只看該作者
zhuls 發(fā)表于 2024-4-18 17:26
如果是這樣,個(gè)人覺得,就該是>=1950在前,然后才是>=1000.

啥情況也沒有
回復(fù)

使用道具 舉報(bào)

8#
ID:1109793 發(fā)表于 2024-4-18 17:37 | 只看該作者
oplink 發(fā)表于 2024-4-18 17:13
屏蔽中斷,在while里將LED置高,P5^4 IO 管腳還是沒有輸出,是IO的配置問題嗎?

試試P5M0 = 0X10;設(shè)置推挽模式,應(yīng)該就比較亮了
回復(fù)

使用道具 舉報(bào)

9#
ID:1110945 發(fā)表于 2024-4-18 17:38 | 只看該作者
oplink 發(fā)表于 2024-4-18 17:13
屏蔽中斷,在while里將LED置高,P5^4 IO 管腳還是沒有輸出,是IO的配置問題嗎?

點(diǎn)亮發(fā)光管只要三句,



回復(fù)

使用道具 舉報(bào)

10#
ID:1109793 發(fā)表于 2024-4-18 17:57 | 只看該作者
明日之星8 發(fā)表于 2024-4-18 17:38
點(diǎn)亮發(fā)光管只要三句,

編輯器的字好大
回復(fù)

使用道具 舉報(bào)

11#
ID:1110945 發(fā)表于 2024-4-18 20:03 | 只看該作者

這還不是最大的,可以隨意調(diào)的,好像是“Ctrl+鼠標(biāo)滾輪轉(zhuǎn)動(dòng)”調(diào)的。
回復(fù)

使用道具 舉報(bào)

12#
ID:56002 發(fā)表于 2024-4-19 08:22 | 只看該作者
明日之星8 發(fā)表于 2024-4-18 17:38
點(diǎn)亮發(fā)光管只要三句,

按照你給的配置就可以了,謝謝!
回復(fù)

使用道具 舉報(bào)

13#
ID:483092 發(fā)表于 2025-1-4 10:44 | 只看該作者
你好,請問你這可以直接燒錄固件嗎?不要設(shè)置接口?
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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