当前位置: 首页 > news >正文

网站建设公司好谷歌浏览器网页版入口在哪里

网站建设公司好,谷歌浏览器网页版入口在哪里,怎么设置自己做的网站吗,wordpress开发微商分销系统文章目录 前言一、基础定义和点灯二、延时函数三、独立按键三、中断的配置和使用外部中断法捕获中断 总结 前言 hello 大家好这里是夏目学长的51单片机课堂,本篇博客是夏目学长观看B站up主学电超人的视频所写的一篇51单片机入门博客之51单片机点灯以及 独立按键 中…

文章目录

  • 前言
  • 一、基础定义和点灯
  • 二、延时函数
  • 三、独立按键
  • 三、中断的配置和使用
    • 外部中断法
    • 捕获中断
  • 总结


前言

hello 大家好这里是夏目学长的51单片机课堂,本篇博客是夏目学长观看B站up主学电超人的视频所写的一篇51单片机入门博客之51单片机点灯以及 独立按键 中断电灯关灯 以及比较难的 捕获中断 ,我自己在学习这节课程的时候觉得这节课非常适合学完B站up主江科大视频的同学,适合去进阶自己的知识,掌握的更加牢固。

本节的单片机主要是STC8G2K64S4单片机


一、基础定义和点灯

首先大家打开原理图去看51单片机的原理图 然后下面夏目学长就给大家注释好了LED灯的注释
在这里插入图片描述
下面就是讲解一下sbit的意思:sbit其实就是重新定义的意思,相当于C语言的typedef 这是我自己的理解,大家可以试着理解,但是不要信任我哈哈哈

这里举出一个电灯的例子:
我们在让红色灯亮的时候一般是用P0_5 去点灯,但是这里我用sbit就可以用我定义好的名字去点灯
当我们不使用sbit的时候:

#include "stc8g.h"
#include "intrins.h"
void main()
{P0M0 = 0x00;//配置P0引脚为准双向口 --- > 这样才可以使得LED灯可以去点亮使用P0M1 = 0x00;while(1){P0_5 = 0; //点亮红色LED}
}

当我们使用sbit的时候:

#include "stc8g.h"
#include "intrins.h"
sbit LED_R = P0^5; 
void main()
{P0M0 = 0x00;//配置P0引脚为准双向口 --- > 这样才可以使得LED灯可以去点亮使用P0M1 = 0x00;while(1){LED_R = 0; //点亮红色LED}
}

二、延时函数

延时函数其实很简单只需要会使用STC-ISP即可,他会帮助你生成你想要的延时时间,当然你也要注意我画圈圈的地方的选择,一定要看看自己的单片机是否和我一样,不然就要自己选择类型哦

为了通用性我们一般会封装一个可以延时任意时间的一个延时函数

在这里插入图片描述
紧接着我们就需要利用C语言函数封装 一个可以延时任意时间的函数

//粘贴STC-ISP帮助我们自动生成的代码
void Delay1ms(void)	//@35MHz
{unsigned char data i, j;//_nop_();//_nop_(); //无意义可以删了 除非追求极致的时间 --- > 也可以包一个头文件#include "intrins.h"i = 46;j = 113;do{while (--j);} while (--i);
}
//手写一个延时函数
void delay_ms(unsigned int n)
{	while(n -- ){Delay1ms();}
}

是不是很简单?然后继续学习新的知识吧

这里学会了延时函数,我想继续给大家讲一个小知识就是消抖,原因很简单,就是你按下按键的时候,单片机它并不稳定,会有上下起伏最后达到目的,所以给一个延时函数,就可以把这一段不稳定的阶段给延时过去,增加稳定性

方法也很简单这里给一段代码:

