单片机
八五哥
活到老,学到老!
展开
-
KEIL4与KEIL5护眼配色方案
https://download.csdn.net/download/u012780337/19714860?spm=1001.2014.3001.5501原创 2021-06-18 16:02:22 · 1250 阅读 · 0 评论 -
程序计数器(PC ) 详解
冯 ·诺伊曼计算机体系结构的主要内容之一就是“程序预存储,计算机自动执行”!处理器要执行的程序(指令序列)都是以二进制代码序列方式预存储在计算机的存储器中,处理器将这些代码逐条地取到处理器中再译码、执行,以完成整个程序的执行。为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条取指指令的地址。程序计数器(PC )正是起到这种作用,所以通常又...原创 2020-04-06 12:57:17 · 33606 阅读 · 4 评论 -
STM32HAL库中串口函数
中断模式1.中断接收。1.1先看中断接收的流程(以 USART2 为例)在启动文件中找到中断向量USART2_IRQHandler找到USART2_IRQHandler的函数定义可以看到这里又转到另一个函数里去了,再找下去:该函数的源码:/** * @brief This function handles UART interrupt...转载 2019-12-22 13:46:17 · 5605 阅读 · 1 评论 -
初学串口通信,有不足之处,还望大师们指正,辛苦了!
/*********************************** 电脑向MCU发一串字符后,原样返还电脑************************************/#include <reg52.h>#define uchar unsigned charbit g_NewRec = 0; //接收到数据标志bi原创 2016-09-01 22:27:59 · 655 阅读 · 0 评论 -
欢迎大神们来挑刺(关于C51串口通信)
/******************************* MCU通过串口向电脑发送一串字符串 *******************************/#include #define uchar unsigned char#define uint unsigned intbit g_TranEnd = 1; //发送完毕标志void Init原创 2016-09-04 11:52:20 · 378 阅读 · 0 评论 -
C51LCD1602
/************************************** LCD1602上用两行显示两个字符串 *************************************/#include <reg52.h>#define uchar unsigned char#define LCD1602 P0sbit RS = P2^4;sbit RW = P2^5;sbit原创 2016-09-25 21:20:24 · 518 阅读 · 0 评论 -
浅谈关于SRAM与DRAM的区别
在上体系结构这门课之前,我只知道DRAM用作内存比较多,SRAM用作cache比较多。在今天讲到内存技术时,我对于这两个基础概念有了更加完整的认识。这篇文章是我的听课心得,现在分享给各位,仅供参考,若有错误多多指正。 从名字上看,SRAM与DRAM的区别只在于一个是静态一个是动态。由于SRAM不需要刷新电路就能够保存数据,所以具有静止存取数据的作用。而DRAM则需要不停地刷新电路,否则内部的数据将翻译 2017-01-08 17:45:12 · 3136 阅读 · 0 评论 -
关于IIC与SPI这两种通讯协议的详解
IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。IIC 开发于1982年,当时...翻译 2019-08-27 15:41:42 · 788 阅读 · 0 评论 -
HAL库UART按DMA方式发送和接收函数简析及测试
个人感觉,做嵌入式,底层就是datasheet,顶层就是数理逻辑。不管什么芯片,当我们遇到问题时,通过查阅datasheet或上官网基本上都能找到解决方法。然而,这些基本都是英文。所以,英文好对做研发是有很大益处的。不过好在有翻译工具,如:有道(我就是用有道划的):C语言虽然没有class,但有struct。我们可以多用struct。ST库和ucos中就包含许多struct。程序结构多用状态...转载 2019-09-08 22:17:39 · 17202 阅读 · 7 评论 -
简单的串口通信
/********************************** MCU接收到电脑发来的数据加1返回电脑 **********************************/#include <reg52.h>void InitUart(); //串口通信初始化函数声明void main(){ InitUart(); while (原创 2016-09-01 14:56:16 · 467 阅读 · 0 评论 -
C51中4X4键盘扫描(非反转法)
#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar KEYIN;void DelayMs(uint ms); //延时函数声明;uchar KeyPress(void); //按键按下检测函数声明;uchar KeyScan(vo原创 2016-08-09 07:55:01 · 669 阅读 · 0 评论 -
关于计算机与MCU通信及MAX232、CH340T与PL2303的区别
原理:单片机的TXD、RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功!其中CH340、PL2303等芯片是直接将USB信号转换为TTL电平或者TTL电平转换为USB信号,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL.MAX232:外围电路简单,但是占用pcb面积大,不美观 PL2303:水货多不稳定,外原创 2016-08-27 21:37:20 · 13022 阅读 · 0 评论 -
静态数码管显示0-F
//用静态数码管显示0-F#include <reg52.h>#define uchar unsigned char#define uint unsigned int #define Q 60000//声明延时函数;void delay(uint t);//主函数;void main(void){ int i; //共阳极数码管编码; uchar co原创 2015-10-15 14:11:58 · 7313 阅读 · 0 评论 -
关于C51释放按键与后沿消抖
/**************************** 独立按键,按一次按键,LED灯 左移一位****************************/#include #include #define uint unsigned int#define uchar unsigned charsbit Key=P1^0;void delayms(uint z);void main(){P0=0原创 2016-06-15 05:31:47 · 3672 阅读 · 1 评论 -
关于用KEIL编写C51的注意事项
通过图1与图2的比较,大家不难看出差异,也就是说我们用Keil在编写程序时,要把新定义变量语句写在赋值语句的前面,否则,Keil编译器会报错!原创 2016-06-16 05:37:59 · 1580 阅读 · 0 评论 -
关于C51的IE(中断使能寄存器)的初级认识
对于C51中的IE的初级认识原创 2016-07-28 22:21:52 · 6087 阅读 · 0 评论 -
28BYJ48步进电机的驱动原理
对于单四拍就不多说了,这里只对四相八拍的驱动原理作一个说明(属于个人理解);原创 2016-07-19 21:48:49 · 6162 阅读 · 1 评论 -
简单的独立按键控制继电器
/*************************** 独立按键控制继电器***************************/#include <reg52.h>#define uchar unsigned charsbit KEY = P1 ^ 0;sbit RelayEN = P0 ^ 0; //定义继电器开启信号void Timer0Init原创 2016-07-31 21:05:53 · 2075 阅读 · 0 评论 -
简单利用C51的Timer0实现倒计时(F-0)
/****************************用Timer0实现简单的1S倒计时*****************************/#include <reg52.h>#define uchar unsigned charvoid Timer0Init(); //定时器0初始化函数声明void SecProcess(); //倒计时处理函数声明v原创 2016-07-21 07:53:09 · 4855 阅读 · 2 评论 -
简单的使用定时器实现按键消抖,写得不好,望大家给指点一二。多谢了。
/******************************** 按独立按键使数码管加1********************************/ #include <reg52.h> #define uchar unsigned char sbit KEY = P1 ^ 0; //定义独立按键原创 2016-08-05 07:18:20 · 9256 阅读 · 1 评论 -
C51简单花样流水灯
#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define Q 30000//延时函数声明void delay(uint t);//主函数void main(void){ uchar i,a,b,c; //从左到右依次点亮一个小灯; c=0xfe; for(原创 2015-10-13 15:18:26 · 3392 阅读 · 0 评论