单片机C语言程序设计题

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,作为中断请求信号。单片机每响应一次中断请求,就从开关读入数据,然后送到发光二极管显示(开关合上使对应的灯亮)。
会的帮忙编程下哈谢谢啦

这是两个题啊。哈哈好做,第一个有C语言的冒泡法排序,第二个用中断,读,输出就可以追问

不会做啊,基本的都不懂呀。大哥会做吗,帮做做啊

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-15
#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
}

给分咯
第2个回答  2011-03-09
我也想帮你,不过这东西已经一年没碰过了,当时弄的很明白,现在不行了!

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
for(j=110;j>0;j--);} void main(){ P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000)...

单片机C语言程序设计题
这是两个题啊。哈哈好做,第一个有C语言的冒泡法排序,第二个用中断,读,输出就可以

C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要...
晚上随手写,也未调试,权当看看 程序有不严谨地方还得调试修改 include <REGX51.H> define STATUS_1S1 define STATUS_2S2 define STATUS_3S3 define STATUS_4S4 define STATUS_5S5 define STATUS_15S15 define STATUS_28S28 define STATUS_29S29 define STATUS_30S30 unsigned char flag,status,sta...

c语言单片机考试题目急用
1、uchar state1;\/\/主函数中 有 state1 变量,整个程序却没有改变量定义,可知,第1空即是该变量的定义。2、state1=0xfe; 或者 state1=~1;\/\/图中 LED为 低电平驱动,D1为 P10,循环中直接将state1的值赋值给 P1,所以,要想D1亮,state1 的值就 必须=0xfe 3、temp=4;\/\/题目要求 亮...

高分求一个单片机电子琴c语言程序
(3. 把“单片机系统”区域中的P1.7\/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4. 程序设计内容 (1. 信号产生的方法 500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次; 5. 程序框图 图4.6.2 6. 汇编源程序...

求单片机程序(C语言),新手不会写
把P0.0定义K1,P0.1定义K2, P0.3定义K4,P1.0定义Y0,P1.1定义Y1,单片机低电平有效。K1光电开关(为触发开关)检测到物体时输出低电平,K2(检测开关)检测到物体时高电平,K4(检测开关)检测到物体时是低电平,Y0外接电机,Y1外接继电器。1、 在开机状态下,K1没有检测到物体(没有触发...

单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以...
\/\/单片机:使用51系列兼容的即可;\/\/4×4矩阵键盘:接在P1口;\/\/两位数码显示器: P0口输出七段码,P2口输出位选码。\/=== \/\/C语言程序如下。\/ 文件名: KEY_LED.c 功能 : 对4×4矩阵键盘进行输出,在数码管后两位显示按键值。\/ include <reg51.h> include <intrins.h> define uint unsi...

求一个51单片机C语言程序编程
单片机甲、乙进行双机串行通信,甲机通过串口控制乙机LED闪烁(如下图所示,要求利用芯片MAX232),双方的晶振频率均为11.0592MHz(波特率为9600kb\/s)要求:甲机按开关K1一次,发送字符“A”给乙机,点亮灯D1与D2;按开关K1两次,发送字符“B”给乙机,点亮灯D3与D4;按开关K1三次,发送字符“C...

单片机c语言呢编程问题:我要实现用一个按键控制一个LED的亮灭,按一次...
你没有松手监测呀!就是在按键处理程序后要加一个while(k1!=0);就是只有你松开按键后才认为本次按键执行完毕,不然就会一直重复执行按键按下的程序,那么你的d1一直就会执行亮灭操作!

基本的单片机C语言编程问题P1=0xff高电平
51单片机是8位的,意思就是每一组端口都有8个位;转换成2进制为1111 1111,10进制为255,16进制为0xff,比如我现在要让P1口全亮(高电平为亮),那么是不是P1^0到P1^7这个8个端口全部为1,那么就为:P1 = 2#1111 1111;但是在keil软件中不可以用2进制表示,那么我们就用10进制或16进制来赋值,P1 = ...

相似回答