#include "stc8g.h"
#include "intrins.h"
sbit LED_R = P0^5; 
void Delay1ms(void)	//@35MHz
{unsigned char data i, j;_nop_();_nop_();i = 46;j = 113;do{while (--j);} while (--i);
}
//手写一个延时函数
void delay_ms(unsigned int n)
{	while(n -- ){Delay1ms();}
}void main()
{P0M0 = 0x00;//配置P0引脚为准双向口 --- > 这样才可以使得LED灯可以去点亮使用P0M1 = 0x00;while(1){delay_ms(25);//消抖作用LED_R = 0; //点亮红色LEDdelay_ms(300);LED_R = 1;delay_ms(300);}
}

三、独立按键

这里学习方法和上面点亮LED灯一样就是先去看原理图然后确定按键位置,这里同样使用sbit去重新定义
在这里插入图片描述
下面跟据这个原理图来使用一下独立按键来控制LED灯的亮灭情况。

代码如下:

#include "stc8g.h"
#include "intrins.h"sbit LED_R = P0^5; 
sbit LED_Y = P0^6; 
sbit LED_G = P0^7; sbit K3 = P3^5;
sbit K2 = P3^6;
sbit K1 = P3^7;void Delay1ms(void)	//@35MHz
{unsigned char data i, j;_nop_();_nop_();i = 46;j = 113;do{while (--j);} while (--i);
}
//手写一个延时函数
void delay_ms(unsigned int n)
{	while(n -- ){Delay1ms();}
}void main()
{P0M0 = 0x00; //配置P0引脚为准双向口 --- > 这样才可以使得LED灯可以去点亮使用P0M1 = 0x00;P3M0 = 0x00; //配置P3引脚为准双向口 --- > 这样才可以使得独立按键可以使用P3M1 = 0x00;while(1){if(K1 == 0){delay_ms(25);while(K1 == 0);LED_R = !LED_R;}if(K2 == 0){delay_ms(25);while(K2 == 0);LED_Y = !LED_Y;}if(K3 == 0){delay_ms(25);while(K3 == 0);LED_G = !LED_G;}}
}

演示视频:

51单片机独立按键

三、中断的配置和使用

外部中断法

中断的基础知识这里给大家贴一篇博客【51单片机】十分钟学会定时器&中断¹
此博客转载于博主:謓泽

在这里插入图片描述

所以这里只能让独立按键的K1 和 K2实现中断 K3咩办法实现

代码如下:

#include "stc8g.h"
#include "intrins.h"sbit LED_R = P0^5; 
sbit LED_Y = P0^6; 
sbit LED_G = P0^7; sbit K3 = P3^5;
sbit K2 = P3^6;
sbit K1 = P3^7;void Delay1ms(void)	//@35MHz
{unsigned char data i, j;_nop_();_nop_();i = 46;j = 113;do{while (--j);} while (--i);
}
//手写一个延时函数
void delay_ms(unsigned int n)
{	while(n -- ){Delay1ms();}
}void INT2_Isr(void) interrupt 10
{LED_R = 1;
}
void INT3_Isr(void) interrupt 11
{LED_R = 0;
}void main()
{P0M0 = 0x00; //配置P0引脚为准双向口 --- > 这样才可以使得LED灯可以去点亮使用P0M1 = 0x00;P3M0 = 0x00; //配置P3引脚为准双向口 --- > 这样才可以使得独立按键可以使用P3M1 = 0x00;INTCLKO = 0x30; //打开INT2 INT3 外部中断EA = 1; //打开总中断while(1){}
}

中断函数关键字:interrupt + 数字
数字选择哪一个需要去跟据手册的中断章节去选择。
在这里插入图片描述
在这里插入图片描述
这里烧入单片机后就可以按下K2灯亮按下K1灯灭

捕获中断

当我们有了外部中断的基础之后,就可以学习捕获中断了,这里先去看单片机的原理图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
所以引脚P_SW1 第5位需要设置成为1,第六位设置成为0,但是这里要讲解一些C语言的知识,就是如果我只想第5位需要设置成为1,第六位设置成为0,那么就可以:
P_SW1 &= ~(1<<5);
P_SW1 |= (1<<4);
这种写法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
所以这里跟据STC8G手册去配置这些寄存器,就可以了

