51单片机
Belous
这个作者很懒,什么都没留下…
展开
-
STC8: 编写机智云通讯协议配合ESP8266模块连接机智云平台——实现温度采集上报和控制两路LED
目录一、创建产品和数据点二、给通讯模块烧写机智云固件三、编写单片机程序与ESP8266-01模块通讯四、用官方App调试五、完整工程文件下载毕业设计是实现一个可以远程访问控制的装置,手头有个STC8(STC8A8K64S4A12)的开发板和ESP8266-01模块。了解各大云平台之后,发现大多云平台都是MQTT协议直接接入,或者提供SDK包。一开始直接入手连接阿里云平台...原创 2020-04-13 14:55:53 · 4300 阅读 · 1 评论 -
51单片机:生成精准的软件延时函数——以STC8演示
毕业设计涉及IOT的内容,目前什么也不会,只能从复习单片机开始。在用STC官方工具STC-ISP(V6.87B)生成软件延时函数时,发现它有两个错误:1)一个是最多只能生成循环变量为3的延时函数,延时长达多秒时显然三个循环变量已经不足,给出的是错误的延时函数。2)检查发现当初始化循环变量为0时,Keil C51 编译器会编译为:CLR A MOV Rx,A而非直...原创 2020-03-28 20:08:40 · 8602 阅读 · 1 评论 -
keil:调试时实时查看RAM寄存器值
进入调试状态后,View——Memory Windows中添加一个Memory窗口,会出现在右下角。Address中输入对应地址,窗口中就以输入地址开始显示地址中数据。地址格式:D:00H 片内RAM,直接寻址(低128字节+SFR)I:00H 片内RAM,间接寻址(低128字节+高128字节(52以上才会有))X:0000H 片外RAM,MOVX寻址...原创 2018-10-16 16:32:30 · 11508 阅读 · 1 评论 -
51单片机:C语言实现软复位
(*((void(code*)(void))0x0000))();对应的语句就是汇编中的 LJMP 0000H原理是将0x0000强制类型转换成一个返回值和参数都是void型的函数指针。函数指针原型是 void (*func)(void)该函数指针指向的应是ROM区,所以加关键词code。(void(code*)(void))0x0000 把0强制类型转换成code区的函数指...原创 2018-09-12 00:16:06 · 5487 阅读 · 0 评论 -
51单片机:汇编指令集总结
运算类:指令 操作数1 操作数2 ADD/ADDC——加法/带进位的加法 SUBB——带借位的减法 A Rn 直接地址 @Ri #立即数 MUL/DIV——乘法/除法 AB INC...原创 2018-08-22 00:11:30 · 6554 阅读 · 0 评论 -
51单片机:HCSR04超声波测距模块及1602显示—C51程序(超详细)
测试完成于STC89C516单片机,晶振12MHZ。超声波模块Echo=P1^0、Trig=P1^1,1602液晶8位数据口=P0、E=P2^7、RS=P2^6、RW=P2^5.。程序文件分为4部分,Cprogram.c、Lcd1602.h(Lcd1602函数)、CSBofCM.h(超声波测距模块函数)、STCY1_Delay.h(可能用到的延迟函数)>>具体实现见注释 ...原创 2018-08-19 02:57:54 · 19222 阅读 · 6 评论 -
51单片机:有符号/无符号双字节除法汇编程序(超详细)
DIV只能用于两个单字节之间的除法,有时处理的数据是双字节大小,就需要单独写出双字节除法子程序。实现的原理还是简单的列式模拟,但是汇编的细节更多。对熟练掌握汇编需要对二进制运算和移位操作非常熟悉。>>过程注释写的非常详细了;有符号双字节数除法子程序 SIDIV;正负数均用原码表示;需要 UIDIV 子程序;被除数存R6、R7,除数存R4、R5;运算完成后,R6、R...原创 2018-08-17 16:34:11 · 11255 阅读 · 2 评论