单片机c语言简单程序(编写简单的单片机c语言程序 1、指定数组找最大值 2、排序)

:暂无数据 2026-09-25 07:00:07 :2

单片机c语言简单程序(编写简单的单片机c语言程序 1、指定数组找最大值 2、排序)

各位老铁们好,相信很多人对单片机c语言简单程序都不是特别的了解,因此呢,今天就来为大家分享下关于单片机c语言简单程序以及编写简单的单片机c语言程序 1、指定数组找最大值 2、排序的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

编写简单的单片机c语言程序 1、指定数组找最大值 2、排序

#include《stdio.h》

#defineNR10//数组元素个数

/*从主函数开始*/

intmain(intargc,char**argv)

{

intar;

inti;

fprintf(stdout,"请输入%d个整数:\n",NR);

/*获取并检查用户输入*/

while(1)

{

/*循环获取NR个数据*/

for(i=0;i《NR;i++)

{

if(fscanf(stdin,"%d",&ar)!=1)

{

fprintf(stdout,"输入错误!请重新输入:\n");

while(getchar()!=’\n’);//丢弃多余非法字符

break;//打破内层for循环

}

}

/*检查是否获取到NR个数据*/

if(i!=NR)

{

continue;

}

else

{

break;

}

}

/*查找最大值和最小值*/

intmax,min;

max=ar;//假定第一个数为最大值

min=ar;//同时假定也第一个数为最大值

/*从第二个数开始比较查找最值*/

for(i=1;i《NR;i++)

{

if(ar》max)//最大值

{

max=ar;

}

if(ar《min)//最小值,不能使用elseif,否则会跳过比较

{

min=ar;

}

}

fprintf(stdout,"最大值为:%d最小值为:%d\n",max,min);

/*接下来:查找第二大值*/

intsecond;

/*先获取前两个数的第一大和第二大值*/

ar):\

(max=ar);

/*从第2个数开始比较查找*/

for(i=2;i《NR;i++)

{

if(ar》max)//查找最大值:目的是为了比较第二大值

{

second=max;//先把最大值保存给第二大值

max=ar;

}

elseif(second《ar)//比最大值小的数再看看是否大于第二大值

{

second=ar;

}

}

fprintf(stdout,"第二大值为:%d\n",second);

return0;

}

扩展资料

一、c语言程序求数组内所有数的和:

1、通过索引的方式就可以访问到数组内部的元素,索引是从0到数组长度-1。

2、数组点Lenth就是数组的长度。

二、c语言程序冒泡排序:

1、比较相邻的两个元素的大小,如果第一个比第二个大就互换一下。

2、然后每一对都做如上操作,如此一来最后一个元素肯定是最大的数了。

3、除了最后一个元素,重复以上步骤。然后倒数第二个就是次大的值了

4、一次按照这个逻辑直到没有任何数字可以比较了。

求问用c语言编写单片机程序

unsigned data char i,x;
unsigned xdata char *p;
p=0x1000;
x=0;
for(i=0;i《11;i++)x+=*p;
DBYTE=x;
unsigned data char x1 _at_ 0x30;
unsigned data char x2 _at_ 0x40;
unsigned int x;
unsigned xdata char *p;
x=x1+x2;
p=0x2000;
*p=x;
p++;
*p=x》》8;

很简的51单片机C语言流水灯程序

1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:

