导航:首页 > 操作系统 > 51单片机函数

51单片机函数

发布时间:2024-06-26 09:50:01

⑴ 51鍗旷墖链洪噷闱㈢殑鍑犱釜鍑芥暟 璋佽兘甯鎴戣В鍐充竴涓 姣忎竴琛岃兘甯鎴戣︾粏璁茶В涓涓嬩箞

void Timer0Init(void) //1寰绉扏11.0592MHz
{
TMOD &= 0xF0; //瀹氭椂鍣1淇濇寔铡熺姸镐佷笉鍙
TMOD |= 0x02; //瀹氭椂鍣0璁剧疆涓烘ā寮2
TH0=0xF7; //鍒濆间负256-9
TL0=0xF7; //閲嶈呭
EA=1; //寮镐讳腑鏂
ET0=1; //寮t1涓鏂

// TR0=1; // 寮濮嬭℃椂

void tm0_isr() interrupt 1 using 1//瀹氭椂鍣0涓鏂链嶅姟鍑芥暟锛屼娇鐢ㄥ伐浣滃瘎瀛桦櫒鍖1
{

}

///////////////////////////////////////////////////////////////

//External interrupt0 service routine
void exint0() interrupt 0 //(location at 0003H) //澶栭儴涓鏂0链嶅姟鍑芥暟
{
Alarm_Off = 1; //鎶ヨ︽带鍒朵俊鍙风疆1

}

////////////////////////////////////////////////////////////////

void delay200ms(void) //寤舵椂200姣绉
{
unsigned char a,b,c;
for(c=55;c>0;c--)
for(b=100;b>0;b--)
for(a=3;a>0;a--);
}

void delay500ms(void) //寤舵椂500姣绉
{
unsigned char a,b,c;
for(c=67;c>0;c--)
for(b=141;b>0;b--)
for(a=18;a>0;a--);
_nop_();
}

void delay1s(void) //寤舵椂1绉
{
unsigned char a,b,c;
for(c=95;c>0;c--)
for(b=26;b>0;b--)
for(a=185;a>0;a--);
}

//----------- INIT UART ----------------------------------------

void UartInit()//涓插彛鍒濆嫔寲鍑芥暟
{
SCON = 0x50; //8-bit variable UART
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 = -(FOSC/12/32/BAUD); //Set auto-reload vaule
TR1 = 1; //Timer1 start run
EA = 1; //Open master interrupt switch
}

//------- Send a byte data to UART ----------------------------
void SendData(unsigned char dat)//鍙戦佷竴涓瀛楄妭
{
SBUF = dat; //Send data to UART buffer
while(!TI);
TI=0;
}

//------- Send a string to UART -------------------------------
void SendString(char *s)//鍙戦佸瓧绗︿覆
{
while (*s) //Check the end of the string
{
SendData(*s++); //Send current char and increment string ptr
}
} 鏀惰捣 sunqi8838306 5

⑵ 51单片机的函数

stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C、C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具体的内容你自己可以打开编译器的include目录里面的stdlib.h头文件看看。

⑶ 51单片机c语言里 _nop_ 函数怎么用

在单片机c语言中直接调用库函数即可,具体如下:

#include<intrins.h> // 声明了void_nop_(void);

_nop_(); // 产生一条NOP指令。

该函数的作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当信乱游汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。

⑷ 51单片机中断函数怎么写

51单片机的中断函数格式:


void jump_low() interrupt 2
{
P1 = ~P1; //位反转
}

interrupt函数格式:

void +函数名()+interrupt +数字0~4

0 表示外部中断0

1 表示定时器/计数器(T0)

2外部中断1

3:定时器/计数器(T1)

4:串行口

⑸ 51单片机C语言中delay函数是怎么定义和使用的

定义一个延时xms毫秒的延时函数

void delay(unsigned int xms) // xms代表需要延时的毫秒数

{

unsigned int x,y;

for(x=xms;x》0;x--)

for(y=110;y》0;y--);

}

使用:

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms》0;Ms--)

for(i=26;i》0;i--);

}

i=[(延时值-1.75)*12/Ms-15]/4

(5)51单片机函数扩展阅读

1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有的延时子程序中变量通过有参函数传递。

2、在延时子程序设计时,采用do?while,结构做循环体要比for结构做循环体好。

3、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。

⑹ 51单片机delay()函数

delay函数是一般自己定义的一个延时函数。

C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}

⑺ 51单片机C语言程序中延时函数delay的原理是什么

原理:只是执行一些所谓的“无实际意义的指令”,如缩放或执行一个int自加,简单地说,就像高中数学中的“乘法原理”一样,很容易迅速增加上面提到的“无意义指令”的数量

关于大小的值:如果是在C语言中,该值不仅与水晶振动、单片机本身的速度,但也与C的编译器,所以,虽然这个值可以精确计算,但大多数情况下,程序员是经验值。

当然,如果你在汇编中编程,情况就不同了,因为每条指令使用一定数量的机器周期,你当然可以根据所有指令使用的总时间来计算特定延迟的总时间。

(7)51单片机函数扩展阅读:

定义延迟XMS毫秒的延迟函数

Voiddelay(unsignedintXMS)//XMS表示需要延迟的毫秒数

无符号intx,y;

For(x=XMS;X0;X-)

For(y=110;Y”0;Y-);

使用:

VoidDelay10us(ucharMs)

Uchar数据我;

(;女士“0;------Ms)

对于(I = 26)我> 0;我-);

I=[(延迟值-1.75)*12/ms-15]/4

⑻ 51单片机用c语言怎么写延时函数

延时时间的计算与单片机的晶振频率有关。若晶振频率为12Mhz,那么单片机每震动一次所需要的时间是1/12M s。那么再来看看单片机执行一次自减所需要的振动次数是96次,假如我们对时间要求不是特别精确的话,可以约等于100来计算。现在通过上面两个数据可以得出:单片机每执行一次自减所需要的时间是1/12M *100(s),即1/120000 s,逆向计算一下,每1ms需要自减多少次?120次对吧。所以一个简单的延时功能就诞生了,我们只需要自减120次,就可以延时1ms,如果我们要延时50ms呢,那就自减50*120=6000次。那么在程序上如何表达呢?我们可以用两套for循环
void delay(int i){
int x,y;
for(x=i;x>0;x--){
for(y=120;y>0;y--)
}
}
参数 i 代表该函数延时多少ms

阅读全文

与51单片机函数相关的资料

热点内容
反编译系统应用安卓90 浏览:598
加密狗一卡通 浏览:712
qemu编译出现的问题 浏览:830
新h6空调压缩机 浏览:839
51单片机t2 浏览:739
android调用子类方法 浏览:368
公共服务器和打印机的地址规划 浏览:981
python从命令行输入参数 浏览:50
linux当前级别 浏览:786
华为命令设置vlan 浏览:121
外国p开头的网站是什么 浏览:360
unix编程艺术txt 浏览:53
汽车听声音解压 浏览:235
硬核程序员 浏览:548
文件夹变醒目 浏览:43
国外上映国内未上映的电影网站 浏览:586
香港服务器卡顿怎么解决 浏览:163
linuxoracletns 浏览:833
androidgallery3d 浏览:97
怎么查订阅了哪些app 浏览:9