#include "stc8g.h"
#include "intrins.h"sbit LED_R = P0^5; 
sbit LED_Y = P0^6; 
sbit LED_G = P0^7; sbit K3 = P3^5;
sbit K2 = P3^6;
sbit K1 = P3^7;void PCA_Isr() interrupt 7
{if(CCF0 == 1){CCF0 = 0;LED_G = !LED_G;}if(CCF1 == 1){CCF1 = 0;LED_Y = !LED_Y;}if(CCF2 == 1){CCF2 = 0;LED_R = !LED_R;}
}void main()
{P0M0 = 0x00; //配置P0引脚为准双向口P0M1 = 0x00;P3M0 = 0x00; //配置P0引脚为准双向口P3M1 = 0x00;//	INTCLKO = 0x30; //打开INT2 INT3 外部中断
//	EA = 1; //打开总中断P_SW1 &= ~(1<<5);P_SW1 |= (1<<4);CCON = 0x00;CMOD = 0x08;CCAPM0 = 0x11;CCAPM1 = 0x11;CCAPM2 = 0x11;EA = 1;while(1){}
}

总结

本节我们主要学习了STC8G单片机的点灯 延时函数 独立按键 中断配置 以及 捕获中断和外部中断的方法,其实这些都不是很难,主要还是要学会读懂使用手册,会使用手册才能配置好寄存器,才能把这些知识给学会理解。
我现在就是有些感触就是,多看几遍,多写一篇博客,多一遍理解就多一些收获。


文章转载自:
http://dinncomelodramatist.bkqw.cn
http://dinncooverfulfil.bkqw.cn
http://dinncoanalogic.bkqw.cn
http://dinncobauble.bkqw.cn
http://dinncospate.bkqw.cn
http://dinnconodulose.bkqw.cn
http://dinncomorea.bkqw.cn
http://dinncoliveability.bkqw.cn
http://dinncolieder.bkqw.cn
http://dinncopisa.bkqw.cn
http://dinncostatutory.bkqw.cn
http://dinncoravel.bkqw.cn
http://dinncounderclass.bkqw.cn
http://dinncohight.bkqw.cn
http://dinncoinquisitionist.bkqw.cn
http://dinncoharicot.bkqw.cn
http://dinncorhematic.bkqw.cn
http://dinncostenographically.bkqw.cn
http://dinncoassyriology.bkqw.cn
http://dinncorepunit.bkqw.cn
http://dinncopawk.bkqw.cn
http://dinncohomestretch.bkqw.cn
http://dinncokartel.bkqw.cn
http://dinncotaxameter.bkqw.cn
http://dinncovascular.bkqw.cn
http://dinncosomaplasm.bkqw.cn
http://dinncounindexed.bkqw.cn
http://dinncoinconveniency.bkqw.cn
http://dinncopasticheur.bkqw.cn
http://dinncoexpeditioner.bkqw.cn
http://dinncosomewhere.bkqw.cn
http://dinncophilologic.bkqw.cn
http://dinncoimu.bkqw.cn
http://dinncobabyism.bkqw.cn
http://dinncoburp.bkqw.cn
http://dinncoplaypen.bkqw.cn
http://dinncodetritus.bkqw.cn
http://dinnconoctambulous.bkqw.cn
http://dinnconerveless.bkqw.cn
http://dinncoboatage.bkqw.cn
http://dinncoprothorax.bkqw.cn
http://dinncotriserial.bkqw.cn
http://dinncodisadvantageous.bkqw.cn
http://dinncocheliped.bkqw.cn
http://dinncobandkeramik.bkqw.cn
http://dinncomonstrosity.bkqw.cn
http://dinncoinappreciably.bkqw.cn
http://dinncogablet.bkqw.cn
http://dinncoaortography.bkqw.cn
http://dinncoradiotelegram.bkqw.cn
http://dinncoconsummate.bkqw.cn
http://dinncosegregation.bkqw.cn
http://dinncocoexist.bkqw.cn
http://dinncoxenophobic.bkqw.cn
http://dinncoraceabout.bkqw.cn
http://dinncourethrotomy.bkqw.cn
http://dinncounrepressed.bkqw.cn
http://dinncoretrorse.bkqw.cn
http://dinncoetceteras.bkqw.cn
http://dinncolicente.bkqw.cn
http://dinncogeck.bkqw.cn
http://dinncowelch.bkqw.cn
http://dinncoreception.bkqw.cn
http://dinncofender.bkqw.cn
http://dinncocavalierly.bkqw.cn
http://dinncobenign.bkqw.cn
http://dinncostickler.bkqw.cn
http://dinncokhadi.bkqw.cn
http://dinncopunctate.bkqw.cn
http://dinncoimitational.bkqw.cn
http://dinncocombustor.bkqw.cn
http://dinncoputschism.bkqw.cn
http://dinncofujisan.bkqw.cn
http://dinncoayah.bkqw.cn
http://dinncomathsort.bkqw.cn
http://dinncocardo.bkqw.cn
http://dinncocentrism.bkqw.cn
http://dinncooakland.bkqw.cn
http://dinncostress.bkqw.cn
http://dinncoujamaa.bkqw.cn
http://dinncoreligionise.bkqw.cn
http://dinncoeutrapelia.bkqw.cn
http://dinncodarwinism.bkqw.cn
http://dinncodestocking.bkqw.cn
http://dinncochintz.bkqw.cn
http://dinncooligodendrocyte.bkqw.cn
http://dinncoordinand.bkqw.cn
http://dinncobissel.bkqw.cn
http://dinncounbeaten.bkqw.cn
http://dinncojacobin.bkqw.cn
http://dinnconefariously.bkqw.cn
http://dinncoheterophyte.bkqw.cn
http://dinncoaminophylline.bkqw.cn
http://dinncosentry.bkqw.cn
http://dinncolowish.bkqw.cn
http://dinncoamplifier.bkqw.cn
http://dinncofloury.bkqw.cn
http://dinncoindiscrete.bkqw.cn
http://dinncohere.bkqw.cn
http://dinncomesocratic.bkqw.cn
http://www.dinnco.com/news/100578.html