#include《reg51.h》  //51单片机头文件
#include 《intrins.h》 //包含有左右循环移位子函数的库
#define uint unsigned int    //宏定义
#define uchar unsigned char  //宏定义
sbit beep=P2^3;
void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{                    //delay(500);大约延时500ms.
    uint x,y;
    for(x=z;x》0;x--)
        for(y=110;y》0;y--);    
}
void main()            //主函数
{
    uchar a,i,j;
    while(1)        //大循环
    {
        a=0xfe;     //赋初值
        for(j=0;j《3;j++) for(i=0;i《8;i++)   //左移三次
        {
            P1=a;       //点亮小灯
            beep=0;     //开启蜂鸣器
            delay(50); //延时50毫秒
            beep=1;     //关闭蜂鸣器
            delay(50);  //再延时50毫秒
            a=_crol_(a,1); //将a变量循环左移一位
        }
        a=0x7f;
       for(j=0;j《3;j++) for(i=0;i《8;i++)  //右移三次
        {
            P1=a;       //点亮小灯
            beep=0;     //开启蜂鸣器
            delay(50); //延时50毫秒
            beep=1;     //关闭蜂鸣器
            delay(50);   //再延时50毫秒
            a=_cror_(a,1); //将a变量循环右移一位
        }        
    }
}


2、51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

大神,求51单片机做简易计算器的那个c语言程序

