想要实现的是执行这个程序#include <reg51.h>#include <intrins.h>
sbit Buzzer = P2^5;
unsigned int target_count ;
void delay(unsigned int ms)
{ unsigned int i, j; for(i = ms; i > 0; i--) for(j = 110; j > 0; j--);}
void main(void){ unsigned int count = 0;
unsigned int total_time = 0;
unsigned int sec_count = 0;
unsigned int on_time=30;
while (count < 24)
{if (count < 10) { Nixie(8, count);Nixie(7, 0);}
else {Nixie(7, count / 10); Nixie(8, count % 10); }Buzzer = ~Buzzer; delay(on_time); Buzzer = ~Buzzer;
sec_count = 0;target_count = 640 - on_time;
while (sec_count < target_count){if(count < 10) {Nixie(8, count);Nixie(7, 0); } else {Nixie(7, count / 10); Nixie(8, count % 10);} delay(1); sec_count++;
if (sec_count % 1000 == 0)
{ total_time++; } }
count++; } Buzzer = 0; while(1); }
#include <REGX52.H>#include
unsigned xuanshu[lbk][rbk]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Nixie(unsigned char Location,unsigned char Number){switch(Location)
{case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;}P0=xuanshu[lbk]Number[rbk];
Delayms(1);P0=0x00;}
void Delayms(unsigned int x)
{unsigned char data i, j;
while(x)
{i = 2;j = 199;
do{while (--j);} while (--i);x--;}}的同时,执行
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
if (count >= 6 && count <= 22) {LED2 = 0;}
else {LED2 = 1;}
if (count >= 6 && count <= 24)
{LED3 = 0; }
else {LED3 = 1;}
if (count >= 8 && count <= 21)
{LED4 = 0; }
else {LED4 = 1;}
if ((count >= 1 && count <= 5) || (count >= 18 && count <= 24)) {LED5 = 0; }
else { LED5 = 1; }让两个程序互不干扰的执行,重点是解决LED灯的引脚与数码管的引脚冲突问题

sbit Buzzer = P2^5;
unsigned int target_count ;
void delay(unsigned int ms)
{ unsigned int i, j; for(i = ms; i > 0; i--) for(j = 110; j > 0; j--);}
void main(void){ unsigned int count = 0;
unsigned int total_time = 0;
unsigned int sec_count = 0;
unsigned int on_time=30;
while (count < 24)
{if (count < 10) { Nixie(8, count);Nixie(7, 0);}
else {Nixie(7, count / 10); Nixie(8, count % 10); }Buzzer = ~Buzzer; delay(on_time); Buzzer = ~Buzzer;
sec_count = 0;target_count = 640 - on_time;
while (sec_count < target_count){if(count < 10) {Nixie(8, count);Nixie(7, 0); } else {Nixie(7, count / 10); Nixie(8, count % 10);} delay(1); sec_count++;
if (sec_count % 1000 == 0)
{ total_time++; } }
count++; } Buzzer = 0; while(1); }
#include <REGX52.H>#include
unsigned xuanshu[lbk][rbk]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Nixie(unsigned char Location,unsigned char Number){switch(Location)
{case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;}P0=xuanshu[lbk]Number[rbk];
Delayms(1);P0=0x00;}
void Delayms(unsigned int x)
{unsigned char data i, j;
while(x)
{i = 2;j = 199;
do{while (--j);} while (--i);x--;}}的同时,执行
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
if (count >= 6 && count <= 22) {LED2 = 0;}
else {LED2 = 1;}
if (count >= 6 && count <= 24)
{LED3 = 0; }
else {LED3 = 1;}
if (count >= 8 && count <= 21)
{LED4 = 0; }
else {LED4 = 1;}
if ((count >= 1 && count <= 5) || (count >= 18 && count <= 24)) {LED5 = 0; }
else { LED5 = 1; }让两个程序互不干扰的执行,重点是解决LED灯的引脚与数码管的引脚冲突问题
