学习笔记 从零开始学单片机(0) 系统结构

发布者:陈风102最新更新时间:2021-07-28 来源: eefocus关键字:单片机  系统结构 手机看文章 扫描二维码
随时随地手机看文章

      最近想研究研究嵌入式系统,由于虽然是计算机专业的,但是硬件知识很差,再加上毕业若干年,全部忘光光。可以说,一切几乎是从零开始了。我还是从简单点的单片机开始学习,看了一眼,感觉比较容易些,从浅入深的学习吧。原来学东西好囫囵吞枣,学了一大堆几乎都是些皮毛,我这次写这个日志,一个是把它当做我的学习笔记,另外也是敦促我自己踏踏实实的学习。


      言归正传,去年在二手市场上花了¥2.00(也够抠门的了)买来了一本《单片微型机 原理、应用与实验》,复旦大学出版社的(我就是由买书的爱好,有没有用看到就想买),就拿它当做我的课本了吧。单片机这个东西,要理论联系实际,没有实验啥都是白学!于是跑到淘宝上花了3百多RMB买来开发板一套,附赠视频教程。预览了一遍,都是简单介绍一下理论(很多东西都没有说清楚),主要就是讲解了一下C代码,一切都得靠自己,哪有那么多现成的。


      教材上用的是汇编语言,写程序真是麻烦,还是用C吧,大不了C搞不定的时候嵌汇编不就完了么!


      还是从51,这个虽然比较老,但是很经目前典用应仍然很广泛的这类芯片开始学习,下面是一个典型的8051引脚图。

8051引脚

图1.1 8051引脚图


      制造工艺为HMOS(参考数电)的MSC-51单片机采用的是只引脚双列直插封装。12个时钟是一个机器周期,51的指令1~4个机器周期。


(1) 电源引脚:


Vcc接(+5v)电源


Vss接地。


(2) 时钟引脚:


XTAL1、XTAL2外接晶体振荡器。


(3) 控制引脚:


RST/Vpd:复位信号/备用电源输入(H/L)


ALE/PROC:地址锁存允许信号/编程脉冲输入端(H/L)


PSEN:程序存储器输出控制(L)


EA/Vpp:内外程序存储器选择控制端/施加较高编程电压(+21V或12V)的输入端(L/H)


(4)I/O口引脚


P0口:是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。


P1口:是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。


P2口:是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。


P3口:是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。


P3.0 10 RXD(串行输入口)


P3.1 11 TXD(串行输出口)


P3.2 12 INT0(外部中断0)


P3.3 13 INT1(外部中断1)


P3.4 14 T0(定时器0外部输入)


P3.5 15 T1(定时器1外部输入)


P3.6 16 WR(外部数据存储器写脉冲)


P3.7 17 RD(外部数据存储器读脉冲)


在4个端口当中,只有P0是真正的双向口,其他都是准双向口。其他都是准双向口。


单片机控制的时候就是向4个I/O口送高低电平,另外我们需要关注的是它的存贮器,和寻址方式。


(1)程序存贮器:


可以在单片机内部或者在外部,PC就是从0地址开始执行的,此时要设置一个跳转指令,跳向用户设计的主程序。MSC-51的中断入口是固定的,它们的地址是0BH,13H,1BH,23H……。地址通常从3开始,每隔8个字节安排一个中断入口。


(2)内部RAM数据存贮器


工作寄存器区(由PSW的第三和第四位指示):在需要的时候它们也可以作为数据缓冲器。


00H~07H:工作寄存器区0(R0~R7)


08H~0FH:工作寄存器区1(R0~R7)


10H~17H:工作寄存器区2(R0~R7)


18H~1FH:工作寄存器区3(R0~R7)


位寻址区:20H~2FH,它们每一位都占据地址空间00H~7FH,用于存放程序标志、位控制信息,同样它们也可以作为一般的数据缓冲器。


