单片机C语言程序设计题 20
1。设有100个符号数,存放在数组A[]中,试编程统计其中正数、负数、零的个数并分别存放在x、y、z、三个变量中。2.计算数组unsignedcharA[10]中的最大值...
1。设有100个符号数,存放在数组A[]中,试编程统计其中正数、负数、零的个数并分别存放在x、y、z、三个变量中。
2.计算数组 unsigned char A[10]中的最大值,存放在变量x中
3.P1.0 P1.1 P1.2分别接有三个开关,P2.0 P2.1 P2.2分别接有三个灯泡。INT0上接有一个按钮,没按一次按钮则会产生一个负脉冲作用于INT0,作为中断请求信号。单片机每响应一次中断请求,就从开关读入数据,然后送到发光二极管显示(开关合上使对应的灯亮)。
会的帮忙编程下哈谢谢啦 展开
2.计算数组 unsigned char A[10]中的最大值,存放在变量x中
3.P1.0 P1.1 P1.2分别接有三个开关,P2.0 P2.1 P2.2分别接有三个灯泡。INT0上接有一个按钮,没按一次按钮则会产生一个负脉冲作用于INT0,作为中断请求信号。单片机每响应一次中断请求,就从开关读入数据,然后送到发光二极管显示(开关合上使对应的灯亮)。
会的帮忙编程下哈谢谢啦 展开
3个回答
展开全部
#include <reg52.h>
#define LED0 0
#define LED1 1
#define LED2 2
#define LEDPORT P2
sbit SW0 = P1^0;
sbit SW1 = P1^1;
sbit SW2 = P1^2;
char a[100]={0};
void INT0_Init(void)
{
EA = 1;
EX0 = 1;
IT0 = 1; //负脉冲 =0电平
}
void main()
{
unsigned char x = 0;
unsigned char y = 0;
unsigned char z = 0;
unsigned char A[10]={0};
unsigned char i = 0;
unsigned char temp = 0;
INT0_Init();
for (; i<100; i++)
{
if (a[i] > 0)
{
x++;
}
else if (a[i] == 0)
{
y++;
}
else
{
z++;
}
}
for(i=0; i<10; i++)
{
if (a[i] > temp)
{
temp = a[i];
}
}
while(1);
}
void INT0_ISR(void) interrupt 2 //外部中断程序
{
#if 1 //只需把1变成0就可以完成切换
LEDPORT &= ~((1<<LED0) | (1<<LED1) | (1<<LED2)); //高电平点亮
if (SW0 == 0)
{
LEDPORT |= 1<<LED0;
}
if (SW1 == 0)
{
LEDPORT |= 1<<LED1;
}
if (SW2 == 0)
{
LEDPORT |= 1<<LED2;
}
#else
LEDPORT |= (1<<LED0) | (1<<LED1) | (1<<LED2); //低电平点亮
if (SW0 == 0)
{
LEDPORT &= ~(1<<LED0);
}
if (SW1 == 0)
{
LEDPORT &= ~(1<<LED1);
}
if (SW2 == 0)
{
LEDPORT &= ~(1<<LED2);
}
#endif
}
给分咯
#define LED0 0
#define LED1 1
#define LED2 2
#define LEDPORT P2
sbit SW0 = P1^0;
sbit SW1 = P1^1;
sbit SW2 = P1^2;
char a[100]={0};
void INT0_Init(void)
{
EA = 1;
EX0 = 1;
IT0 = 1; //负脉冲 =0电平
}
void main()
{
unsigned char x = 0;
unsigned char y = 0;
unsigned char z = 0;
unsigned char A[10]={0};
unsigned char i = 0;
unsigned char temp = 0;
INT0_Init();
for (; i<100; i++)
{
if (a[i] > 0)
{
x++;
}
else if (a[i] == 0)
{
y++;
}
else
{
z++;
}
}
for(i=0; i<10; i++)
{
if (a[i] > temp)
{
temp = a[i];
}
}
while(1);
}
void INT0_ISR(void) interrupt 2 //外部中断程序
{
#if 1 //只需把1变成0就可以完成切换
LEDPORT &= ~((1<<LED0) | (1<<LED1) | (1<<LED2)); //高电平点亮
if (SW0 == 0)
{
LEDPORT |= 1<<LED0;
}
if (SW1 == 0)
{
LEDPORT |= 1<<LED1;
}
if (SW2 == 0)
{
LEDPORT |= 1<<LED2;
}
#else
LEDPORT |= (1<<LED0) | (1<<LED1) | (1<<LED2); //低电平点亮
if (SW0 == 0)
{
LEDPORT &= ~(1<<LED0);
}
if (SW1 == 0)
{
LEDPORT &= ~(1<<LED1);
}
if (SW2 == 0)
{
LEDPORT &= ~(1<<LED2);
}
#endif
}
给分咯
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也想帮你,不过这东西已经一年没碰过了,当时弄的很明白,现在不行了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询