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 () interrupt 0 //中断程序
{
......
}
时钟中断 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单片机 功能函数
引用地址:
51单片机常用功能函数
推荐阅读最新更新时间:2024-03-16 14:40
51单片机产生2KHZ方波程序
51单片机如果采用11.0592MHZ的晶振,则一个机器周期等于12的震荡周期(晶振频率的倒数),即每个机器周期约是1.085us,其计算方法分析如下: 由于晶振是11.0592MHz,则一个机器周期等于(1S/11.0592MHZ)*12*106=1.085us 如果采用12MHZ的晶振,则一个机器周期等于(1S/12MHZ)*12*106=1us 以用采用11.0592MHZ的晶振,利用51单片机的定时器0产生2khz程序为例,分析如下: 2kHz是500us产生一个的方波(波峰250us,波谷250us)取半个周期记为t=250us 250us/1.09us需要计数229次,因而初值应装,TH0=(655
[单片机]
51单片机的P1、P2、P3口的工作原理
1、P1口某一位的内部电路结构如下图所示,在51单片机的P0,P1,P2,P3口中,P1口的结构最简单,用途也最单一。仅仅只作为普通的数据输入/输出(I/O)端口使用。从图中可以看出,P0口与P1口的主要差别在于:P1端口用内部上拉电阻代替了P0端口的场效应管,并且输出的信息只有内部总线的信息,没有了数据/地址总线的复用。 1)P1口用作输入端口 如果P1口用作输入端口,即Q=0,/Q=1;则场效应管导通,引脚被直接连到电源的地GND上,即使引脚输入的是高电平,被直接拉低为 0 ,所以,与P0端口一样,在将数据输入P1端口之前,先要通过内部总线向锁存器写 1 ,这样/Q=0,场效应管截止,P1端口输入的
[单片机]
62-基于51单片机的天然气检测报警设计
具体实现功能 系统由STC89C52单片机+MQ-5传感器模块电路+3个LED指示灯电路+蜂鸣器报警电路+PCF8591AD模块+风扇控制电路+继电器电路+电源电路组成。 1、MQ-5实时检测煤气浓度,浓度分为低中高3档,并分别用绿灯、黄灯和红灯指示,浓度到达相应的档位,则相应的灯亮,指示灯指示安全状态。 2、当浓度达到高档的时候,蜂鸣器报警,风扇启动,疏散煤气,继电器工作驱动负载断开煤气阀; 3、当浓度达到中档时,继电器工作,驱动负载断开煤气阀。 设计背景 人的生存离不开空气,人的一生大约有80%的时间是在室内度过的,室内环境质量的好坏影响着人们的身心健康。室内的有害气体来源有来自装修不当造成的甲醛、氨气、氡气、
[单片机]
51单片机定时器/计数器的结构以及原理介绍
定时器/计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l单片机有2个16位的定时器/计数器:定时器0(T0)和定时器1(T1)。 T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的1/12。作计数器时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的
[单片机]
51单片机流水灯C语言源程序
************************************************************** 文件名称:flash_led.c 文件说明:流水灯C程序 编写日期:2006年10月5日 程序说明:MCU采用AT89S51,外接12M晶振,P1口输出 *************************************************************/ #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay
[单片机]
80C51单片机片内与片外程序存储器的选择
大多数51系列单片机内部都配置一定数量的程序存储器ROM。如80C51芯片内有4KB掩模ROM存储单元,AT89C51芯片内部配置了4KB Flash ROM,它们的地址范围均为0000H~0FFFH。 ROM可以用来存放固定的程序或数据,如系统监控程序,常数表格等。 片内与片外程序存储器的选择 80C51的程序计数器PC是16位的计数器,所以能寻址64KB ROM的任何单元。 1.~EA引脚接高电平 ~EA引脚接高电平,对于基本型单片机,首先在片内程序存储器中取指令,当PC的内容超过0FFFH(4K)时,系统会自动转到片外的程序存储器中取指令,外部程序存储器的地址从1000H开始编址。 2.~EA引脚接低电平 ~
[单片机]
51单片机键盘扫描程序解析
/****************************************键盘_不采用定时器_不延时特点:按键在松手后有效,灵敏度高,消耗资源少,运行效率高独立键盘为:K01=P2^4;K02=P2^5;K03=P2^6;K04=P2^7;矩阵键盘为:行(上到下)_P2.3_P2.2_P2. /**************************************** 键盘_不采用定时器_不延时 特点: 按键在松手后有效,灵敏度高,消耗资源少,运行效率高 独立键盘为:K01=P2^4;K02=P2^5;K03=P2^6;K04=P2^7; 矩阵键盘为:行(上到下)_P2.3_P2.2_P
[单片机]
AT89S51单片机并行I/O端口的扩展
1 引言 单片机面向工业控制领域,控制功能强,在工业测控系统、智能仪表、智能通信产品、智能家用电器和智能终端设备等领域得到广泛应用。最常用的80C51系列单片机有4个并行端口(P0,P1,P2,P3端口),但对稍复杂的应用系统,真正可供用户使用的并行端口只有P1端口,且常因扩展I2C和SPI的器件需占用P1端口,迫使用户不得不扩展并行端口以满足实际需要。 这里研究80C51系列单片机中的AT89S51并行I/O端口的扩展,采用并行可编程接口器件Intel 8155扩展并行I/O端口,并在扩展的I/O端口上实现数码管动态显示。 2 系统设计 2.1 系统硬件设计 Intel 8155与AT89
[单片机]