房天下 > 房天下问答 > 业主生活 > 其他
  • 谁给个AT89C52单片机的定时器C程序

    晶振是12M的。。#include<reg52.h>

    提问者:华美星辰

    发布于2010-09-14

共1个回答
  • rainstory1 丨Lv 1
    #include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar temp,aa,bai,shi,ge;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void display(uchar bai,uchar shi,uchar ge);void delay(uint z);void init();void main(){ init();//初始化子程序 while(1) { if(aa==20) { aa=0; temp++; if(temp==100) { temp=0; } bai=temp/100; shi=temp%100/10; ge=temp%10; } display(bai,shi,ge); }}void delay(uint z){ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}void display(uchar bai,uchar shi,uchar ge){ dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);}void init(){ wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }void timer0() interrupt 1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } #include<reg52.h>#define uint unsigned int #define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;sbit d1=P1^0;uchar num,num1;tt;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint z);void main(){ num=0; tt=0; TMOD=0x11;//设置定时器0为工作方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=(65536-20000)/256; TL1=(65536-20000)%256;// EA=1;//开总中断 ET0=1;//开定时器0中断 ET1=1; TR0=1;//启动定时器0 TR1=1; wela=1;//11101010 P0=0xea; wela=0; dula=1; P0=0x3f; dula=0; while(1) { if(num1==25) { num1=0; P1=~P1; } if(tt==100) { tt=0; num++; if(num==16) num=0; dula=1; P0=table[num]; dula=0; } }}void delay(uint z){ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }void time0() interrupt 1{ TH0=(65536-10000)/256; TL0=(65536-10000)%256; tt++;}void time1() interrupt 3{ TH1=(65536-20000)/256; TL1=(65536-20000)%256; num1++; }
    +10 2010-09-15 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。