找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2506|回复: 1
打印 上一主题 下一主题
收起左侧

单片机定时器的外部中断实验程序

[复制链接]
跳转到指定楼层
楼主
ID:440145 发表于 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--;
                }      
        }

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-1-21 02:27 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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