堆栈和数据缓冲器:30H~7FH。进栈是,SP先加1在写入,复位后SP为07H。所以对SP初始化时SP=6FH。


(3)特殊功能寄存器(地址空间80H~FFH)


复位时寄存器的状态如下:PC(0),PSW(0),SP(07H),P0~P3(FFH),SBUF(未知)…


(4)外部RAM和I/O口


MSC-51可以扩展64KB的RAM和I/O口,它们是统一编址的。


8051中断系统

8051中断系统结构图

5个中断源:INT0(P3.2),INT1(P3.3)外部中断源;TF0(定时器0),TF1(定时器1),RI/TI(串口输入输出中断)三个内部中断源。


2级的中断优先级(如图所示)


与中断有关的寄存器:


TCON

image.png

IT0:外部中断INT0触发方式选择(0,电平触发L;1,跳沿触发H2L),软件设置


IE0:外部中断INT0请求标志位,CPU响应中断后硬件清零


IT1:外部中断INT0触发方式选择,与IT0类似


IE1:外部中断INT0请求标志位,,与IE0类似


TR0:与TR1类似


TF0:T0溢出请求标志位,CPU响应中断后清零,查询方式下由软件清零


TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。


TF1:T1溢出请求标志位,与TF0类似


SCON

image.png

TI:串口发送中断请求标志位,硬件自动置位,在中断服务程序中软件清零


RI:串口接受中断请求标志位,硬件自动置位,在中断服务程序中软件清零


IE

image.png

EA:中断允许控制位,1-开中断 0-关中断


ES:串口输入输出中断控制位,1-允许中断 0-禁止中断


ET1:T1中断控制位,1-允许中断 0-禁止中断


EX1:INT1中断控制位,1-允许中断 0-禁止中断


ET0:T0中断控制位,1-允许中断 0-禁止中断


EX0:INT0中断控制位,1-允许中断 0-禁止中断


IP

image.png

PS:串口输入输出中断优先级控制位,1-高 0-低


PT1:T1中断优先级控制位,1-高 0-低


PX1:INT1中断优先级控制位,1-高 0-低


PT0:T0中断优先级控制位,1-高 0-低


PX0:INT0中断优先级控制位,1-高 0-低


关键字:单片机  系统结构 引用地址:学习笔记 从零开始学单片机(0) 系统结构

上一篇:51单片机自学笔记(一)——keil软件的使用
下一篇:51单片机开发之独立按键

推荐阅读最新更新时间:2024-11-13 15:53

单片机LCD12864G带字库的独立函数,可调用
本人在使用LCD12864时,用到了JLX12864G-086-pc 也就是带字库的LCD12864屏,采用SPI串口方式,根据厂家提供的标准例程,进行了修改,做成了一个可被调用的独立模块,并可对显示的文字进行反白显示,并提供了相应的头文件。 单片机源程序如下: //液晶屏型号:JLX12864G-086-PC-3S //接口:串行 //中文字库:带中文字库IC:JLX-GB2312,竖置横排 #include JLX1286486PC.h //延时 void lcddelay(int n_ms) { int j,k; for(j=0;j n_ms;j++) for(k=0;k 110;
[单片机]
PIC单片机的延时函数
  PIC单片机C语言中的延时函数(即延时一定值),有多种等效的编写,这里介绍一种最简延时函数。   函数中的K为给定的整形。
