标题:
为什么单片机老是死机?旋转编码器时转的慢没有事
[打印本页]
作者:
qiang275129042
时间:
2018-4-16 18:41
标题:
为什么单片机老是死机?旋转编码器时转的慢没有事
现象是这样的旋转编码器时转的慢没有事!转的快单片机就死机了!大家帮我看看是什么问题!
单片机源程序如下:
#include <STC12C5A60S2.H>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit wela = P1^1;
sbit dula = P1^2;
sbit LED=P1^0;
sbit AA=P3^7; //编码加
sbit BB=P3^6; //编码减
uint flage,status,current_bmb,counter = 0,
p,dataa;
float PA;
static uint m,tm;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f};
void delay(unsigned char i)
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
void datakae()
{
status=BB; //一直赋值!
while(0==AA)//当AA条件允许进入主循环!并且BB上次的值保持为临近状态!
{
current_bmb=BB;
flage=1;
}
if(1==flage)
{
flage=0;
if((0==current_bmb)&&(1==status))
{
tm++;
if(tm>=1000)
{
tm=1000;
}
}
if((0==status)&&(1==current_bmb))
{
tm--;
if(tm<=10)
{
tm=10;
}
}
}
}
void display()
{
P0=table[dataa%10];//个
dula=1;
dula=0;
P2=0xfe;
wela=1;
wela=0;
delay(2);
P0=table[dataa%100/10]; //十
dula=1;
dula=0;
P2=0xfd;
wela=1;
wela=0;
delay(2);
P0=table[dataa%1000/100];
dula=1;
dula=0;
P2=0xfb; // 百
wela=1;
wela=0;
delay(2);
P0=table[dataa%10000/1000];
dula=1;
dula=0;
P2=0xf7;//千
wela=1;
wela=0;
delay(2);
}
void huansuan()
{
m=10000/tm;
dataa=tm;
}
//定时器T1初始化
void initial()
{
LED=0;
P1M1 = 0x00;
P1M0 = 0xFF;
counter=0;
EA = 1;
TR0 = 1;
TMOD = 0x01;
TH0 = (65535-1000)/256; //1ms
TL0 = (65535-1000)%256;
ET0 = 1;
}
//主程序
void main()
{
tm=250;
initial();
while(1)
{
huansuan();
datakae();
display();
LED=0;
}
}
void timer0_int()interrupt 1 using 0
{
TH0 = (65535-1000)/256;//1ms产生一次中断
TL0 = (65535-1000)%256;
counter++;
if(counter==m)
{
LED=1;
for(p=0;p<150;p++);
counter=0;
} else LED=0;
}
复制代码
作者:
ths3201
时间:
2018-4-16 19:13
好长啊!代码又不能调试,为什么不去玩stm32
作者:
qiang275129042
时间:
2018-4-16 19:21
说重点!啥问题!我急死了!
作者:
雨沐林枫
时间:
2018-4-16 20:31
是不是越界问题
作者:
怪怪爱玩
时间:
2018-9-22 15:59
这个循环有问题,我也试过这样的程序,单片机好像反应不过来,
作者:
wulin
时间:
2018-9-22 17:14
速度慢时可以正常工作,速度块时出错,这样看来你的程序有缺陷并且与速度有关。从你的程序看运行效率非常低。主要表现在:1数码管动态显示使用了软件延时,2.中断函数中竟然也用了软件延时。这些都会影响CPU及时查询AA状态。
作者:
junqingxue
时间:
2018-9-25 17:04
同意6楼的说法
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1