?? 數(shù)字電壓表.c
字號(hào):
#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();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -