下列关于网站开发中网页上传,简约风ppt模板免费,拼多多货源一件代发从哪里找,做风险投资网站keil的使用:
具体细节请移步我上一篇博客:创建第一个51文件-CSDN博客 hex -- 汇编语言实现的文件 -- 直接与单片机对接的文件 单片机 -- 一个集成电脑芯片 单片机开发版 -- 基于单片机的集成电路 stc 89 c52RC / RD 系列单片机 命名规则: 89 -- 版本号#xff1f; C --…keil的使用:
具体细节请移步我上一篇博客:创建第一个51文件-CSDN博客 hex -- 汇编语言实现的文件 -- 直接与单片机对接的文件 单片机 -- 一个集成电脑芯片 单片机开发版 -- 基于单片机的集成电路 stc 89 c52RC / RD 系列单片机 命名规则: 89 -- 版本号 C -- 工作电压: C3.3 ~5.5V LE 2.0~3.6 V 51 -- 程序空间大小 51 --4K 52 --8K RC --RAM 大小 RC-- RAM位为512 RD 1280 工作频率 工作温度范围 封装类型 管脚数 单片机的思维发散 1.单片机编程是什么 -- 人类要求单片机干具体的活 -- 体现写好纸条贴冰箱-- 提箱女友扫地 2.单片机执行程序怎么理解 -- 女朋友看到纸条后照做 3.单片机能做什么事 -- IO口供电 窜口传输 4.引脚 方便人堆单片机额IO口窜口接东西 5.冬季CPU怎么找到IO口: 寻址 -- 头文件 sfr指令 -- 描述硬件地址: sfr P0Ox8o; P00;sbit 指令 --对应可寻址空间的一个位可理解为一组IO口 的起始地址中的数据 sbit led2P3^6;
C语言的一个字节 char 位8位
^ -- 访问 位
IO口 -- 推荐 使用P1~P3P4 不建议使用P0口 -- 开漏输出 -- 可能会弄坏 封装 -- LQFP44
IO口的输入 -- 把外面的东西传进来 IO口的输出 -- 把数据传到外面 Such as: sbit ifFireP1^0; int main() { int io_data; //什么情况叫输入 io_dataifFire; // 给变量赋值 -- 输入 or 这里引脚有数据啦拿个变量来保存 if(io_idata 0) {} //什么情况输出 ifFire1; // 赋予一个数值引起IO电压变化(1--高 0--低电平)此刻为输出来影响外界设备 return 0; } test1 -- 点亮一盏灯 -- 给低电平即可 #includereg52.h sbit led1P3^7; sbit led2P3^6; void main() { led10; led20; while(1); } test2 -- 让led 闪烁 -- 让led 高低电平迅速切换 -- 重复执行 #includereg52.h sbit led1P3^7; sbit led2P3^6; void Delay500ms() //11.0592MHz { unsigned char i, j, k; i 4; j 129; k 119; do { do { while (--k); } while (--j); } while (--i); } void main() { led20; // led2 一直亮 while(1) // led1 一直闪 { led10; Delay500ms(); // 给个500ms的延迟间隔 -- 方便观察 led11; Delay500ms(); } 按键控制灯 : 查询法while 控制灯: 判断sw1内按下: KEY1和GND接通 -- 0
sw1没被按下: 未接通 -- 1
key1 接到P2^1口 #includereg52.h #includereg52.h sbit led1P3^7; sbit key1P2^1; sbit key2P2^0; void main() { while(1) { if(key10) { led10; } if(key20) { led11; } } } 消除抖动 方法 -- 给个延时函数-- 判断是不是人按下的还是抖动导致人按下有个约50ms的反应时间
用到_nop // 添加头文件 #includeintrins.h #includereg52.h #includeintrins.h sbit led1P3^7; sbit key1P2^1; sbit key2P2^0; void Delay500ms() //11.0592MHz { unsigned char i, j, k; _nop_(); i 4; j 129; k 119; do { do { while (--k); } while (--j); } while (--i); } void main() { while(1) { if(key10) { Delay500ms(); if(key10){ led10; } } if(key20) { Delay500ms(); if(key20) led11; } } } 通过一个按键控制灯的开关 ! -- 取反 led1 !led1;
也可以 定义一个 标记变量 ledMark -- 0 1dai 代表led的电平
keil 编译器有点damn 局部变量的定义要放在第一行 #includereg52.h #includeintrins.h #define ON_STATUS 0 #define OFF_STATUS 1 sbit led1P3^7; sbit key1P2^1; sbit key2P2^0; void Delay500ms() //11.0592MHz { unsigned char i, j, k; _nop_(); i 4; j 129; k 119; do { do { while (--k); } while (--j); } while (--i); } void main() { int LedMarkOFF_STATUS; while(1) { if(key10) { Delay500ms(); if(key10){ LedMarkON_STATUS; } } if(key20) { Delay500ms(); if(key20) LedMarkOFF_STATUS; } if(!LedMark) led10; else led11; } }