普中_51单片机学习笔记
51单片机学习过程记录。
曾梦见仗剑走天涯
这个作者很懒,什么都没留下…
展开
-
关于CMOS门电路_普中_89C52单片机
本篇笔记整理自B站郭天祥老师的视频《郭天祥—PN学堂-CMOS门电路-数字电路基础》1.MOS管的工作原理不记得可以取B站看视频,UP主:“爱上半导体” 的视频《Mos管的工作原理》,讲解的十分透彻,醍醐灌顶!附上链接,温故知新:https://www.bilibili.com/video/BV1344y167qm?share_source=copy_web2.CMOS门电路(Complementary Metal-Oxide-Semiconductor)(1)CMOS集成门电路简称CMOS门电原创 2021-12-29 00:42:20 · 535 阅读 · 0 评论 -
三态门及其在I2C总线中的应用_普中_89C52单片机
----本篇笔记整理自B站郭天祥老师的视频《三态输出的CMOS门电路》,郭老师讲解十分细致,可温故而知新!1.什么是三态门三态门(也叫三态输出电路、三态输出门),其电路的输出除了高、低电平外,还有第三个状态-高阻态Z。因为这种电路结构宗师接在集成电路的输出端,所以也将这种电路称为输出缓冲器。2.三态门的结构与原理图左侧是三态输出门的内部结构,右侧是三态输出门的符号解释:真值表输入输出关系:EN=0,A和Y不通,呈高阻态。EN=1,A=1时,Y=1。EN=1,A=0时,Y=0。原创 2021-12-28 22:45:50 · 3224 阅读 · 0 评论 -
数据类型_普中_89C52单片机
C51中的数据类型与PC中的数据类型有一定差异:原创 2021-12-26 00:54:23 · 189 阅读 · 0 评论 -
数码管_普中_89C52单片机
(1)数码管中引脚与LED的对应关系 (以1个数码管为例)注意:8个LED中有1个用来表示小数点,即DP(2)使用数码管的过程基本可分为2个部分:①先“片选”该数码管;②设置数码管各LCD的值。数码管驱动需要使用到2个芯片,分别对应上述①与②。在本开发板中,其中74HC138译码器用于对8个LCD进行“片选”,3个输入引脚,8个输出引脚。而74HC245芯片则用于实现使用单片机芯片输出的小电压来驱动LCD(LCD需要更大的电压驱动,由74HC245芯片VCC引脚提供)(3)若想同时驱动多个L原创 2021-12-26 13:15:02 · 3039 阅读 · 0 评论 -
拉电流、灌电流、吸电流_普中_89C52单片机
【吸电流、拉电流输出和灌电流概念区别】在集成电路中,吸电流、拉电流输出和灌电流输出是一个很重要的概念。拉即泄,主动输出电流,是从输出口输出电流。灌即充,被动输入电流,是从输出端口流入。吸则是主动吸入电流,是从输入端口流入。吸电流和灌电流就是从芯片外电路通过引脚流入芯片内的电流,区别在于吸收电流是主动的,从芯片输入端流入的叫吸收电流。灌入电流是被动的,从输出端流入的叫灌入电流。拉电流是数字电路输出高电平给负载提供的输出电流,灌电流时输出低电平是外部给数字电路的输入电流,它们实际就是输入、输出电原创 2021-12-26 18:26:57 · 392 阅读 · 0 评论 -
C语言编译时判断操作系统_普中_89C52单片机
#include <stdio.h>int main() {#if defined(_WIN16) || defined(_WIN32) || defined(_WIN64) printf("windows");#elif defined(__linux__) printf("linux");#elif defined(__APPLE__) printf("apple");#else printf("other");#endif return 0;}原创 2021-12-26 13:18:58 · 524 阅读 · 0 评论 -
定时器/计数器_普中_89C52单片机
关于单片机的的定时器/计数器的内容,手册中写的十分详细,由于内容较多,短时间无法,本笔记只用于记录部分关键信息。1.本次购买的单片机开发板中,定时器/计数器的数量为3个:定时器0/1/22.定时器/计数器有4种工作模式:模式0,13位定时器/计数器模式1,16位定时器/计数器(最常用)模式2,8位自动重装模式模式3,两个8位定时器/计数器注意:关于模式2的解释:模式2中,低8位是定时器初值,高8位是自动重装值,低8位计数溢出后将高8位的重装值赋值给低8位。3.定时模式与计数模式的区分:首先原创 2021-12-27 22:07:27 · 3084 阅读 · 0 评论 -
51单片机为什么要进行12分频_普中_89C52单片机
参考了几篇博客,整理原因如下:(1)传统的51单片机在执行指令时,需要取指、译码、执行等,而这其中每步还可以精细划分,这些步骤依靠时钟执行。标准51这个过程设计为12步,因此12个时钟是一个完整的指令周期。(2)51单片机是12MHz晶振,如果是单指令周期的语句,刚好是1us,其他语句为1us的整数倍,便于计算指令时间。(3)AT公司的AT89系列51单片机,工艺上存在不足,分频后频率降低,程序得以稳定执行,不易跑飞.(4)AT新出的单片机和一些公司出的新单片机不一定要用问12M的晶振,11.059原创 2021-12-28 12:36:15 · 2100 阅读 · 0 评论 -
关于时钟周期、状态周期、机器周期、指令周期的解释_普中_89C52单片机
关于时钟周期、状态周期、机器周期、指令周期的解释一、时钟周期与状态周期 时钟周期,一般也称振荡周期。如果晶振的输出没有经过分频或倍频就直接作为cpu的工作时钟,则时钟周期就等于晶振的振荡周期;如果晶振的输出经过分频或倍频后作为cpu的工作时钟,则时钟周期就就是分频或倍频后的。即,时钟周期是CPU的实际工作频率的倒数,它在这里插入代码片是计算机中最基本的、最小的时间单位。 比如,一个8051单片机外接一个8MHz的晶振,晶振不分频也不倍频,直接用于CPU的工作,那么此8051单片机的时钟频率就位1/原创 2021-12-28 12:36:47 · 7349 阅读 · 0 评论 -
按键抖动_普中_89C52单片机
(1)关于按键抖动的解释:(2)通过代码(软件)去除按键抖动//Remove button jitter//注:下列代码中P3_1为机械按钮,P2_0为LED灯。// 目的是实现按钮按下后LED灯取反。 Delay1ms(20); //延时20ms,由上图可知“按下抖动”时长在5-10ms。 while (P3_1 == 0); //等待按钮“抬起”,否则一直在此处循环。 Delay1ms(20); //按钮“抬起”后,再次延时20ms,去除抬起时原创 2021-12-26 03:13:58 · 2761 阅读 · 0 评论 -
LED闪烁_普中_89C52单片机
本节需要注意的点包括:(1)LED每隔500ms闪烁一次。可以利用STC-ISP工具软件中的“软件延时计算器”功能,设置好晶振频率(本芯片是12MHz)与产生的延时值,同时选择“8051指令集”选项为“STC-Y1”,具体选择与其支持的系列有关。(2)上述自动生成的延时函数中,有一个_nop_()函数,需要引用头文件 #include <INTRINS.H> 。...原创 2021-12-25 19:04:22 · 873 阅读 · 0 评论 -
点亮1个LED灯_普中_89C52单片机
过程比较简单,但是需要注意几点:(1)在KEIL中新建Project时,选择Device类型为AT89C52,注意:所属公司为MicroChip,原公司应该倍MicroChip收购了。(2)编写C代码时,需要头文件 #include <REGX52.h>,之后才能对单片机的寄存器进行赋值等操作,如“P2=0xFE”点亮1个LED灯。(3)关于HEX文件,Build工程后会生成1个.hex后缀的文件,需要将其烧录到单片机中。 KEIL默认不会生成.hex文件,需要在KEIL中设置。(4)原创 2021-12-25 17:04:02 · 1134 阅读 · 0 评论