[单片机]
PIC<font color='red'>单片机</font>的延时函数
单片机小白学习之路(七)---数码管的动态显示
上篇讲到了用74LS138来控制数码管的位选,那是怎么选的呢?我们先来看看这个译码器的说明书 74LS138 /Y0--/Y7是数据输出 A0--A2是数据输入 /E1,/E2,E3是使能控制,/E1和/E2是低电平有效,E3是高电平有效 VDD是接电源;GND接地 最重要的是真值表了,来解释其运行方式 /E1和/E2是低电平有效,E3是高电平有效,只要其中一个不满足条件则/Y0--/Y7全部输出高电平,我们是共阴式数码管那么不会亮 从第四行开始都满足了,这时候就可以看看A0--A2了,顺序是A2- A1-A0,其从上往下依次是000,001,010,011,100,101,110,111.这样看出
[单片机]
我的TLC2543学习笔记——基于msp430g2553单片机
Created on: 2012-9-8 Author: zhang bin 学习笔记 for msp430g2553 redesigned by zhang bin 2012-09-08 versions :12_09_01 All Rights Reserved TLC2543具有4线制串行接口,分别为片选端(CS),串行时钟输入端(I/O CLOCK),串行数据输入端(DATA IN)和串行数据输出端(DATA OUT)(转换结束脚EOC可以不接)。它可以直接与SPI器件进行连接,不需要其他外部逻辑。同时,它还在高达4MHz的串行速率下与主机进行通信。 TLC254
[单片机]
基于单片机的踢球智能车系统设计
本设计采用了STC89C52单片机作为电动车的检测和控制核心,通过光电探头检测路面黑色寻迹线,使小车按预定轨道行驶,由光电传感器检测乒乓球位置,并进行射门。通过键盘控制和LCD12864液晶显示电路对小车的运动轨迹进行记录和显示切换,最后通过软件设计,实现了小车按轨道行驶、射门等功能。 1、 系统方案设计 1.1、寻迹线探测模块 探测路面黑色寻迹线的原理:光线照射到路面并反射,由于黑线和白纸的反射系数不同,可根据接受到反射光强弱由传感器产生高低电平并最终通过单片机判断是否到达黑线偏离跑道。 由可见光发光二极管与光敏二极管组成的发射-接收电路。该方案成本较低,易于制作,但其缺点在于周围环境光源会对光敏二极管的工作产生
[单片机]
基于<font color='red'>单片机</font>的踢球智能车<font color='red'>系统</font>设计
单片机之间通信(类红外发送与接收)
void call_user_sent() { static bit data_flag=0; static unsigned char a=0,b=0,c=0; TRISB5=1; TRISB2=0; if(!data_flag) //起始头 { c++; if(c==1) RB2=0; if(c==41) RB2=1; if(c =51) { c=0; data_flag=1; } } if(data_flag) //数据开始 { c++;
[单片机]
汇编和C语言相结合的51单片机编程技巧
  本文主要是关于汇编和C语言的相关介绍,并着重对汇编和C语言的不同及其编程技巧进行了详尽的阐述。   汇编和C语言   C语言和汇编语言的区别在于他们之间优缺点几乎是相反的。   C语言和汇编语言的优缺点:以c来举例   优点:   c的运行效率高;   c可以实现硬件的直接访问;   c代码的移植性好;   缺点:   c的代码复用性差;   c的代码维护性差;   c的扩展性差,即如果想增加新功能,需要修改较多的代码;   c语言的可读性差;   C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言;尽管C语言提供
[单片机]
汇编和C语言相结合的51<font color='red'>单片机</font>编程技巧
51单片机学习笔记———14.LCD1602工业显示屏
LCD1602工业显示屏 LCD工业显示屏解读: 共有16个引脚,其中D0~D7为收发数据引脚,为双向并行数据接口。 16代表每一行能够显示16个空格 2代表总共两行 因为每一个字节能够显示0和1,有两种可能,所以要将32位全部显示完全的话,至少需要2^5,也就是5位,所以我们可以设置8位,也就是一个字节来发送数据,这样比较方便 其中第四脚比较特殊,用来决定是用来确定位置还是发送我们想要显示的数据 RS=0确定位置 RS=1确认数据 显示数据的步骤: 初始化LCD1602 发送指令(RS=0) ----确定位置 发送数据(RS=1)-----确认数据 `RS`为低电平时为发送指令 指令:决定
[单片机]
51<font color='red'>单片机</font>学习笔记———14.LCD1602工业显示屏
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved