找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

如何将如下两个C语言主函数连起来?

[复制链接]
admin 发表于 2012-9-2 08:15:32 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uint num;
uchar temp;
sbit LED=P1^5;
sbit JSFW=P0^0;
sbit JS=P0^1;
sbit JJFW=P0^2;
sbit JJ=P0^3;
sbit GSFW=P0^4;
sbit GS=P0^5;
sbit GJFW=P0^6;
sbit GJ=P0^7;
sbit JSKG=P3^0; //P2^0
sbit JJKG=P3^1; //P2^1
sbit GSKG=P3^2; //P2^2
sbit GJKG=P3^3; //P2^3
sbit YLBJ=P2^4;
sbit SBBJ=P2^5;
sbit SBKG=P3^5; //P2^6
sbit DSFW=P2^7; //定时复位
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
LED=0;
YLBJ=0;
while(1)
{
temp=SBKG;
switch(temp)
{
case 0:
JS=JSKG;
JSFW=~JSKG;
JJ=JJKG;
JJFW=~JJKG;
GS=GSKG;
GSFW=~GSKG;
GJ=GJKG;
GJFW=~GJKG;
EA=JS&&JJ&&GS&&GJ; //1 ,打开中断总开关
TR0=~SBKG; //1,打开中断
break;
JS=1;
JSFW=1;
GS=1;
GSFW=1;
JJ=1;
JJFW=1;
case 1:
JSFW=1;
JJFW=1;
GSFW=1;
GJFW=1;
}

}
}
void T0_()interrupt 1
{

TH0=(65535-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==4800) //20是1秒,200是10秒,1200是1分,2400是2分
{
SBBJ=0;
}
}

----------------------------------------------------------
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P3^0;
sbit wela=P3^1;
sbit adwr=P3^6;
sbit adrd=P3^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar bai,uchar shi,uchar ge)
{
dula=1;
P2=table[bai];
dula=0;
P2=0xff;
wela=1;
P2=0x7e;
wela=0;
delayms(5);
dula=1;
P2=table[shi];
dula=0;
P2=0xff;
wela=1;
P2=0x7d;
wela=0;
delayms(5);
dula=1;
P2=table[ge];
dula=0;
P2=0xff;
wela=1;
P2=0x7b;
wela=0;
delayms(5);
}
void main()
{
uchar a,A1,A2,A3,adval;
wela=1;
P2=0x7f;
wela=0;
while(1)
{
adwr=1;
_nop_();
adwr=0;
_nop_();
adwr=1;
for(a=10;a>0;a--)
{
display(A1,A2,A3);
}
P1=0xff;
adrd=1;
_nop_();
adrd=0;
_nop_();
adval=P1;
adrd=1;
A1=adval/100;
A2=adval%100/10;
A3=adval%10;
}
}
两个函数共用P3^0,和P3^1口,我想通过SBKG(P3^5)状态来切换2个函数,当SBKG=1时执行下面的显示函数,上的操作函数就中止了,当SBKG=0时执行上面的操作函数,下面的显示函数停止!
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 09:09 , Processed in 0.049719 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表