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

软文网站名称三门峡seo

软文网站名称,三门峡seo,南宁网站建设找哪家,网络设计初步方案包括目录 一、开发环境 1、Keil5和STC-ISP (1)keil5创建工程并设置生成.hex文件 (2)STC-ISP烧写keil编译生成的程序到单片机 二、点亮单片机的LED灯 1、关于sbit、sfr和bit 2、延时函数实现led闪烁 3、按键控制led亮灭(一开一关) ▶按键消抖方法&am…

目录

一、开发环境

1、Keil5和STC-ISP

(1)keil5创建工程并设置生成.hex文件

(2)STC-ISP烧写keil编译生成的程序到单片机

二、点亮单片机的LED灯

1、关于sbit、sfr和bit

2、延时函数实现led闪烁

3、按键控制led亮灭(一开一关)

▶按键消抖方法:

▶标志位控制灯:

4.单按键控制led亮灭(I/O状态翻转)

▶ I/O状态翻转


一、开发环境

1、Keil5STC-ISP

(PS:本篇不涉及安装、汉化和破解等)

(1)keil5创建工程并设置生成.hex文件

       ①在任意位置创建项目工程文件夹命名为template(当做模板)

       ②在文件夹template中创建main.c

       ③打开keil工具栏project->new uVision project->选择第一步的工程文件夹位置->输入工程名

字->选择芯片类型AT89c52->会提示是否拷贝STARTUP.A51,选择是->生成了工程目录->在工程目

录Source Group1上右键鼠标->add Exiting file to Source Group1...->选择代码文件main.c

       ④Alt+F7打开设置选项,勾选create HEX file,确认即可

(2)STC-ISP烧写keil编译生成的程序到单片机

 ①单片机通过type-C数据线和电脑连接(如果不识别,安装ch340驱动,在资料包中选择单片机型

    号STC89C52RC。

②选择生成的执行程序文件.hex

③点击"下载/编程"按钮

④单片机开关拨动重新上电

二、点亮单片机的LED

1、关于sbitsfrbit

▶sbit定义特殊功能寄存器的位变量(定义寻址对象,如访问特殊功能寄存器的某一个位)

▶sfr访问单片机内部所有特殊功能寄存器(如sfr P1 = 0x90这一句定P1为P1端口在片内寄存器)

▶bit定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean类型中的True和False。 bit和int char之类的差不多,只不过char=8位, bit=1位而已,都是变量。

(sbit、bit和sfr都是C51的扩充数据类型)

2、延时函数实现led闪烁

#include "reg52.h"
#include <intrins.h>#define ON   0
#define OFF   1sbit led_1 = P3^7;
void Delay1000ms()		//@11.0592MHz
{
unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}
void main(){while(1){led_1 = ON;Delay1000ms();led_1 = OFF;Delay1000ms();}	
}

3、按键控制led亮灭(一开一关)

#include "reg52.h"
#include <intrins.h>
#define ON  0
#define OFF 1
sbit led_2 = P3^6;
sbit key_1 = P2^1;
sbit key_0 = P2^0; void Delay10ms()		//@11.0592MHz
{unsigned char i, j;i = 108;j = 145;do{while (--j);} while (--i);
}
void estimateLedMark(int ledMark){if(ledMark == ON){led_2 = 0;}else{led_2 = 1;}
}
void main(){int ledMark = OFF;while(1){	if(key_0 == ON){Delay10ms();           //延迟后再进行一次键位检测if(key_0 == ON)ledMark = ON;	  		//这里不直接灯亮,而是改变标志位的值}else if(key_1 == ON){Delay10ms();if(key_1 == ON)ledMark = OFF;}estimateLedMark(ledMark);	//在这里判断标志位值,再进行灯亮灭}
}

▶按键消抖方法:

(详见单片机按键“消抖”的思考_守恒的博客-CSDN博客_单片机按键消抖) 

①延时消抖:最简单的消抖原理,当检测到按键状态变化后,先等待一个 10ms 左右的延时时间,

让抖动消失后再进行一次按键状态检测,如果与刚才检测到的状态相同,就可以确认按键已经稳定

的动作。

②状态机消抖(略)

▶标志位控制灯

实现:在具体实现亮灯时,不直接将其置为低电平,而是通过赋值表示状态的变量,然后通过判断

该状态的值实现灯亮灭。

好处:这样的按键处理,让程序减少了while的松手检测,这对于程序是十分有利的。

                        (虽然这里并未体现得特别明显)

4.单按键控制led亮灭(I/O状态翻转)

#include "reg52.h"
#include <intrins.h>#define ON   0
#define OFF  1sbit key_1 = P2^1;
sbit led_2 = P3^6;
void Delay500ms(){	
unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}
void main(){led_2 = OFF;while(1){if(key_1 == 0){Delay500ms();led_2 = ~led_2;	 //当按键按下,高低电平互相翻转}	}
}

 I/O状态翻转

http://www.15wanjia.com/news/157435.html

相关文章:

  • 做救助流浪动物网站的产生背景百度seo多久能优化关键词
  • 山东网站制作应用thinkphp网站开发实例教程
  • 个人做的小网站需要备案aso优化教程
  • 湖南住房城乡建设厅网站网站 备案查询
  • 宜宾网站建设工作室制作小程序难吗
  • 我要自学网官方网站站长工具seo综合查询怎么用
  • 广州定制网站建设公司网站建设实训报告2000字
  • 企业网站建设周期温州网站建设公司有哪些
  • 合肥个人建站模板做网页的软件h
  • 网站编程好学吗南京高端网站建设
  • 南阳网站优化哪家好wordpress备份content
  • 网站资料筹备php如何自己做网站
  • 网站运营培训家纺订单外发加工网
  • 购买模板做网站wordpress密码进入网站
  • 上海网站建设哪家快速上线wordpress大开速度慢
  • 网站服务器买了后怎么做建站快车代理商
  • 网站推广方法有广州 网站 设计
  • 装饰网站建设网英雄联盟网页怎么制作
  • iis建好的网站套用模板网站的意思
  • 企业网站设计流程中铁建设集团有限公司网站
  • 哈尔滨模版网站建设成都兼职做网站
  • asp网站模板源码免费无限下载企业小程序制作的公司
  • wordpress建站双语建筑兼职网站
  • 小语种网站怎么设计棉花数据检验与加工平台
  • 做做网站已更新上海app服务商
  • 外贸型网站推广与监测wordpress 分销插件
  • 30秒网站在线之家官网
  • dede小游戏php网站源码阿里巴巴国际站可以做网站吗
  • 济南便宜企业网站建设费用南京市建设档案馆网站
  • 如何为网站做推广蜂鸟 网站建设