51单片机中断控制LED灯亮灭#include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k3=P3^2;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void Int0()//使用中断所做的处理函数 { IT0=1;//外部中断0下降沿触发 EX0=1;//打开外部中断0 EA=1;//打开总中断 } void main()//主函数...
51单片机实现串口通信#include<reg51.h>//头文件 void ckInt()//串口初始化 { TMOD=0x20;//定时计数器1,方式2 TH1=0xF3; //计算出来的初值 TL1=0xF3; //计算出来的初值 PCON=0X80;//波特率加倍 TR1=1;//启动定时计数器1 SCON=0x50;//串口工作方式1 ES=1;//打开串口中断 EA=1;//打开总中断 } void main()//主函数 { ckInt();//调用函数 while(1); } vo...
51单片机定时计数器控制LED1s闪烁一次#include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 void Timer0()//使用定时计数器所做的处理函数,用做定时器 { TMOD=0x01;//定时器0,方式1 TH0=0xFC;//定时1ms的初值 TL0=0x18;//定时1ms的初值 ET0=1;//打开定时计数器0使能控制位 EA=1;//打开总中断 TR0=1;//打开定时计数器0的启动控制位 } void main()//主函数 { Timer0();//调...
用51单片机实现按键控制LED灯亮灭#include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++); } void key()//按键处理函数 { if(k1==0)//判断按键是否按下(按键按下时k=0) { delay();//如果按下按键延时消抖 if(k1==0...
/* * 单片机接收主机的数据,然后将数据传送到P1口, 并传回给主机; * * 当按下K1=P1.4 时, 单片机发送字符串 给主机 * * * * */ #include <reg51.h> #include <intrins.h> unsig...
如下程序能实现ms毫秒级的比较精确的延时void delay_ms(unsigned int n){unsigned int i=0,j=0; for(i=0;i<n;i++) for(j=0;j<123;j++);}用keil可以看出这个延时的时间,我们先延时1ms delay_ms(1)。进入Delayms前,sec=0.00042209s延时后,sec=0.00142253s可以知道delay_ms(1)实际延时0.00142253s—0.00042209s=0.00100044s≈1ms同样如果想延时15ms的话,用delay_ms(15),实际延时0.014...
STC89C52单片机串行接口乱码玩普中科技的51单片机时 ,检查了波特率没问题,依旧乱码, 最后通过排除法发现时中断允许位的原因,跟大家分享简单来说,就是发送数据过程中被中断了,因为字节和位数的问题产生乱码。解决方法考虑到之后还是要用到ES=1;所以只能局部关闭再打开。本代码波特率4800 晶振12M#include"reg52.h" #include"string.h" typedef unsigned int u16; typedef unsigned char u8; void UsartInit() { TMOD=0X20; ...
#include <reg52.h> #include <stdio.h> #define uint unsigned int #define uchar unsigned char //毫秒级延时函数定义 void delay(uint z) { uint x,y; for(x = z; x > 0; x--) for(y = 114; y > 0 ; y--); } //串口初始化 void UARTInit() { SM0...
sbit beep=P2^3; //蜂鸣器引脚 void delay_us(u8 t) //10倍微秒延时函数,延时10*t微秒 {u8 i; for(i=0;i<=t;i++); } void Alarm(u8 t) //蜂鸣器报警,持续t秒 { u8 i,j,k; for(j=0;j<t;j++) { for(i=0;i<200;i++) {beep=0;delay_us(50);beep=1;delay_us(50);} for(k=0;k<100;k++) {beep=0;delay_us(110...
#include<reg51.h> #include<stdio.h> #include<intrins.h> sbit ydcgq=P1^1; //引脚 sbit led=P1^2; //引脚 sbit beep=P1^5; //引脚 typedef unsigned int u16; typedef unsigned char u8; unsigned char date; void delays(unsigned int n) //毫秒延时函数 { unsigned int a,b; for(a=0;a&l...