永发信息网

STC单片机计数器复位程序求修改!

答案:3  悬赏:70  手机版
解决时间 2021-12-30 20:52
  • 提问者网友:玫瑰园
  • 2021-12-29 22:11
计到10后应该自动从0开始计
但是我执行后就从0一直计下去,如何改?

#include

#define uchar unsigned char
#define uint unsigned int
sfr ISP_CONTR=0xe7;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x00,0x90};
uchar num;
uchar a,b,num1;
void delayms(uint);
void display(uchar shi,uchar ge) //显示子函数
{
P1=table[shi]; //送十位段选数据
P0=0x01; //送位选数据
delayms(5); //延时
P1=table[ge]; //送个位段选数据
P0=0x02;
delayms(5);
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
void main()
{
P0M1 = 0x00;//推挽输出的定义
P0M0 = 0x0f;//推挽输出的定义
TMOD=0x01; //设置定时器0为工作方式1(0000 0001)
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(num>=20)
{
num=0;
num1++;
if(num1==10)
{
ISP_CONTR=0x20;
}
a=num1/10;
b=num1%10;
}
display(a,b);
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-12-29 23:34
其中这部分添加一句即可
   
   if(num1==10)
   {
    ISP_CONTR=0x20;
   }
   if(num1>10)num1=0;//添加这一句即可
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-12-30 01:05
怎么修稿的啊
  • 2楼网友:往事隔山水
  • 2021-12-30 00:48
可以啊,因为它本来就是有通用io口的功能,如果你不想因为计数中断影响程序,可以不开eto/et1中断,不开中断它就是普通io口了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