打印

求助

[复制链接]
1244|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liming0505|  楼主 | 2007-10-17 11:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    #include<AT89X51.H>
  unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
                                 0x66,0x6d,0x7d,0x07,
                                 0x7f,0x6f,0x77,0x7c,
                                 0x39,0x5e,0x79,0x71,0x00};
  unsigned char second,tcount;
  

  void main(void)
{
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR1=1;
  EA=1;
  ET0=1;
  second=0;tcount=0; 
  P0=dispcode[second/10];
  P2=dispcode[second%10];
  while(1);
}
  void t0(void) interrupt 1 using 0
{
  tcount++;
{
  if(tcount==20)
  second++;
  if(second==60)
  second=0;
  P0=dispcode[second/10];
  P2=dispcode[second%10];
}
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
}  

各位好上面程序是要求单片机的定时/计数器T0产生一秒的 定时时间,作为秒计数时间,当一秒产生时,秒计数加1,秒计数到60时,自动从0开始。
此处是用中断实现的,这程序是怎么一个 运行过程 啊 !
    是不是先执行主程序,然后等待中断产生,然后执行中断子程序,tcount++;以后,再给TH0,TL0负值,再返回主程序,那 void t0 (void) 中interrupt 1 using 0是什么意思啊 。然后while(1)处要不要加分号啊,要加的又是为什么啊 ,多谢各位指点

相关帖子

沙发
zusen| | 2007-10-17 12:00 | 只看该作者

interrupt 1 using 0

定时器0中断,应用 第0组寄存器
while(1); 后面加; 是语法的规定

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

14

帖子

1

粉丝