欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機定時器不工作是什么原因造成的?
[打印本頁]
作者:
約瑟
時間:
2020-7-12 22:42
標題:
單片機定時器不工作是什么原因造成的?
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void time(void);
void digitron(void);
void timemin(void);
void DelayMs(uchar n);
uchar I,MIN; //計時器的變量聲明
sfr P0M1=0X91;
sfr P0M0=0X92;
sbit P17=P1^7;
uchar led[]={0x3f,0x05,0x5b,0x4f,0x65, //共陰極數碼管,管腳鏈接順序p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0
0x6e,0x7e,0x07,0x7f,0x6f}; //段碼的編碼 h g f e d c a b
uchar led1[]={0xbf,0xef};
uchar led2[2];
void T0Isr()interrupt 1 //定時器0的中斷
{
I++; // 50ms計數器,用于擴展計時值
}
void main(void)
{
P0M1=0X00;
P0M0=0XFF;
TH0=0X3c; //定時器的初值,高位
TL0=0Xb0; //定時器低位初值,50ms初值為15536
TMOD=0X00; //設置定時器工作模式,15W的工作模式0是16位自動重裝
TR0=1; // 定時器0工作設置
IE=0X82; //開總中斷,開T0中斷
while(1)
{
time();
timemin();
digitron();
}
}
void time(void) //秒計時函數
{
uint SEC,MS;
if (I==10)
{
MS++; //
I=0;
}
if(MS==2)
{
SEC++;
MS=0;
}
if(SEC==59)
{
MIN++;
SEC=0;
}
}
void digitron(void)
{
uchar i;
for(i=0;i<2;i++)
{
P1=led[led2[i]];
P3=led1[i];
DelayMs(10);
}
}
void timemin(void)
{
led2[1]=MIN/10;
led2[0]=MIN%10;
}
void DelayMs(uchar n)
{
uchar j;
while(n--)
{
for(j=0;j<113;j++);
}
}
復制代碼
作者:
woshilibra
時間:
2020-7-12 23:34
中斷服務函數中沒重新裝計數器初值吧?
作者:
556cv
時間:
2020-7-13 00:48
定時器中斷設置有問題吧
作者:
wulin
時間:
2020-7-13 05:43
特殊功能寄存器AUXR沒有設置
void main(void)
{
P0M1=0X00;
P0M0=0XFF;
AUXR&=0x7F;
//定時器時鐘12T模式
TMOD=0XF0; //設置定時器工作模式,15W的工作模式0是16位自動重裝
TH0=0X3c; //定時器的初值,高位
TL0=0Xb0; //定時器低位初值,50ms初值為15536
TR0=1; //定時器0工作設置
IE=0X82; //開總中斷,開T0中斷
while(1)
{
time();
timemin();
digitron();
}
}
作者:
npn
時間:
2021-12-10 11:34
wulin 發表于 2020-7-13 05:43
特殊功能寄存器AUXR沒有設置
void main(void)
{
12T單片機、reg51.h頭文件里沒有AUXR寄存器,只有STC的1T的才有。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1