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

怎么自己建设一个网站北理工网站开发与应用答案

怎么自己建设一个网站,北理工网站开发与应用答案,叶涛网站推广优化,镇江论坛网站建设本文围绕51单片机开发中的独立按键控制技术展开,系统讲解其硬件结构、电平检测原理与C51编程实现方法。文章从开发板独立按键的物理构造与电路连接入手,剖析按键按下与松开时的电平变化规律,并结合单片机I/O口寄存器操作原理,阐释…

本文围绕51单片机开发中的独立按键控制技术展开,系统讲解其硬件结构、电平检测原理与C51编程实现方法。文章从开发板独立按键的物理构造与电路连接入手,剖析按键按下与松开时的电平变化规律,并结合单片机I/O口寄存器操作原理,阐释如何通过代码读取按键状态。

目录

一、独立按键相关内容

二、C51 数据运算与基本语句


一、独立按键相关内容

本节要讲的是独立按键。在开发板上,独立按键位于左下角标注 “独立键盘” 处,是四个黑色的按键,右边是 4*4 的矩阵键盘,将在后续讲解,本节仅聚焦于这四个按键。

本章(P3)要实现的代码功能如下:

其一,K1 控制第一个 LED 的亮灭,按下时 LED 亮,松开时熄灭;

其二,K1 控制第一个 LED,按下时无操作,松手时控制 LED 状态取反,即按一下亮,再按一下灭;其三,按一下 K1,实现 8 个 LED 进行二进制递增显示;

其四,按 K1 时,第一个 LED 产生移位,按 K2 时 LED 向右移,按 K1 时向左移。

下面先介绍按键。开发板上使用的是四个角的轻触按键,其相当于电子开关,按下时接通,松开时断开。内部由金属弹片实现通断。按键有四个引脚,为了解其连接方式,可将按键拆开,内部主要有底座、鼓起来的金属弹片(按下变平,松手恢复)、按键头和金属盖。进一步破拆下面部分,能看出相同一边的两个引脚内部由金属片完全连接,无论是否按下都导通,且向外伸出接触点。金属弹片在中间,松手时不接触,按下时弹片被压扁,使三个接触点连接。即按下时 4 个引脚全部连接,松手时两边分别连接,中间断开。

接着看开发板原理图中键盘的连接方式。独立按键在原理图右下角,只画了两个引脚,按下连接,松开断开。

左边有四个按键,其公共一端都接到 GND(电源负极),另一端引出四个编号 。这些编号连接到 MCU ,即一端接 GND,另一端接 I/O 口。

单片机上电时,所有 I/O 口默认是高电平,若按键未按下,I/O 口保持高电平;按下则变为低电平。

单片机的寄存器可向 I/O 口写值,也能检测 I/O 口电平并读回寄存器。通过读取寄存器的值,若为高电平(1)表示按键松开,若为低电平(0)则表示按键按下。

————————

下面进行工程演示。新建工程,点击 “Project”,选择保存位置并新建文件夹 “3 - 1 独立按键控制 LED 亮灭”,起工程名,选择器件 AT89C52,添加一个.c 文件。

先写出上节点亮 LED 的代码,添加头文件和主函数,上节点亮 LED 代码为 “P2 = 0xfe”,其中 “0x” 是十六进制前缀,“fe” 转化为二进制是最低位为 0,其他位为 1。

勾选生成 HEX 文件

将 tab 缩进调成 4 个

编译无错误无警告后下载代码,可看到 LED 点亮,这是通过控制寄存器实现的。

寄存器 8 个为一组,直接操作 P2 需同时给 8 位赋值,若只想操作最低位,可利用头文件中的位寄存器。添加 “” 头文件,操作 “P2_0”(表示 P2 的最低位),赋值 “P2_0 = 0” 可点亮 LED,赋值 “P2_0 = 1” (非0即1,给2也是1)则熄灭。

第一个按键控制功能的实现:按下点亮,松开熄灭。利用 C 语言的 if 语句,K1 连接在 P31 口,若 “P31 == 0”(判断相等),表示按键按下,执行点亮 LED 的代码;若 “P31 != 0”,表示按键松开,执行熄灭 LED 的代码。需注意,if 语句要放在 while 循环里,否则代码可能只执行一遍,无法实现预期功能。

完整代码如下:

#includevoid main(){while(1){if(P3_1==0 || P3_0==0) //如果K1按键或K2按键按下{P2_0=0; //LED1输出0,点亮}else{P2_0=1; //LED1输出1,熄灭}}}

二、C51 数据运算与基本语句

C51 是 C 语言在 51 单片机上的应用,其中的数据运算和基本语句是单片机编程常用的干货内容。上节介绍了进制转换和 C51 数据类型,数据类型像小盒子用来装数据,如整型只能装整数,有符号整型可装负数但表示范围有一半用于表示负数,无符号整型只能装正整数。

数据运算可分为四类:

  1. 算术运算:包括加减乘除和取余。加减乘除与常规数学运算类似,但整数除法会丢失小数部分。例如 “int a = 5, b = 2, c; c = a /b;” 执行后,c 的值为 2。取余运算符用于获取除法运算中的余数,如 “c = 5 % 2;” 执行后,c 的值为 1。取余运算可用于判断一个数能否被另一个数整除,若 “123 % 10 == 0”,则 123 能被 10 整除,否则不能。赋值运算符 “=” 是将右边的结果赋给左边的变量,不能用于解方程。
  2. 判断运算:判断运算符包括 “==”(等于)、“>”(大于)、“>=”(大于等于)、“ 1” 和 “2 >= 1” 的判断条件都成立。
  3. 逻辑运算:基本逻辑运算有与(&&)、或(||)、非(!)。例如 “if (P3_1 == 0 && P3_0 == 0)” 表示 K1 和 K2 同时按下时执行相应操作;若改为 “if (P3_1 == 0 || P3_0 == 0)”,则只要 K1 或 K2 任意一个按下就会执行操作。
  4. 位运算:在单片机中应用广泛,包括按位左移(>)、按位与(&)、按位或(|)、按位异或(^)和按位取反(~)。按位左移是将数据的各二进制位向左移动,高位溢出,低位补 0;按位右移则相反,低位溢出,高位补 0。按位与是对两个数据的对应位进行逻辑与操作,全真才为真;按位或是有 1 即为 1;按位异或是对应位不同为 1,相同为 0;按位取反是将数据的每一位取反,0 变 1,1 变 0。

