找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3888|回復(fù): 1
收起左側(cè)

89s52定時(shí)器怎么不行

[復(fù)制鏈接]
ID:34706 發(fā)表于 2012-2-24 22:33 | 顯示全部樓層 |閱讀模式

我想用定時(shí)器定時(shí)數(shù)碼管每隔1s顯示0——9

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,s1;
uchar code s[10]={0xc0,0xf9,0xa4,0xb0,
     0x99,0x92,0x82,0xf8,
       0x80,0x90,};


void main(){
 TMOD=0x05;
 EA=1;
 ET0=1;
 TR0=1;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
  if(a==20){  
  a=0;
  P2=0xfe;
  for(s1=0;s1<10;s1++) {
   P0=s[s1];
  s1=s1++; 
  if(s1==10)
  s1=0;
}} } 

void dsq() interrupt 1{
  a=a++;  }
 
  
  

 

  

 

回復(fù)

使用道具 舉報(bào)

ID:34963 發(fā)表于 2012-2-26 12:17 | 顯示全部樓層

1.你的是使用定時(shí)器計(jì)數(shù)方式,最好是改成中斷方式;

2.中斷程序中應(yīng)當(dāng)重裝初值;

3.判斷是不是到了一秒的時(shí)間的程序最好也放到中斷程序里;

4.主程序進(jìn)行顯示,建議用個(gè)while語句就行。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表