以下是我编的简易计算器程序,基本成功
//4*4键盘检测程序,按下键后相应的代码显示在液晶屏上
//显示5位后,第6次显示操作符号
//再显示下一个数
// 键值与功能对应表
//键值 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//功能 0 1 2 3 4 5 6 7 8 9 + - × ÷ = 清零
#include《reg52.h》
sbit beep=P2^3;
sbit lcden=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
#define uint unsigned int
#define ulint unsigned long int
#define uchar unsigned char
#define lcddata P0
ulint bb,dd,ee,ff;
uchar d,flag1;
uchar fd1,fd2;
uchar b1=16,b2=16,b3=16,b4=16,b5=16;
uchar d1=16,d2=16,d3=16,d4=16,d5=16;
uchar f1=16,f2=16,f3=16,f4=16,f5=16,f6=16,f7=16,f8=16,f9=16,f10=16;
uchar key,keyval,c,temp;
void Delay1ms(uint i) //1ms延时程序
{
uint j;
for(;i》0;i--)
{
for(j=0;j《125;j++)
{;}
}
}
void write_com(uchar com)
{
lcddata=com;
rs=0;
rw = 0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void write_date(uchar date)
{
lcddata=date;
rs=1;
rw=0;
lcden=0;
Delay1ms(10);
lcden=1;
Delay1ms(10);
lcden=0;
}
void init2()
{
rw=0;
write_com(0x38);
Delay1ms(10);
write_com(0x0f);
Delay1ms(10);
write_com(0x06);
Delay1ms(10);
write_com(0x01);
Delay1ms(10);
}
void display1(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5) //第1个数显示程序
{
init2();
write_com(0x80);//第1行,第1字
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
}
void display2(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5) //第2个数显示程序
{
write_com(0x88);//第1行,第1字
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
}
void display3(uchar a) //操作符号显示程序
{
write_com(0x86);//第1行,第1字
Delay1ms(10);
switch(a)
{
case 10:
write_date(’+’);
Delay1ms(10);
case 11:
write_date(’-’);
Delay1ms(10);
case 12:
write_date(’x’);
Delay1ms(10);
case 13:
write_date(’/’);
Delay1ms(10);
}
}
void display4(uchar A1,uchar A2,uchar A3,uchar A4,uchar A5,uchar A6,uchar A7,uchar A8,uchar A9,uchar A10,uchar A11,uchar A12) //结果显示程序
{
write_com(0x80+0x40);//第2行,第1字
Delay1ms(10);
if (flag1==0)
{
write_date(’-’);
}
else write_date(’+’);
Delay1ms(10);
write_date(0x30+A1);
Delay1ms(10);
write_date(0x30+A2);
Delay1ms(10);
write_date(0x30+A3);
Delay1ms(10);
write_date(0x30+A4);
Delay1ms(10);
write_date(0x30+A5);
Delay1ms(10);
write_date(0x30+A6);
Delay1ms(10);
write_date(0x30+A7);
Delay1ms(10);
write_date(0x30+A8);
Delay1ms(10);
write_date(0x30+A9);
Delay1ms(10);
write_date(0x30+A10);
Delay1ms(10);
write_date(’.’);
Delay1ms(10);
write_date(0x30+A11);
Delay1ms(10);
write_date(0x30+A12);
Delay1ms(10);
}
uchar keyscan()
{
key=16;
P3=0xef;//P3.7输出1个低电平
temp=P3; //读取
temp=temp&0x0f;//屏蔽高4位
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xed:
key=4;
break;
case 0xeb:
key=8;
break;
case 0xe7:
key=12;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0x0f;
beep=0;
}
beep=1;

}
}
P3=0xdf;
temp=P3;
temp=temp&0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xde:
key=1;
break;
case 0xdd:
key=5;
break;
case 0xdb:
key=9;
break;
case 0xd7:
key=13;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0x0f;
beep=0;
}
beep=1;

}
}
P3=0xbf;
temp=P3;
temp=temp&0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0xbe:
key=2;
break;
case 0xbd:
key=6;
break;
case 0xbb:
key=10;
break;
case 0xb7:
key=14;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0x0f;
beep=0;
}
beep=1;

}
}
P3=0x7f;
temp=P3;
temp=temp&0x0f;
if(temp!=0x0f)
{
Delay1ms(10);
if(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case 0x7e:
key=3;
break;
case 0x7d:
key=7;
break;
case 0x7b:
key=11;
break;
case 0x77:
key=15;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0x0f;
beep=0;
}
beep=1;

}
}
return(key);
}
void main()
{ while(1)
{
c=1;
while(c《6)//输入第1个5 位数
{
keyval=keyscan();
if(keyval《10)
{
switch(c)
{
case 1:b1=keyval; break;
case 2:b2=keyval; break;
case 3:b3=keyval; break;
case 4:b4=keyval; break;
case 5:b5=keyval; break;
}
c++;
}
display1(b1,b2,b3,b4,b5);
}

while(c==6) //输入计算符号
{
keyval=keyscan();
if((keyval》=10)&&(keyval《14)) //可去一层括号,因逻辑运算优先级较低
{
d=keyval;
}
c=1;
display3(d);
}
while(c《6) //输入第2个5 位数
{
keyval=keyscan();
if(keyval《10)
{
switch(c)
{
case 1:d1=keyval; break;
case 2:d2=keyval; break;
case 3:d3=keyval; break;
case 4:d4=keyval; break;// 除
case 5:d5=keyval; break;
}
c++;
}
display2(d1,d2,d3,d4,d5);
}

bb=b1*10000+b2*1000+b3*100+b4*10+b5;
dd=d1*10000+d1*1000+d3*100+d4*10+d5;
while(keyval!=14) //等待按下"="
{
keyval=keyscan();
}
Delay1ms(10);
switch(d)
{
case 10:ee=bb+dd; break;//+
case 11:
flag1=1;
if(bb》=dd)
{
ee=bb-dd; //-
flag1=0;
}
else ee=dd-bb;
break;

case 12:ee=bb*dd; break;//*可能会溢出
case 13:ee=bb/dd; //除法小数部分会丢失,保留2位
ff=bb%dd;
fd1=ff*10/dd;
fd2=ff*100/dd%10;
break;
}
f10=ee/1000000000%10;
f9=ee/100000000%10;
f8=ee/10000000%10;
f7=ee/1000000%10;
f6=ee/100000%10;
f5=ee/10000%10;
f4=ee/1000%10;
f3=ee/100%10;
f2=ee/10%10;
f1=ee%10;
display4(f10,f9,f8,f7,f6,f4,f4,f3,f2,f1,fd1,fd2);

while(keyval!=15)
{
keyval=keyscan();
}
b1=0;b2=0;b3=0;b4=0;b5=0;
d1=0;d2=0;d3=0;d4=0;d5=0;
bb=0;dd=0;ee=0;
init2();
}
}

