标题: 单片机定时器的外部中断实验程序 [打印本页]

作者: Katherine98    时间: 2019-1-20 15:41
标题: 单片机定时器的外部中断实验程序
实验目的:掌握定时器的工作原理
实验内容:利用按键K3来启动数码管(0~9)进行倒计时9秒,数码管初始状态显示为灭(要求在主函数里完成显示);按下K3则使数码管从“9”一直显示到"0";要求写出定时器和外部中断的中断函数
实验代码:
#include<reg51.h>
int main(){
        EA=1;//总允许打开
        EX0=1;//外中断0允许
        IT0=1;//外中断0下降沿判断               
        while(1){
       P1=0xff;} //初始状态显示为灭

}
void  int0(void) interrupt 0 using 0{
        char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};//数码管显示(0~9)
        int i=9,n=0; //循环9次
        TMOD=0x10;//定时器1开启工作方式1(16位)

        TR1=1;//启动定时器
           while(i!=-1){
                P1=a[i ];      
                TH1=(65536-46080)/256;  //s=65536-t*f/12,TH1=s/256,高8位赋值 ,t为定时时间单位为us,f为晶震频率11.0592M
                TL1=(65536-46080)%256;
                while(TF1==0);
                TF1=0;

                n++;
                  /*do{
                        TF1=0;        //定时器1溢出置0
                }while(!TF1); */
                if(n==20){
                        n=0;
                        i--;
                }      
        }

}


作者: admin    时间: 2019-1-21 02:27
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1