草庐IT

03按键

目录一、IO口输入内容二、什么是按键三、按键分析1.独立按键2.矩阵按键3.抖动四、按键案例1.按下按键点亮一个LED灯2.按键模拟二进制3.矩形按键控制LED灯的亮灭总结一、IO口输入内容在学习按键之前先学习一下如何往单片机的IO口输入内容。其实输入的本质就是往单片机的一个端口在外部给一个电平,然后单片机中的程序去读取那个端口的电平即可完成一次输入。51单片机的输入电平是非常简单的,不需要像stm32一样,需要调节端口的模式才能读取端口的电平,51单片机只需要读取端口的电平就可以了,非常的简单。比如说现在我给我的单片机的P2组中第2个引脚一个电平,那么接收的代码如下:intmain(){in

你想知道的do{...}while(0)的作用,都在这里了

0、引言             我们在嵌入式开发的过程中,经常可以碰到在一些宏定义或者是代码段中使用了do{...}while(0)的语句,从语义上理解,do{...}while(0)内的逻辑就只执行一次,并没有循环执行,粗略看来,似乎画蛇添足了,那么为什么还需要在只执行一次的逻辑外面加上一层do{...}while(0)语句呢?实际上,在这些逻辑中使用do{...}while(0)的作用远大于美化你的代码,下面就来看看实际的使用场景。1、用于定义一个作用域,避免替换的时候出错        我们都知道,在程序中如果一些常量参数或者代码语句反复出现,就可以使用宏定义来替代。预处理阶段,对程序

你想知道的do{...}while(0)的作用,都在这里了

0、引言             我们在嵌入式开发的过程中,经常可以碰到在一些宏定义或者是代码段中使用了do{...}while(0)的语句,从语义上理解,do{...}while(0)内的逻辑就只执行一次,并没有循环执行,粗略看来,似乎画蛇添足了,那么为什么还需要在只执行一次的逻辑外面加上一层do{...}while(0)语句呢?实际上,在这些逻辑中使用do{...}while(0)的作用远大于美化你的代码,下面就来看看实际的使用场景。1、用于定义一个作用域,避免替换的时候出错        我们都知道,在程序中如果一些常量参数或者代码语句反复出现,就可以使用宏定义来替代。预处理阶段,对程序

python———用while循环+if判断写个会员卡充值和招生功能

"""需求1:会员卡充值金额只能输入数字和浮点数、不能输入负数充值100(包含100)金额提示:成功充值N元,恭喜你成为普通会员充值100.01(包含100.01)至200金额提示:成功充值N元,恭喜你成为铂金会员充值200.01(包含100.01)至300金额提示:成功充值N元,恭喜你成为黄金会员充值300.01(包含100.01)至400金额提示:成功充值N元,恭喜你成为黄金会员充值400以上的金额提示:成功充值N元,恭喜你成为至尊会员"""money=input('请输入金额:')whileTrue:try:number=round(float(money),2)#用round()函数,

python———用while循环+if判断写个会员卡充值和招生功能

"""需求1:会员卡充值金额只能输入数字和浮点数、不能输入负数充值100(包含100)金额提示:成功充值N元,恭喜你成为普通会员充值100.01(包含100.01)至200金额提示:成功充值N元,恭喜你成为铂金会员充值200.01(包含100.01)至300金额提示:成功充值N元,恭喜你成为黄金会员充值300.01(包含100.01)至400金额提示:成功充值N元,恭喜你成为黄金会员充值400以上的金额提示:成功充值N元,恭喜你成为至尊会员"""money=input('请输入金额:')whileTrue:try:number=round(float(money),2)#用round()函数,

JS中break、continue、return跳出循环的用法和区别

在前端开发中,使用循环遍历操作肯定不可避免。常用的循环语句如:for、do/while、while、for/in、for/of、forEach、map等等,日常开发时经常会遇到遍历某些值要跳过循环、或者中断循环,这时就要用到break、return、continue等关键词来区别处理。break&&return&&continue一、break作用:立刻退出包含在最内层的循环或者退出一个switch语句。使用特点:switch判断语句循环语句:for、do/while、while、for/in、for/of不能在forEach、map遍历中使用,否则会报错:UncaughtSyntaxErro

JS中break、continue、return跳出循环的用法和区别

在前端开发中,使用循环遍历操作肯定不可避免。常用的循环语句如:for、do/while、while、for/in、for/of、forEach、map等等,日常开发时经常会遇到遍历某些值要跳过循环、或者中断循环,这时就要用到break、return、continue等关键词来区别处理。break&&return&&continue一、break作用:立刻退出包含在最内层的循环或者退出一个switch语句。使用特点:switch判断语句循环语句:for、do/while、while、for/in、for/of不能在forEach、map遍历中使用,否则会报错:UncaughtSyntaxErro

关于 java:Run time error while inflating SliderImages using Viewpager

RuntimeerrorwhileinflatingSliderImagesusingViewpager这是我的股票片段//12345678910111213 publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,             BundlesavedInstanceState){  Viewview=inflater.inflate(R.layout.fragment_stock,container,false);  slideDotspanel=(LinearLayout)view.findViewByI

关于 java:Run time error while inflating SliderImages using Viewpager

RuntimeerrorwhileinflatingSliderImagesusingViewpager这是我的股票片段//12345678910111213 publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,             BundlesavedInstanceState){  Viewview=inflater.inflate(R.layout.fragment_stock,container,false);  slideDotspanel=(LinearLayout)view.findViewByI

关于ios:如何在迭代中绘制View,因为我已经将setNeedsDisplay方法放入了无限while循环

HowtodrawonViewiniteration,asihadputthesetNeedsDisplaymethodintoinfinitewhileloop我是iOS新手,在循环中绘制视图时遇到问题,这是MyView.m类中的drawRect方法:`1234567891011121314151617181920-(void)drawRect:(CGRect)rect {   self.backgroundColor=[UIColorblackColor];  x=rand()%(200-0)+0;  y=rand()%(200-0)+0;  CGContextRefcontext=UIG