新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机常用功能函数

51单片机常用功能函数

作者: 时间:2016-11-24 来源:网络 收藏
delay延时函数
void delayms (uint xms) //( 毫秒单位
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--)
}
单片机外部中断0设置开启 P3.2口为中断0出入口
EA=1; //开启总中断
EX0=1;//开启外部中断0
TCON=0x01;//设置触发方式(此方式为下降沿)可对每一位操作
void exter0 () interrupt0 //中断程序
{
......
}
时钟中断 1秒钟时钟 晶振为11.0592
//注意:1.对TMOD赋值,确定T0和T1的工作方式。2.计算初值,写入TH0、TL0或TH1、TL1。
3.中断方式,对IE赋值,开放中断。4.使TR0或TR1置位,启动定时器/计数器时或计数。
void main
{
TMOD=0x01;//设置定时器0模式(16位,定时器模式,内部) 也可以将初始化单独写成函数
TH0=(65536-50000)/256;//装初值
TL0=(65536-50000)%6;
EA=1;//开总中断
ET=1;//开定时器0中断
TR0=1;//启动定时器0
if(tt==20)
{
tt=0;
.......
}
}
void timer0() interrupt 1 // 定时器中断
{
TH0=(65536-50000)/256;//由于进入中断16为计数器会清零,所以重新赋值
TL0=(65536-50000)%6;
tt++;
}
按键消除浪涌处理
void main()
{
if(key1==0)
{
delay(5);//尽量在5毫秒以上
if(key1==0)
{
// d1=0;
// num++; 这里可以写自己需要的程序
// if(num==10)
// num=0;
}
while(!key1);//判断是否松手
delay(5);//消除松手时产生的浪涌
while(!key1);
}
DA转化
void main()
{
P3.2=0;//DA的CS-为低电平有效,打开DA的片选
P3.6=0;//DA的wr低电平,
P0=0xFF;//把灯点亮,而且是最亮。如果 P0=0;灯灭. P0输出不同的2进制可以控制 LED的亮度。
while(1);
}
AD转换 AD0804


关键词:51单片机功能函

评论


技术专区

关闭