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

上传人:mg****85 文档编号:34042441 上传时间:2018-02-20 格式:DOC 页数:3 大小:98.50KB
返回 下载 相关 举报
四位数码管对外部中断0响应计数_第1页
第1页 / 共3页
四位数码管对外部中断0响应计数_第2页
第2页 / 共3页
四位数码管对外部中断0响应计数_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《四位数码管对外部中断0响应计数》由会员分享,可在线阅读,更多相关《四位数码管对外部中断0响应计数(3页珍藏版)》请在金锄头文库上搜索。

1、 * * 标题: 四位数码管对外部中断 0响应计数(C51) * 作者: wentao http:/ http:/ * 日期: 2007.3.2 * 软件: Keil C51 V8.02 * 芯片: AT89X51 * 说明: 实验板实测通过,数码管为 8位共阳 * 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! */ #include #define uchar unsigned char void delay_ms(uchar ms); / 延时毫秒12M,ms 最大值 255 void display(); / 显示子程序 uchar code dis_code1

2、0 = 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)

3、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+; / 千位

4、值加 1(百位到 10的进位) if(dis_3 = 10) / 千位未到 10则结束 dis_3 = 0; / 千位到 10清零 void display() / 显示子程序 uchar data i = 50; / 用于延长每四位数的显示时间 while(i-) / 直到 i减为 0 P0 = dis_codedis_0; / 取个位的段码 P2 = 0x7f; / 开个位显示(P2.7 口控制个位数码管) delay_ms(1); / 延时 1ms使四位数码管动态显示时能看清 P0 = dis_codedis_1; / 取十位的段码 P2 = 0xbf; / 开十位显示(P2.6 口控制十位数码管) delay_ms(1); / 延时 1ms作用同上 P0 = dis_codedis_2; / 取百位的段码 P2 = 0xdf; / 开百位显示(P2.5 口控制十位数码管) delay_ms(1); / 延时 1ms作用同上 P0 = dis_codedis_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+);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号