//实现功能:利用独立按键1KEY1+独立按键2KEY2控制LED1和LED2,KEY3控制控制蜂鸣器鸣叫,KEY4控制左右移流水灯
#include"reg52.h"
#include"intrins.h"#define  u16 unsigned int
#define  u8 unsigned char#define KEY1_PRESS 1
#define KEY2_PRESS 2
#define KEY3_PRESS 3
#define KEY4_PRESS 4
#define KEY_UNPRESS 0
#define LED_PORT   P2sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;//定义按键管脚sbit BEEP=P2^5;//定义蜂鸣器管脚sbit LED1=P2^0;//定义LED1管脚
sbit LED2=P2^1;
sbit LED3=P2^2;void delay_10us(u16 ten_us) //延时函数
{while(ten_us--);
}u8 key_scan(u8 mode) //按键扫描函数:mode=1--持续扫描     mode=0--单次扫描
{static control=1;if(mode)control=1;if((control==1)&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0)){delay_10us(8000);//延时10ms,消抖control=0;//单次扫描控制if(KEY1==0)return KEY1_PRESS;if(KEY2==0)return KEY2_PRESS;if(KEY3==0)return KEY3_PRESS;if(KEY4==0)return KEY4_PRESS;}else{control=1;//便于再次进入单次扫描}return KEY_UNPRESS;
}void beep_ring(void) //蜂鸣器驱动函数
{u16 i=2000;//赋予i的初始值while(1){while(i--){BEEP=!BEEP;delay_10us(100);}i=0;//让蜂鸣器不再进入内循环,持续鸣叫}
}
void led_run(void)//左右移动流水灯函数
{u8 i;LED_PORT=0xfe;delay_10us(50000);while(1){for(i=0;i<7;i++){LED_PORT=_crol_(LED_PORT,1);delay_10us(50000); }for(i=0;i<7;i++){LED_PORT=_cror_(LED_PORT,1);delay_10us(50000);}}
}
void main()
{while(1){u8 flag;flag=key_scan(0);//单次扫描switch(flag){case 1:LED1=!LED1;break;case 2:LED2=!LED2;break;case 3:beep_ring();break;case 4:led_run();break;default:break;}}
}
//该程序弊端:一旦按下KEY3或KEY4(reason:陷入子函数循环)无法继续控制LED1和LED2的亮灭,需要复位,才能继续控制

普中科技51单片机开发板相关推荐

  1. 使用普中科技51单片机进行(I^2)C总线操作

    /*C51单片机学习打卡*/ /*观看郭天祥老师教学视频,使用普中科技51单片机开发板进行学习(I^2)C总线操作*/ /*功能:在开发版上进行999秒计时,在单片机掉电情况下可以记录最后一秒的数据* ...

  2. 使用普中科技ESV2.0开发板控制步进电机

    使用普中科技ESV2.0开发板驱动步进电机 文章目录 使用普中科技ESV2.0开发板驱动步进电机 前言 一.步进电机的驱动原理 工作原理 二.如何让步进电机转起来 相数 驱动方法 注意图中接线顺序,不 ...

  3. 普中科技51单片机的ADC采样电位器功能实现以及特点

    ADC模数转换的目的: **单片机能够接受和处理的数据都是离散的数字量,而不是连续的模拟量,**就和机器语言不能和普通语言一样通用,要先转换成单片机能够接受的数据,才能进行对模拟量数据(比如,温度,受 ...

  4. 基于普中科技的单片机开发实验仪编写的数字表

    基于普中科技的单片机开发实验仪编写的数字表 1.项目简单说明 一.显示日期,对ds1302芯片进行计时所得的日期用数码管进行显示: 二.显示温度,对18B20芯片测量所得的温度用数码管进行显示: 三. ...

  5. 普中科技51单片机_【笔记】普中科技-51单片机-静态数码管显示

    #include <reg51.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u ...

  6. 巫妖王51单片机开发板配套视频课程-朱有鹏-专题视频课程

    巫妖王51单片机开发板配套视频课程-8368人已学习 课程介绍         本课程是巫妖王51单片机开发板的配套视频课程,本课程的目标是用少的时间带大家初级入门51单片机.配合巫妖王51单片机开发 ...

  7. 基于普中51单片机开发板的温控风扇

    自学单片机也不算很久,刚好遇上了这一门的课程设计,查找了好多的资料发现都不算合适,合适的又要收费,那么最后呢才找到了一个有关我使用的开发板的温控风扇程序,也就是普中单片机开发板,该程序来自--黑51论 ...

  8. 51单片机开发板资料270G | 免费下载

    目录 <手把手教你学51单片机> <郭天祥51单片机TX-1C 51-视频教程征服你> <单片机视频教程(汇编)> <给力者51单片机视频教程> < ...

  9. 普中科技stc89c52rc单片机烧写失败

    我在使用普中的stc89c52rc单片机时候遇到了烧写失败的情况,如图所示 尝试使用stc-isp 进行烧写时候一直显示正在检测目标单片机 我的解决办法: STC-ISP勾选使能6T(双倍速)模式 , ...

  10. 51单片机开发板(W25Q16学习)

    教程资料 链接:https://pan.baidu.com/s/142JRSPisQO2Cu6VZ2Y5YrQ 密码:eom0 今天测试开发板的W25Q16(16Mbit--Flash)写一篇文章备忘 ...

最新文章

  1. 电子商务之表示层分析(九)
  2. python有哪些作用-python能用来做什么?Python都有哪些逆天的功能
  3. 22-爬虫之scrapy框架分布式09
  4. 文献学习(part40)--Efficient multi-modal geometric mean metric learning
  5. knockout + easyui = koeasyui
  6. 使用python统计出txt文档中含有某个单词的个数
  7. 跨境独立站卖家如何把握关键词优化?
  8. NCS8801S:RGB/LVDS转EDP芯片功能汇总及设计注意事项
  9. Java类加载器的使用
  10. H3C交换机链路聚合配置
  11. python获取今日头条搜索信息_python 爬取今日头条关键词搜索
  12. 一文了解KingSwap
  13. mysql1205-lock_一次 MySQL 异常的排查: 1205 Lock wait timeout exceeded; try restarting transaction...
  14. Jboot通过redis实现每日登录失败次数限制的问题
  15. 吉林大学计算机研究生成绩计算方法,关于同济大学研究生成绩计算方法的说明...
  16. [Redis] Redis实战
  17. TextWrangler——一款不知为何而生的编辑器
  18. python opencv pdf脚本之家_Python-OpenCV
  19. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Noisy relationships
  20. 会计软件遭黑客攻击,QuickBooks数据盗窃现象大幅增加

热门文章

  1. Jenkins--下载安装及简单配置
  2. 4个开源对象存储的解决方案
  3. 南油外服-网易游戏测试(外包) 面试
  4. 如何在线将WAV转换为MP3格式
  5. 台达PLC变频器通讯程序
  6. 雷达模块感应技术,智能照明LED灯的应用,5.8G雷达感应模块
  7. 核方法概述----正定核以及核技巧(Gram矩阵推导正定核)
  8. React:在发表评论功能中加入表情emoji
  9. 缠论108课_缠论108课学习顺序
  10. 【OpenCV 例程200篇】203. 伪彩色图像处理