⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 数字电压表.c

📁 采用汇编加C语言书写的LED程序
💻 C
字号:
#include "reg51.h"
#include "itrins.h"
#define decon P2
#define dedata P0
#define disdata P1
#define discon P3
#define uchar unsigned char
#define uint unsigned int
sbit ale=P2^3;
sbit start=P2^4;
sbit oe=P2^5;
sbit eoc=P3^7;
sbit key1=P3^5;
sbit key2=P3^6;
sbit disx=P1^7;
uchar number=0;
uchar flag=0;
uchar code disled[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar code sancon[4]={0xfe,0xfd,0xfc,0xfb};
uchar data addata[8]={0,0,0,0,0,0,0,0};
uint data dis[5]={0,0,0,0,0};
delay1ms(void)
{
uint i,j;
for(i=0;i<200;i++
   ;
}
test(void)
{
uint i,j;
for(i=0;i<8;i++)
{
   P2=i;
   ale=1;
   _nop_();_nop_();
   ale=0;start=1;
   _nop_();_nop_();
   start=0;
   _nop_();_nop_();_nop_();_nop_();
  while(eoc==0);
	oe=1;
	addata[i]=dedata;
      oe=0;
}
}


 keyscan(void)
{
   if(key1==0)
    { while(!key1) ;
	flag=!falg;
    }
   if(flag==1)
  {
   if(key2==0)
   {
    while(!key2) ;
    number++;
    if(number==8) number=0;
    }
   }
}
scan(void)
{
  uint i,j,h;
  dis[3]=number;
  if(flag==0)
   {
     for(i=0;i<8;i++)
        {
	   dis[2]=addata[n]/51;
	   dis[4]=addata[n]%51;
	   dis[4]=dis[4]*10;
	   dis[1]=dis[4]/51;
 	   dis[4]=dis[4]%51;
  	   dis[4]=dis[4]*10;
	   dis[0]=dis[4]/51;	
	  for(h=0;h<500;h++)
 	  {
	    for(j=0;j<4;j++)
	     {
		P1=dis7[addata[j]];
		if(j==2) {disx=0;}
		P3=scancon[j];delay();P3=0xff;
 	      }	
           }
      	  number=dis[3]++;
	   keyscan();
	  if(flag==1) break;
          }
   }
   if(flag==1)
   {
	dis[3]=number;
        for(j=0;j<4;j++)
	     {
		P1=dis7[addata[j]];
		if(j==2) {disx=0;}
		P3=scancon[j];delay();P3=0xff;
 	      }	
	keyscan();
   }
}

main()
{
P0=0xff;
P2=0x00;
P3=0xff;
P1=0xff;
while(1)
{
test();
scan();
}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -