收藏 分销(赏)

单片机程序---一分钟外部脉冲计数.doc

上传人:仙人****88 文档编号:11890690 上传时间:2025-08-18 格式:DOC 页数:3 大小:29.04KB 下载积分:10 金币
下载 相关 举报
单片机程序---一分钟外部脉冲计数.doc_第1页
第1页 / 共3页
单片机程序---一分钟外部脉冲计数.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
/*************************** 利用外部中断0 和 定时器0 来计算一分钟 脉冲数 交流 QQ: 357076835 ***************************/ #include <reg52.h> #include <intrins.h> int N=0,m=0,p; unsigned char code dat[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned int led[3]; sbit LS138A = P2^2; //定义138译码器的输入A脚由P2.2控制 sbit LS138B = P2^3; //定义138译码器的输入脚B由P2.3控制 sbit LS138C = P2^4; //定义138译码器的输入脚C由 /****************************/ void coun() //初始化设置 { TMOD=0x01; TH0=0x4c;TL0=0x00;//定义50ms TR0=1; IT0=1; EX0=1; ET0=1; EA=1; } void delay(int z) //延时函数 { unsigned char x,y; for(x=0;x<50;x++) for(y=z;y>0;y--) ; } void display() //显示函数 138译码器显示 { char i; p=N; led[0]=dat[p/100]; led[1]=dat[p%100/10]; led[2]=dat[p%10]; for( i=0; i<3; i++) //实现8位动态扫描循环 { P0 = led[i]; //将字模送到P0口显示 switch(i) //使用switch 语句控制位选 也可以是用查表的方式 学员可以试着自己修改 { case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; } delay(10); } } /*************主函数***************/ void main() { // delay(50); coun(); while(1) { if(m>=1200) 达到一分钟之后 关闭外部中断0 EX0=0; display(); } } /*************中断函数***************/ void int0() interrupt 0 using 1 { EX0=0; N++; EX0=1; } void int1() interrupt 1 using 2 { TH0=0x4c;TL0=0x00; m++; }
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服