熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2020-1-4 20:40
正文摘要:按照配置寫定時(shí)器2中斷程序,但是就是不行???是哪里出問題了嗎?????#include "reg52.h" #include "intrins.h" sfr AUXR = 0x8e; sfr T2H = 0xd6; sfr T2L   ... |
程序不是這樣寫的,既然用了定時(shí)器了,還用什么Delay500ms()?這樣會(huì)占用cpu的資源。 |
兄嘚兒,我們買的同一款學(xué)習(xí)板 |
首先看看手冊(cè)這個(gè)型號(hào)有沒有定時(shí)器2。我之前用過一個(gè)stc的單片機(jī)居然沒有定時(shí)器1。。。但是又定時(shí)器2你說坑不坑 |
問題解決了,開發(fā)板一直寫入到C52芯片,沒有寫入STC15W408AS |
wulin 發(fā)表于 2020-1-5 15:56 謝謝大佬,把問題搞清楚了,開發(fā)板上我一直都在寫入c52芯片里 |
有電路圖嗎 |
121212121212123 發(fā)表于 2020-1-5 11:47 任何程序都是在硬件基礎(chǔ)上編寫的。你這學(xué)習(xí)板沒有接觸過,不知其硬件結(jié)構(gòu)。圖中表明有兩片不同型號(hào)單片機(jī),STC89C52RC/STC15W408AS,LED與其連接關(guān)系不搞清怎么判斷程序運(yùn)行狀態(tài)? |
wulin 發(fā)表于 2020-1-5 11:01 還是不行。。。所有燈都沒亮 |
aking991 發(fā)表于 2020-1-5 09:00 這樣???還是不行,所有燈都沒亮 #include "reg52.h" sfr IE2 = 0xaf; //中斷使能寄存器2 sfr AUXR = 0x8e; //輔助寄存器 sfr T2H = 0xD6; //定時(shí)器2高8位 sfr T2L = 0xD7; //定時(shí)器2低8位 sbit led1 = P1^7; sbit led2 = P1^6; sbit led3 = P1^5; sbit led4 = P1^4; unsigned char flag = 0; /*------------------------------------- 定時(shí)器2初始化,時(shí)鐘12T、16位重載模式 --------------------------------------*/ void Timer2Init() //200微秒@11.0592MHz { AUXR &= 0xFB; //定時(shí)器時(shí)鐘12T模式 T2L = 0x48; //設(shè)置定時(shí)初值 T2H = 0xFF; //設(shè)置定時(shí)初值 AUXR |= 0x10; //定時(shí)器2開始計(jì)時(shí) IE2 |=0x04; //允許中斷 EA=1; //開總中斷 } /*------------------------------ 定時(shí)器2中斷服務(wù)程序 -------------------------------*/ void timer2() interrupt 12 { flag = 1; led1 = ~led1; } void main(){ Timer2Init(); while(1){ if(flag == 1){ led2 = ~led2; } Delay500ms(); } } |
給你改一下,你試試。
|
void Timer2Inter() interrupt 12{ //定時(shí)器2中斷 led4 = ~led4; Delay500ms(); }這里面加了Delay500ms()這個(gè)當(dāng)然有問題了,中斷里作事時(shí)間越短越好,改用置標(biāo)志位方式,然后要作的事情放在主函數(shù)里去作 |
Powered by 單片機(jī)教程網(wǎng)