电子商务网站设计与...,如何创建wordpress数据库,网站建设策划有哪些,江苏苏州51单片机快速入门之按键应用拓展
LED的点动控制:
循环检测,当key 为0 时 led 亮 反之为熄灭 while(1){ if(key!1) { led0; }else { led1; } } LED的锁定控制:
当按钮按下,led取反值 while(1) { if(key!1) { led!led; } } LED的4路抢答控制:
bz默认为0 !bz 取反值,循环启动…51单片机快速入门之按键应用拓展
LED的点动控制:
循环检测,当key 为0 时 led 亮 反之为熄灭 while(1){ if(key!1) { led0; }else { led1; } } LED的锁定控制:
当按钮按下,led取反值 while(1) { if(key!1) { led!led; } } LED的4路抢答控制:
bz默认为0 !bz 取反值,循环启动 key默认为1 取反值 0 if不执行
按钮按下key变为0 反值为1 执行操作并退出检测循环 bit bz; while(!bz) { if(!key) { ...........//执行led点亮操作 bz1;//跳出循环 } else if(!key1){...} else if(!key2){...} else if(!key3){...} } while(bz){ if(!rekey) { bz0; } }//复位 LED数码管控制:
数码管一般都是这样界定的 搭建仿真电路 这里使用的是共阳数码管,之所以用74HC和本次电路没什么大的关系! 我们要显示数字1就需要点亮B C
八位二进制应该为1001 1111 转换成十六进制 0x9F 这里要注意的是 单片机 最高位MSB对应P2.7最低位LSB对应P2.0 图片来源于STC官方数据手册: 在二进制表示中最高位MSB位于最左边最低位LSB位于最右边。 所以八位二进制会颠倒过来,为1111 1001 转换成十六进制 0xF9 小知识:在C、C、Java等语言中按位取反操作符是波浪线 ~
编写程序代码测试: 模拟效果: 下面是数码管通用表格:
(图片来源于网络)
这里的H是一个常见的习惯用法用来表示后面的数是以十六进制表示的
实际程序编写中为了,兼容性推荐使用0x明确表示这是一个数值常量 所以我们可以通过一个字符型表格来操作
以下是详细代码:
#include STC89C5xRC.Hint LED0XF9;//声明一个变量unsigned char code table[]{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};void delay(unsigned int t);//延时函数声明void main()
{ int i;for(i0;i10;i){P2table[i];//P2已经在STC89C5xRC.H文件中被 声明delay(183);//延迟1sdelay(183);//延迟1sdelay(183);//延迟1s}}
void delay(unsigned int t){unsigned int x,y;
for(x0;xt;x){ for(y0;y1000;y); } } uchar就是unsigned char 意思就是定义一个无符号字符型数据 8位数,范围是 0-255 占用一个字节。 正解 code的作用就是告诉单片机定义的数据要放在ROM程序存储区里面写入后就不能再更改 因为C语言中没办法详细描述存入的是ROM还是RAM寄存器 所以在软件中添加了这一个语句起到代替汇编指令的作用 对应的还有data是存入RAM的意思。 其他关键词的意思 code 程序存储区64KB data 可直接寻址的内部数据存储区128B idata不可直接寻址的内部数据存储区256B bdata可位寻址内部数据存储区16B xdata外部数据存储区64KB pdata分页的外部数据存储区 原文链接:https://blog.csdn.net/qq_44419614/article/details/107002333 code
通常用于表示程序存储区这是用来存放程序代码的地方。
在某些微控制器中比如8051程序存储空间是64KB的地址空间
这个区域的变量需要用code关键字修饰表明这些数据是在程序存储器中
而不是在数据存储器中。data指的是可以直接寻址的内部数据存储区
一般对应于微控制器内部的RAM随机存取存储器
大小通常为128字节有些变体会更多。
这个区域的数据访问速度最快因为它们在CPU的内部。idata间接寻址的内部数据存储区
通常是指内部RAM中不能直接通过寄存器寻址的部分
大小可能是256字节。这部分内存需要通过间接寻址的方式来访问。bdata位寻址的内部数据存储区
通常是内部RAM中的特定部分允许对存储单元中的位进行单独操作。
在8051中这个区域通常是可位寻址的16字节即128位。xdata扩展数据存储区通常指的是外部RAM相对于内部RAM
可以是64KB的地址空间。这个区域的数据访问速度比内部RAM慢
因为需要通过外部总线访问。pdata分页的外部数据存储区
当系统的外部数据存储空间被组织成分页结构时使用。
pdata访问通常需要使用额外的寻址指令以指定当前要访问的页面。这些关键字在标准C语言中并不标准
而是针对特定嵌入式环境的扩展比如在KEIL C51编译器中用于8051微控制器的编程。