普中科技51单片机开发板
//实现功能:利用独立按键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单片机开发板相关推荐
- 使用普中科技51单片机进行(I^2)C总线操作
/*C51单片机学习打卡*/ /*观看郭天祥老师教学视频,使用普中科技51单片机开发板进行学习(I^2)C总线操作*/ /*功能:在开发版上进行999秒计时,在单片机掉电情况下可以记录最后一秒的数据* ...
- 使用普中科技ESV2.0开发板控制步进电机
使用普中科技ESV2.0开发板驱动步进电机 文章目录 使用普中科技ESV2.0开发板驱动步进电机 前言 一.步进电机的驱动原理 工作原理 二.如何让步进电机转起来 相数 驱动方法 注意图中接线顺序,不 ...
- 普中科技51单片机的ADC采样电位器功能实现以及特点
ADC模数转换的目的: **单片机能够接受和处理的数据都是离散的数字量,而不是连续的模拟量,**就和机器语言不能和普通语言一样通用,要先转换成单片机能够接受的数据,才能进行对模拟量数据(比如,温度,受 ...
- 基于普中科技的单片机开发实验仪编写的数字表
基于普中科技的单片机开发实验仪编写的数字表 1.项目简单说明 一.显示日期,对ds1302芯片进行计时所得的日期用数码管进行显示: 二.显示温度,对18B20芯片测量所得的温度用数码管进行显示: 三. ...
- 普中科技51单片机_【笔记】普中科技-51单片机-静态数码管显示
#include <reg51.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u ...
- 巫妖王51单片机开发板配套视频课程-朱有鹏-专题视频课程
巫妖王51单片机开发板配套视频课程-8368人已学习 课程介绍 本课程是巫妖王51单片机开发板的配套视频课程,本课程的目标是用少的时间带大家初级入门51单片机.配合巫妖王51单片机开发 ...
- 基于普中51单片机开发板的温控风扇
自学单片机也不算很久,刚好遇上了这一门的课程设计,查找了好多的资料发现都不算合适,合适的又要收费,那么最后呢才找到了一个有关我使用的开发板的温控风扇程序,也就是普中单片机开发板,该程序来自--黑51论 ...
- 51单片机开发板资料270G | 免费下载
目录 <手把手教你学51单片机> <郭天祥51单片机TX-1C 51-视频教程征服你> <单片机视频教程(汇编)> <给力者51单片机视频教程> < ...
- 普中科技stc89c52rc单片机烧写失败
我在使用普中的stc89c52rc单片机时候遇到了烧写失败的情况,如图所示 尝试使用stc-isp 进行烧写时候一直显示正在检测目标单片机 我的解决办法: STC-ISP勾选使能6T(双倍速)模式 , ...
- 51单片机开发板(W25Q16学习)
教程资料 链接:https://pan.baidu.com/s/142JRSPisQO2Cu6VZ2Y5YrQ 密码:eom0 今天测试开发板的W25Q16(16Mbit--Flash)写一篇文章备忘 ...
最新文章
- 电子商务之表示层分析(九)
- python有哪些作用-python能用来做什么?Python都有哪些逆天的功能
- 22-爬虫之scrapy框架分布式09
- 文献学习(part40)--Efficient multi-modal geometric mean metric learning
- knockout + easyui = koeasyui
- 使用python统计出txt文档中含有某个单词的个数
- 跨境独立站卖家如何把握关键词优化?
- NCS8801S:RGB/LVDS转EDP芯片功能汇总及设计注意事项
- Java类加载器的使用
- H3C交换机链路聚合配置
- python获取今日头条搜索信息_python 爬取今日头条关键词搜索
- 一文了解KingSwap
- mysql1205-lock_一次 MySQL 异常的排查: 1205 Lock wait timeout exceeded; try restarting transaction...
- Jboot通过redis实现每日登录失败次数限制的问题
- 吉林大学计算机研究生成绩计算方法,关于同济大学研究生成绩计算方法的说明...
- [Redis] Redis实战
- TextWrangler——一款不知为何而生的编辑器
- python opencv pdf脚本之家_Python-OpenCV
- 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Noisy relationships
- 会计软件遭黑客攻击,QuickBooks数据盗窃现象大幅增加