————————

C51 基本语句主要有 if、while、for 和 switch 四种,其中 if 和 switch 用于选择,for 和 while 用于循环。

  1. if 语句:格式为 “if (逻辑表达式) {语句体 1} else {语句体 2}”,若逻辑表达式成立,执行语句体 1,否则执行语句体 2,else 部分可省略。
  2. while 循环:若逻辑表达式成立,执行循环体,执行完后再次判断逻辑表达式是否成立,若成立则继续执行,直到表达式不成立跳出循环。例如 “while (1)”,由于 1 永远为真,会不断循环执行循环体内容。
  3. for 循环:格式为 “for (初始化;逻辑表达式;更改条件) {循环体}”。先执行初始化语句,再判断逻辑表达式,若成立则执行循环体,执行完循环体后执行更改条件,然后再次判断逻辑表达式,直到表达式不成立跳出循环。初始化语句只执行一次,逻辑表达式、循环体和更改条件可能会被多次执行。例如 “for (int i = 0; i < 8; i++)” 会循环 8 次,每次循环中 i 的值从 0 递增到 7。
  4. switch case 语句:用于多重判断,格式为 “switch (变量) {case 常量 1: 语句体 1; break; case 常量 2: 语句体 2; break; … default: 语句体;break;}”。将变量与 case 后的常量一一比较,若相等则执行相应语句体,若所有常量都不相等,则执行 default 后的语句体,default 部分可省略。

文章转载自:

http://be4BUkOD.Lbfgq.cn
http://hXqotl7N.Lbfgq.cn
http://rQWEuUCV.Lbfgq.cn
http://0fd5DT8z.Lbfgq.cn
http://47PAG2TN.Lbfgq.cn
http://FvOFmk1Y.Lbfgq.cn
http://aBm1MCn8.Lbfgq.cn
http://RzGT4V0T.Lbfgq.cn
http://FpaEyhLC.Lbfgq.cn
http://ybvSt6fE.Lbfgq.cn
http://KFmipoSu.Lbfgq.cn
http://pfv3exuJ.Lbfgq.cn
http://m7M3hlgK.Lbfgq.cn
http://80pzSubX.Lbfgq.cn
http://WHCeRaXE.Lbfgq.cn
http://tKi5K1v2.Lbfgq.cn
http://B0UnyIbh.Lbfgq.cn
http://EGjkOEoe.Lbfgq.cn
http://MXbSuvel.Lbfgq.cn
http://lS9GnxI7.Lbfgq.cn
http://tDfmg5gT.Lbfgq.cn
http://Ra0iTvJY.Lbfgq.cn
http://TTy7iPBp.Lbfgq.cn
http://X9XsIIz8.Lbfgq.cn
http://fI4RQesC.Lbfgq.cn
http://HAgfctkL.Lbfgq.cn
http://1rJxAFz2.Lbfgq.cn
http://oE5yETUw.Lbfgq.cn
http://TlvkVoTC.Lbfgq.cn
http://JoyxDCFh.Lbfgq.cn
http://www.dtcms.com/wzjs/667423.html

相关文章:

  • 网站建设管理制度落实网站设计 图片
  • 麓谷做网站的公司二手车网站建设意见
  • 医院加强网站建设黄埔区建设局网站
  • 杭州做网站电话企业服务网站建设
  • 怎么创建一个视频网站深圳龙华建网站公司
  • 营销型网站建设应该考虑哪些因素电子商务网站设计与维护
  • 免费asp网站空间wordpress 是什么
  • 网站导航条设计欣赏如何给网站做dns解析
  • 呼伦贝尔市建设局网站南昌网站开发公司电话
  • 换个网站对seo有什么影响wordpress怎么去掉主题上的自豪
  • 网站标题设计ps工信部域名信息备案管理系统查询
  • 彩票网站建设制作价格无锡网页建站
  • 网站做最优是什么意思怎样做seo搜索引擎优化
  • 海淘一号 网站 怎么做的企业网站的价值体现是在
  • 域名对行业网站的作用弥勒建设局网站
  • 网站转跳怎么做阳信做网站
  • 我做外贸要开国际网站吗百度搜索引擎怎么做
  • 永康城乡建设局网站网站商城建设
  • 网站科技感页面设计大型商城网站开发
  • 重庆网站编辑职业学校自助建站软件公司
  • 至设计网站东台网站制作公司
  • 唐山网站建设学徒viralnova wordpress
  • 莒南建设局网站铜仁做网站的公司
  • 东莞做商城网站建设哪家好学校网站 制作
  • 挂甲寺网站建设开网店的企业名称
  • 网站建设用net后缀如何做网站要注意什么问题
  • 杭州市建设监理协会网站flash制作网页
  • 深圳网站建设收费标准海棠网站是什么意思
  • 艾特软件 网站建设wordpress的视频封面能动
  • 是阿里巴巴好还是自己做网站好?河东手机站