简介:51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一。
1. 电路图
一个二极管点亮一般需流经的电流值为3mA~10mA,二极管两边的压降为1.6V~1.7V。
2. 点亮二极管:
(1)位操作: sbit led0=P0^0; led0=0;//单个位的赋值
(2)总线操作: P0=0xfe;//11111110 整个8位引脚一起赋值
3. 软件仿真:
点工具栏上d图标,双击某行即设置断点;若要用软件仿真查看一条语句的执行时间,一定要在Options for target -》target-》Xtal(MHz)中将晶振频率设成与单片机的频率相同。(机器周期=12*晶振周期=12*系统时钟周期, 晶振频率越高,单片 机执行速度越快,11.0592M的频率一般用于单片 机与单片机或主机的串口通信)
4. 51单片机31脚EA,接高电平时,从片内存储器中读取指令执行;低电平时,读片外存储器。
5. 51单片机中P1、P2、P3都有上拉电阻,而P0没有,所以,要想使P0作为正常I/O口使用时,需加上拉电 阻(如排阻)。
6. 有些编译程序编译完了之后,会自动将你写的程序进行无限循环,若想让程序停在某个语句之后,则在该语句后面加“while(1);”即可。
7. #include 有用于移位的函数_crol(k,1) /*假设k为11111110,函数执行后k为11111101*/。
8. 51单片机上电后,默认的I/O口状态是高电平。
关键字:51单片机 闪烁灯 指令系统
引用地址:
利用51单片机设计闪烁灯
推荐阅读最新更新时间:2024-11-11 22:31
如何利用MCS-51单片机对周期波频率进行测量
对于周期波频率的测量方法很多,但大多是通过测量间接计算频率。本文介绍了用目前应用比较广泛的MCS-51系列单片机对周期波频率进行测量,并通过LED以数字形式直观地示出频率,实现测量的智能化,省去间接对频率计算的麻烦与错误。文章对其测量原理,设计和实现作了说明,介绍了主要程序,并进行了误差分析。 目前单片机广泛应用到国民经济建设和日常生活的许多领域,成为测控技术现代化不可缺少的重要工具。而本文适应这一发展趋势,把MCS-51系列单片机应用于对周期波频率的测量,并通过LED显示器自动显示出来,这对于频率的测量带来了极大的方便。 设计思想 利用施密特触发器将边缘缓慢变化的周期性信号如正弦波、三角波或任意形状的模拟信号变换成同频率
[单片机]
51单片机可编程芯片8255之LED灯控制
程序编写步骤: 1.设置8255工作方式(PA工作在模式0且为输入,PB工作在模式0且为输出) 2.编码PA,PB口地址(PA为#0FF7CH,PB为#0FF7DH,控制端口为#0FF7FH) 3.布置电路图(见图一) 4.设计程序(见源程序注释) 5.调试仿真(见视频文件) 电路原理图布置(如图一): 元器件(51芯片;74ls373锁存器;led灯若干;按钮若干;导线若干;5v电源) 图一 汇编源程序如下: ORG 0000H; LJMP MAIN; ORG 0030H;(头文件) MAIN:MOV DPTR,#0FF7FH;(设置工作方式) MOV A,#90H; MOVX @DPTR,
[单片机]
基于51单片机的简单计算器
在上一篇中,我们已经说过了基于51单片机的简单拨号器,在下边,我们将写一个计算器程序,原理很简单,只需要在拨号器的基础上,算出拨号器所表示的数字,并进行计算即可。 代码如下; #include reg51.h #include intrins.h typedef unsigned char u8; //对数据类型进行声明定义 typedef unsigned int u16; sbit LSA=P2^2; //38译码器数码管位选 sbit LSB=P2^3; sbit LSC=P2^4; sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; sbit k4=P3^3;
[单片机]
基于51单片机实现74LS164串入并出移位寄存器
对于串入并出移位寄存器以下是我个人的理解和实际开发工程中得出的经验 图一: 由我上图所画 可以得出 一个8位串入数据输入, 8位并行输出。可以看出先移的是高位, 就是第一个位进去的到最后会在最高位。 图为时序图 A B 是输入 clean 是清0端,低电平有效。就是如果给个低电平那么输出都为0强制都输出0。一般接高电平 clock 是时钟 上升沿有效 由上图可以得出如果 A B 有一个为低电平 ,那么阻止新数据的进入,并在下一个时钟上升沿时,将 QA 端清0. 如果A B端都为高电平则会使能信号输入,并在下一个时钟脉冲的上升沿之前使输出端QA置1.每一个时钟脉冲上升沿到来时,输出端的数据会移动一个位
[单片机]
51单片机入门 - 并行I/O口扩展实例(74LS244/74LS373/4071)
并行I/O口扩展实例 //《51单片机原理及应用(第二版)——基于Keil C与Proteus》第四章例4.4 I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0、P2口用作地址总线和数据总线,此时能用的I/O口就只有P1和P3口,如果再使用串行通信,I/O口就不够使用了,需要扩展I/O口 两种方式: ① 采用普通锁存器、三态门等芯片来进行简单的扩展(如74LS373或74LS244等) ② 采用可编程的I/O芯片来扩展(如8255或8155等) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[单片机]
TJA1020+51单片机实现的LIN总线通讯源程序(master+slave)
LIN mater的51单片机代码 /**************master*****************/ #include REGX52.H #include intrins.h sbit p31=P3^1; sbit k1=P1^0; sbit k2=P1^1; sbit p20=P2^0; unsigned char t; unsigned char sendflag, flag; void delay(unsigned int i) { while(i--); } void send() { // 同步 ID data1 data2
[单片机]
STM32GPIO口8种模式细致分析(类比51单片机)
关于STM32GPIO口的8种工作模式,我们先引出一些问题? STM32GPIO口如果既要输入又要输出怎么办? 1、浮空输入模式 上图红色的表示便是浮空输入的过程,外部输入时0读出的就是0,外部输入时1读出的就是1,外部没有输入IO处于阻塞读不出电平状态。 用处:感觉在信号处理方面用的比较好,比如在读取一段一段的波形,可以清晰的知道什么时候是0信号,什么时候是1信号,什么时候是没有信号的。 类比:51单片机找不到类似的输入模式 2、上拉输入 上拉输入和浮空输入的区别是,上拉电阻的开关关闭了,如上图所示。IO没有输入的时候,IO电平等于VDD即1电平,当然IO输入低电平的事就是VDD和IO口形成一个闭环电路,根据分压
[单片机]
80C51单片机的引脚功能基础详解
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图 P0.0 ~ P0.7: P0口8位双向口线。 P1.0 ~ P1.7 :P1口8位双向口线。 P2.0 ~ P2.7 :P2口8位双向口线。 P3.0 ~ P3.7 :P3口8位双向口线。 ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 PSEN:外部程序存储器读选通信号。在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操
[单片机]