OK,关于单片机c语言简单程序和编写简单的单片机c语言程序 1、指定数组找最大值 2、排序的内容到此结束了,希望对大家有所帮助。

单片机c语言简单程序(编写简单的单片机c语言程序 1、指定数组找最大值 2、排序)

本文编辑:admin

更多文章:


pascal letoublon(求friendsships-pascal mp3下载)

pascal letoublon(求friendsships-pascal mp3下载)

各位老铁们,大家好,今天由我来为大家分享pascal letoublon,以及求friendsships-pascal mp3下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家

2026年10月13日 15:50

convert的名词(shift和convert区别)

convert的名词(shift和convert区别)

大家好,今天小编来为大家解答以下的问题,关于convert的名词,shift和convert区别这个很多人还不知道,现在让我们一起来看看吧!

2026年10月13日 14:40

免费photoshop 中文版下载(哪里可以下载免费的ps软件)

免费photoshop 中文版下载(哪里可以下载免费的ps软件)

这篇文章给大家聊聊关于免费photoshop 中文版下载,以及哪里可以下载免费的ps软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月13日 13:00

centos7退出命令(centos7 如何退出if show)

centos7退出命令(centos7 如何退出if show)

大家好,如果您还对centos7退出命令不太了解,没有关系,今天就由本站为大家分享centos7退出命令的知识,包括centos7 如何退出if show的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月13日 12:10

怎么免费做一个自己的网站(建立自己的网站要钱吗怎么建立一个免费网站呢)

怎么免费做一个自己的网站(建立自己的网站要钱吗怎么建立一个免费网站呢)

大家好,怎么免费做一个自己的网站相信很多的网友都不是很明白,包括建立自己的网站要钱吗怎么建立一个免费网站呢也是一样,不过没有关系,接下来就来为大家分享关于怎么免费做一个自己的网站和建立自己的网站要钱吗怎么建立一个免费网站呢的一些知识点,大家

2026年10月13日 09:20

对勾函数四种图像(对勾函数是怎样的解析式,性质)

对勾函数四种图像(对勾函数是怎样的解析式,性质)

本篇文章给大家谈谈对勾函数四种图像,以及对勾函数是怎样的解析式,性质对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月13日 08:00

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

handler的使用(Android中Handler的主要作用是什么通俗点,初学)

各位老铁们,大家好,今天由我来为大家分享handler的使用,以及Android中Handler的主要作用是什么通俗点,初学的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,

2026年10月13日 07:50

c语言函数递归数列(c语言编程:用递归方法求数列的和)

c语言函数递归数列(c语言编程:用递归方法求数列的和)

这篇文章给大家聊聊关于c语言函数递归数列,以及c语言编程:用递归方法求数列的和对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月13日 05:40

python list方法(python中List添加、删除元素的几种方法)

python list方法(python中List添加、删除元素的几种方法)

其实python list方法的问题并不复杂,但是又很多的朋友都不太了解python中List添加、删除元素的几种方法,因此呢,今天小编就来为大家分享python list方法的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2026年10月13日 04:40

sql触发器的主要作用是什么(sql server 触发器有什么用)

sql触发器的主要作用是什么(sql server 触发器有什么用)

这篇文章给大家聊聊关于sql触发器的主要作用是什么,以及sql server 触发器有什么用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月13日 03:30

最近更新

广东企业官方网站建设流程有哪些?
2026-10-13 15:46:19 浏览:0
荥阳抖音seo优化怎么操作?新手必看
2026-10-13 15:44:20 浏览:0
黄山网站优化推广报价表怎么选?
2026-10-13 15:42:18 浏览:0
天津优化型网站建设应该怎么选?
2026-10-13 15:41:20 浏览:0
热门文章

sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
thinkpadx100eu盘启动(thinkpad x100e U盘启动 支持的写入方式是什么)
2026-09-01 14:20:01 浏览:6
标签列表