首页编程单片机c语言常用语句,单片机编程入门基础知识

单片机c语言常用语句,单片机编程入门基础知识

编程之家2026-05-19828次浏览

很多朋友对于单片机c语言常用语句和单片机编程入门基础知识不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

单片机c语言常用语句,单片机编程入门基础知识

51单片机C语言程序

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

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

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

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

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

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

单片机c语言常用语句,单片机编程入门基础知识

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

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

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

//按第三次都关闭.

#include<reg51.h>

#define uint unsigned int

单片机c语言常用语句,单片机编程入门基础知识

#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语言,求大神逐句翻译一下。

#include<REGX51.H>//头文件

#define uchar unsigned char//变量关键字更改

#include<intrins.h>//头文件

uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xC0};

//字符数组定义

void delay()//子函数定义

{ uchar i,j;//变量定义

for(i=0;i<15;i++)//for语句,执行15次

for(j=0;j<250;j++)//执行250次

{_nop_();}//共执行250*15次空函数,延时操作

}

uchar seg7(uchar a)//子函数定义

{return tab[a];}//返回tab数组内第a个变量的值

void main(void)//主函数

{ uchar i,j,k,x,y;//变量定义

P1=0xff;//port1全部置位

P0=0xff;//port0全部置位

y=0;//y赋0

while(1)//无限循环

{ j=0xf7;//j赋11110111

k=y;//y赋给k

for(i=0;i<4;i++)//4次循环

{

P0=seg7(k);//P0=第K个元素的值

k++;//k=k+1

P1=_cror_(j,i);//P1口带返回的移位操作

delay();//延时

P1=0xff;//P1全部置高

}

x++;//x=x+1

if(x==15){x=0;y++;}//如果15次,x=0,y=y+1

if(y==8)y=0;//8*15次,y=0,重新开始循环

}

}

请教一句单片机C语言

PORTC&=~(1<<6);

其中(1<<6)就是bit6为1其余位都是0的一个代码,也就是二进制的01000000。

~(1<<6)就是将此代码取反,即:除了bit6为0其余位都是1的一个代码。

PORTC与这个代码作“与”的操作,即:将PORTC中的bit6清零,其余位不变。

类似道理:

PORTX&=~((1<<7)|(1<<2));/*将PORTX中的bit7、bit2清零,其余位不变。*/

PORTY|=(1<<5)|(1<<3);/*将PORTY中的bit5、bit3置1,其余位不变。*/

这种写法的好处是:

(1)其位号直接写成数了,比写成01000000这类形式再换成十进制容易查错(不用数位数,不用换算),减少笔误。

(2)可以用宏定义给位号取个容易理解的名字,便于读者理解程序。

例如,如果其中的bit6是一个QF标志,那么,可以先定义

#define QF 6

然后,这里再将

PORTC&=~(1<<6);

直接写成:

PORTC&=~(1<<QF);/*将QF标志清零*/

程序的含义就很清楚了。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

表格制作 快速入门(表格制作软件)html中table border,border-collapse