为了账号安全,请及时绑定邮箱和手机立即绑定

大家晚上好 谁能帮我看看这个程序?我想是想的功能是一秒灯亮一下?

大家晚上好 谁能帮我看看这个程序?我想是想的功能是一秒灯亮一下?

慕桂英8334255 2017-12-23 18:34:59
 #include<reg51.h> //头文件  定义单片机内部寄存器#define uchar unsigned char //宏定义   缩写成uchar#define uint unsigned int//宏定义   缩写成uint//数码管位端口定义sbit w1=P2^2;sbit w2=P2^3;sbit w3=P2^4;sbit w4=P2^5;sbit w5=P2^6;sbit w6=P2^7;sbit LED=P1^0;////////////////////////////sbit key1=P3^5;sbit key2=P3^6;sbit key3=P3^7;/////共阴数码管段信号编码////////uchar code table[10]=//0---9{0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6};//uchar mm,miao,fen;//计时  时分秒变量uchar d1,d2,d3,d4,d5,d6;//显示拆分数据void delay(uint ms)//1ms  延时函数   数据保持用的 括号里面是几大概就延时多少ms{ uchar x; for(ms;ms>0;ms--)  for(x=110;x>0;x--);}void display()//显示函数{ d1=fen/10;// d2=fen%10;//分钟 d3=miao/10;// d4=miao%10;//秒 d5=mm/10;// d6=mm%10;//百分秒 w1=0;P0=table[d1];delay(10);//第1位显示数据 P0=0x00;w1=1;//关闭显示消除动态扫描阴影 w2=0;P0=table[d2]|0x01;delay(10);//第2位显示数据 P0=0x00;w2=1;//关闭显示消除动态扫描阴影 w3=0;P0=table[d3];delay(10);//第3位显示数据 P0=0x00;w3=1;//关闭显示消除动态扫描阴影 w4=0;P0=table[d4]|0x01;delay(10);//第4位显示数据 P0=0x00;w4=1;//关闭显示消除动态扫描阴影 w5=0;P0=table[d5];delay(10);//第5位显示数据 P0=0x00;w5=1;//关闭显示消除动态扫描阴影 w6=0;P0=table[d6];delay(10);//第6位显示数据 P0=0x00;w6=1;//关闭显示消除动态扫描阴影}void main(){ TMOD=0x01;//定时器0  16位计时模式 TH0=(65536-50000)/256; //50ms定时 TL0=(65536-50000)%256; //50ms定时 EA=1;//开启总中断 ET0=1;//开启定时器中断 TR0=0;//关闭定时器 while(1) {     if(key1==0)TR0=1; //开始  if(key2==0)TR0=0;//停止  if(key3==0){fen=miao=mm=0;}//数据清零  display();//显示函数  }}void T0_time() interrupt 1{ TH0=(65536-10000)/256; //10ms定时 TL0=(65536-10000)%256; //10ms定时 mm++;//加一次10ms定时  0.01S         if(mm==100)//1S {     mm=0;  miao++;  LED=0;   delay(1000);   LED=1;   delay(1000);   if(miao==60)  {   miao=0;   fen++;   } } }
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 974 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信