首页技术c语言写单片机程序?51单片机如何写程序

c语言写单片机程序?51单片机如何写程序

编程之家2026-07-021134次浏览

大家好,关于c语言写单片机程序很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于51单片机如何写程序的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

c语言写单片机程序?51单片机如何写程序

C语言怎么写进单片机

1:先把写好的C语言进行编译,生成*.hex或*.bin文件,推荐用keil C。

然后:

1:根据你单片机的型号买一个烧录器,与PC连接好后,把单片机放在烧录器的插座上(看你的单片机封装,新手尽量用DIP的),根据烧录器软件提示把上述文件烧到单片机里,缺点:价格较高

2:用下载线,用法与烧录器差不多,缺点:比较麻烦,要有一定经验。

3:用学习板,一般学习板上面的单片机可以直接在线烧录(如STC,SST系列的单片机),也就是说单片机不用拆下来,板子上做好了烧录电路,可以在板子上烧录,然后就可以直接验证了。

4:自已做一个,用STC的单片机,只要用一个RS232的转换电路(一片232IC,几个电解电容就行了),STC的单片机可以通过串口烧录程序,具体参见STC官网或其DATASHEET,有详细介绍。缺点:要一定动手能力

c语言写单片机程序?51单片机如何写程序

推荐新手用第3方法,可以很快上手。

51单片机C语言程序

//你原来的b2,b2都是死循环,这是不行的,只有主函数才可以死循环。

//你的主函数结构也有问题。

//为你增加了一个按键检测的函数。

//下列程序通过了实验测试。

//b1输出的周期大约0.9s。

c语言写单片机程序?51单片机如何写程序

//b2输出的周期大约0.6s。

//K为触动开关,reg为红灯,bice为绿灯,b1、b2各为一个方波,

//按第一次触动开关时红灯亮、b1输出,

//按第二次绿灯亮、为b2输出,

//按第三次都关闭.

#include<reg51.h>

#define uint unsigned int

#define uchar unsigned char

uint a;

void b1();

void b2();

sbit t= P1^0;

sbit k= P3^5;

sbit reg= P3^3;

sbit bice= P3^2;

void delay(uchar z)

{

uint x,y;

for(x= z; x> 0; x--) for(y= 110; y> 0; y--);

}

bit key()

{

bit kkk;

kkk= k;//读入按键.

if(kkk== 1) return 0;//没有按下.

delay(5);//延时.

if(k== kkk) return 1;//两次相等.

return 0;

}

void main()

{

while(1){

P3= 0xff;

while(!key());//静等按下第一次.

reg= 0;

bice= 1;

while(!key()) b1();//没有按下第二次就循环等待.

reg= 1;

bice= 0;

while(!key()) b2();//没有按下第三次就循环等待.

}

}

void b1()

{

P1= 0xfe; a= 50000; while(a--);

P1= 0xff; a= 50000; while(a--);

}

void b2()

{

P1= 0xfe; a= 30000; while(a--);

P1= 0xff; a= 30000; while(a--);

}

求单片机程序(C语言),新手不会写

/*

把P0.0定义K1,P0.1定义K2, P0.3定义K4,P1.0定义Y0,P1.1定义Y1,单片机低电平有效。

K1光电开关(为触发开关)检测到物体时输出低电平,K2(检测开关)检测到物体时高电平,K4(检测开关)检测到物体时是低电平,Y0外接电机,Y1外接继电器。

1、在开机状态下,K1没有检测到物体(没有触发),K2没有检测到物体,K4没有检测到物体,Y0为高电平,Y1为高电平。

2、 K1没有检测到物体为高电平,K2没有检测到物体为低电平,K4检测到物体为低电平。

Y0为高电平,Y1为低电平

3、 K1检测到物体(触发)为低电平,K2没有检测到物体为低电平,K4检测到物体为低电平,Y0为输出低电平,Y1输出高电平。

4、 K1没有检测到物体(没有触发)为高电平,K4检测到物体为低电平,当K2检测到物体为高电平,当K2从高电平变成低电平时,Y0输出为高电平,Y1输出为低电平。

5、当K4没有检测到物体时,Y0延时3秒变为高电平,Y1为高电平。

*/

#include<reg52.h>

sbit K1= P0^0;// 0

sbit K2= P0^1;// 1

sbit K4= P0^3;// O

sbit Y0= P1^0;// MOTOR

sbit Y1= P1^1;// SWITH

bit flag_have_K4= 0;

bit falg_have_K2= 0;

void delayms(int tms)

{

char i;

while(tms--)

{

i= 110;

while(i--);

}

}

void main(void){

unsigned char Y_status= 0;

Y0= 1;

Y1= 1;

while(1){

if(!K4)//测到

{

flag_have_K4= 1;

if(K1)////4 011--> 2 001

{

//Y0= 1;

//Y1= 0;

if(K2)

{

falg_have_K2= 1;

}

if(!K2&&falg_have_K2)

{

falg_have_K2= 0;

Y_status= 2;

}

}

if(!K1&&!K2)//3 101

{

//Y0= 0;

//Y1= 1;

Y_status= 3;

}

}

else

{

if(K1&&!K2)//1 000

{

Y_status= 1;

}

if(flag_have_K4)

{

flag_have_K4= 0;

Y_status=4;

}

}

if(1== Y_status)

{

Y0= 1;

Y1= 1;

Y_status= 0;

}

else if(2== Y_status)

{

Y0= 1;

Y1= 0;

Y_status= 0;

}

else if(3== Y_status)

{

Y0= 0;

Y1= 1;

Y_status= 0;

}

else if(4== Y_status)

{

delayms(3000);

Y0= 1;

Y1= 1;

Y_status= 0;

}

else

{

Y_status= 0;

}

}

}

c语言写单片机程序和51单片机如何写程序的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

vlookup多个条件匹配(lookup与vlookup区别)php是什么文件??php文件用什么软件打开