收藏 分销(赏)

四位数码管对外部中断0响应计数.doc

上传人:s4****5z 文档编号:9009061 上传时间:2025-03-11 格式:DOC 页数:3 大小:98.50KB
下载 相关 举报
四位数码管对外部中断0响应计数.doc_第1页
第1页 / 共3页
四位数码管对外部中断0响应计数.doc_第2页
第2页 / 共3页
点击查看更多>>
资源描述
· **************************************************************************   · * 标题: 四位数码管对外部中断0响应计数(C51)   · * 作者: wentao        ·                       · * 日期: 2007.3.2   · * 软件: Keil C51 V8.02   · * 芯片: AT89X51   · * 说明: 实验板实测通过,数码管为8位共阳   · * 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!    · **************************************************************************/   ·    · #include <reg51.h>    ·    · #define uchar unsigned char    ·    · void delay_ms(uchar ms);  // 延时毫秒@12M,ms最大值255    · void display();           // 显示子程序    ·    · uchar code dis_code[10] = {0xc0,0xf9,0xa4,0xb0,0x99,  //段码表    ·                           // 0    1    2    3    4      对应内容    ·                            0x92,0x82,0xf8,0x80,0x90};    ·                           // 5    6    7    8    9    ·    · uchar data dis_0 = 0;     // 个位值    · uchar data dis_1 = 0;     // 十位值    · uchar data dis_2 = 0;     // 百位值    · uchar data dis_3 = 0;     // 千位值    ·    · void main()    · {    ·     P2 = 0xff;           // 关所有数码管    ·         ·     IT0 = 1;             // 外部中断0下降沿触发    ·     EA = 1;              // 开总中断    ·     EX0 = 1;             // 开外部中断0    ·         ·     while(1)    ·     {    ·         display();       // 调用显示子程序等待中断    ·     }    · }    ·    · void int_0() interrupt 0             // 外部中断0中断服务程序    · {    ·         dis_0++;                     // 个位值加1    ·         if(dis_0 == 10)              // 个位未到10则结束    ·         {    ·             dis_0 = 0;               // 个位到10清零            ·             dis_1++;                 // 十位值加1(个位到10的进位)    ·             if(dis_1 == 10)          // 十位未到10则结束    ·             {    ·                 dis_1 = 0;           // 十位到10清零            ·                 dis_2++;             // 百位值加1(十位到10的进位)    ·                 if(dis_2 == 10)      // 百位未到10则结束    ·                 {    ·                     dis_2 = 0;       // 百位到10清零            ·                     dis_3++;         // 千位值加1(百位到10的进位)    ·                     if(dis_3 == 10)  // 千位未到10则结束    ·                         dis_3 = 0;   // 千位到10清零    ·                 }    ·             }    ·         }    · }    ·    · void display()                // 显示子程序    · {    ·     uchar data i = 50;        // 用于延长每四位数的显示时间    ·     while(i--)                // 直到i减为0    ·     {    ·         P0 = dis_code[dis_0]; // 取个位的段码    ·         P2 = 0x7f;            // 开个位显示(P2.7口控制个位数码管)    ·         delay_ms(1);          // 延时1ms使四位数码管动态显示时能看清    ·             ·         P0 = dis_code[dis_1]; // 取十位的段码    ·         P2 = 0xbf;            // 开十位显示(P2.6口控制十位数码管)    ·         delay_ms(1);          // 延时1ms作用同上    ·             ·         P0 = dis_code[dis_2]; // 取百位的段码    ·         P2 = 0xdf;            // 开百位显示(P2.5口控制十位数码管)    ·         delay_ms(1);          // 延时1ms作用同上    ·             ·         P0 = dis_code[dis_3]; // 取千位的段码    ·         P2 = 0xef;            // 开千位显示(P2.4口控制十位数码管)    ·         delay_ms(1);          // 延时1ms作用同上    ·     }    · }    · void delay_ms(uchar ms)       // 延时毫秒@12M,ms最大值255    · {    ·     uchar i;    ·     while(ms--)    ·         for(i = 0; i < 124; i++);    · }  
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服