相关文章:

  • 网站建设解决问题网站增加外链的方法有哪些
  • 一站式网站建设报价网络营销专业的就业方向
  • 写字就能赚钱做网站微信运营方案
  • 饰品做商城网站模式阻断艾滋病的药有哪些
  • 自助建站系统源码下载web网页制作成品
  • 怎么利用自媒体做网站优化整合营销的特点有哪些
  • 网站漂浮广告怎么做软文写作方法
  • 广州高端网站制作公司哪家好阿里巴巴运营
  • 各种颜色做网站给人的心里暗示软件外包公司好不好
  • wordpress活动召集插件关键词seo排名怎么选
  • asp 网站开发教程互联网营销的特点
  • 贵阳网站推广营业推广是什么意思
  • 深圳做网站的公司排名seo技术外包 乐云践新专家
  • 网站建设合同鉴于甲方委托乙方友情链接交换教程
  • 网站制作毕业设计南昌关键词优化软件
  • seo网站模版百度电视剧风云榜
  • 网站流量100g2024年2月疫情又开始了吗
  • 做付费视频网站杭州搜索推广公司
  • 网站怎样做快照厨师培训学校
  • 服务器网站开发利尔化学股票最新消息
  • 网站流量怎么做乡1万镇江搜索优化技巧
  • 定陶住房和城乡建设局网站自己有网站怎么推广
  • 长治做网站哪里不错网站运营包括哪些内容
  • 湖南企业网站定制seo推广哪家服务好
  • h5制作软件电脑版太原关键词优化软件
  • 做网站哪里找培训学校加盟
  • 网站域名费会计分录怎么做如何实施网站推广
  • 营销型网站的特点如何快速推广网站
  • 同制作网站一样都是在短视频精准获客系统
  • 网站模板下载网站有哪些3d建模培训学校哪家好