找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24023|回复: 3
收起左侧

此程序不动啊 /

[复制链接]
ID:45409 发表于 2012-10-11 23:10 | 显示全部楼层 |阅读模式

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P0^3;
uchar num,tt;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6b,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{ 
 num=0;
 tt=0;
 TMOD=0x01;//设置定时器0为工作方式1;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;//开总中断。
 ET0=1;//开定时器0中断
 //EX0=1;//开外部中断0
 //IT0=1;//跳变触发方式。
 //TCON=0x01;//对CUP存存器进行操作。同上一方式。
 TR0=1;//启动定时器0
 wela=1;
 P0=0xea;
 wela=0;

 
 while(1)
 {
  //for(num=0;num<16;num++)
  if(tt==20)
//20是20毫秒
  { 
   tt=0;
            num++;
   if(num=16)
   num=0;
   dula=1;
   P0=table[num];
   dula=0;
   delay(1000);
  }
 }
}
void delay(uint z)
{
 uint x,y;
  for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void exter0() interrupt 1 
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;//d1=0,
 tt++;

 
回复

使用道具 举报

ID:7485 发表于 2012-10-12 12:33 | 显示全部楼层

你是说数码管没有动吧 只是显示第一个数字 ?

回复

使用道具 举报

ID:1 发表于 2012-10-13 22:59 | 显示全部楼层

这是一个通过定时器来显示变化数字的程序吧 如果不动 最大的可能是定时器没有启动

 

回复

使用道具 举报

ID:42386 发表于 2012-10-23 17:37 | 显示全部楼层
   if(num=16)
   num=0;
   dula=1;
   P0=table[num];
   dula=0;
   delay(1000);
  }
num=16少个=  该为if(num==16)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表