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

西昌手机网站制作线上网站建设

西昌手机网站制作,线上网站建设,dedecms做网站注意事项,上海品牌营销策划公司文章目录 前言一、基础定义和点灯二、延时函数三、独立按键三、中断的配置和使用外部中断法捕获中断 总结 前言 hello 大家好这里是夏目学长的51单片机课堂#xff0c;本篇博客是夏目学长观看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.hi 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.hsbit 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.hsbit 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 ~(15); P_SW1 | (14); 这种写法 所以这里跟据STC8G手册去配置这些寄存器就可以了 #include stc8g.h #include intrins.hsbit 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 ~(15);P_SW1 | (14);CCON 0x00;CMOD 0x08;CCAPM0 0x11;CCAPM1 0x11;CCAPM2 0x11;EA 1;while(1){} }总结 本节我们主要学习了STC8G单片机的点灯 延时函数 独立按键 中断配置 以及 捕获中断和外部中断的方法其实这些都不是很难主要还是要学会读懂使用手册会使用手册才能配置好寄存器才能把这些知识给学会理解。 我现在就是有些感触就是多看几遍多写一篇博客多一遍理解就多一些收获。
http://www.dnsts.com.cn/news/177703.html

相关文章:

  • 济宁市建设银行网站江苏华江建设集团有限公司网站
  • 阿里云服务器部署网站喊别人做的网站不肯给代码
  • 网站网站制作400多少钱保定网站建设方案
  • 湖南网站建设的公司排名百度付费推广的费用
  • 网站建设公司浙江华企群晖中使用wordpress
  • 资深做网站公司网站网站开发违法吗
  • 做网站都有跳转链接360免费建站
  • 网站建设费应计入什么科目微网站对比
  • 洛阳响应式网站建设做一个网站要多久
  • 四川网站备案核验单如何加强精神文明网站建设内容
  • 上海网站建设索王道下拉广东手机网页制作
  • 网站开发是做什么?恒基建设集团网站地址
  • 建设一个视频网站需要什么网络营销的特点有几个
  • 至设计网站xuzhou公司网站制作
  • 如何用wordpress制作网站网站为什么要挂服务器上
  • 域名绑定网站提示正在建设交互式网站开发
  • 北仑营销型网站制作较好的网站模板
  • 南京做网站外包有哪些广告设计软件
  • 网站建设项目合同制作网站公司地址
  • 做网站图片用什么格式最好广州最新防疫动态
  • wordpress网站名称网络营销方案格式
  • 个人建网站教程北京新闻发布会
  • 合肥网站设网络营销推广机构
  • 铜煤建设网站wordpress注册设置密码
  • 百度搜不倒公司网站网站开发框架是什么
  • 书w3school网站建设教程it行业培训机构哪个好
  • 设计什么网站简单公司企业网站建设多少钱
  • 在线学习软件开发网站建设中国建设银行网站首页怎么销户
  • html 网站开发软件爱上链外链购买平台
  • 网站开发无形资产wordpress 移动端接口