8051单片机学习笔记/概要/总结/备忘

发布者:火星叔叔最新更新时间:2017-01-03 来源: eefocus关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

*.I/O引脚和I/O端口

P0(P0.7~P0.0)

1.P0是一个漏极开路型准双向I/O口.
2.在访问外存时, 它是数据总线和地址总线的低8位分时复用接口.
3.在EPROM编程时, 它接收指令字节; 在验证程序时, 输出指令字节, 并要求外接上拉电阻.

P1(P1.7~P1.0)1.P1口是带内部上拉电阻的8位双向I/O口, 它是通用I/O口.
2.在EPROM编程和程序验证时, 它接收低8位地址.
P2(P2.7~P2.0)1.P2是带内部上拉电阻的8位双向I/O口.
2.在访问外存时, 它输出8位高地址.
3.在对EPROM编程时和程序验证时, 它接收8位高地址.
P3(P3.7~P3.0)1.P3是带内部上拉电阻的8位双向I/O口, 它是双功能I/O口.
2.除基本输入/输出功能外, 每个引脚还有特殊功能.
I/O口特殊/专用功能P3.0RXD:串行数据接收P3.1TXD:串行数据发送P3.2/INT0:外部中断0输入请求P3.3/INT1:外部中断1请求输入P3.4T0:定时器0外部计数脉冲输入P3.5T1:定时器1外部计数脉冲输入P3.6/WR:外部数据存储器写信号P3.7/RD:外部数据存储器读信号

 

 

 

 

 

 

 

 

 

 

 

 

 

 






*.复位寄存器状态

寄存器内容寄存器内容
PC0000HTMOD00H
A00HTCON00H
B00HTH000H
PSW00HTL000H
SP07HTH100H
DPTR0000HTL100H
P0~P30FFHSCON00H
IPXXX00000BSBUFXX
IE0XX00000BPCON 00H

 

 













*.特殊功能寄存器

特殊功能寄存器功能名称地址复位状态
B通用寄存器F0H00H
A累加器E0H00H
PSW程序状态字D0H00H
IP中断优先级控制B8HXXX0000B
P3P3端口B0H0FFH
IE中断使能控制A8H0XX00000B
P2P2端口A0H0FFH
SBUF串行发送/接收缓冲器99HXXH
SCON串行口控制98H00H
P1P1端口90H0FFH
TH1T1定时器高8位8DH00H
TH0T0定时器高8位8CH00H
TL1T1定时器低8位8BH00H
TL0T0定时器低8位8AH00H
TMOD定时器/计数器方式控制89H00H
TCON定时器控制88H00H
PCON电源控制87H00H
DPH地址寄存器高8位83H00H
DPL地址寄存器低8位82H00H
SP堆栈指针81H07H
P0P0端口80H0FFH

































*.可位寻址的特殊功能寄存器

寄存器名D7D6D5D4D3D2D1D0
电源控制寄存器 PCONSMOD


GF1GF0PDIDL
波特率倍乘位


用户标志用户标志掉电方式位待机方式位
定时器方式控制寄存器 TMODGATEC/-TM1M0GATEC/-TM1M0
T1门控位T1定时器/计数器选择T1工作方式选择T0门控位T0定时器/计数器选择T0工作方式选择
程序状态字 PSWCYACF0RS1RS0OV
P
进位标志辅助进位标志用户标志工作寄存器组选择标志溢出标志
奇偶标志
中断优先级控制器 IP


PSPT1PX1PT0PX0



串口优先级设置T1优先级设置/INT1优先级设置T0优先级设置/INT0优先级设置
中断使能寄存器 IEEA

ESET1ETXET0EX0
CPU总中断使能

串口中断使能T1中断使能/INT1中断使能T0中断使能/INT0中断使能
串口控制寄存器 SCONSM0SM1SM2RENTB8RB8TIRI
串口工作方式选择位允许接收发送数据第9位接收数据第9位发送完成中断标志接收数据中断标志
定时器控制寄存器 TCONTF1TR1TF0TR0IE1IT1IE0IT0
T1溢出标志T1运行控制位T0溢出位T0运行控制位/INT1中断标志/INT1触发方式/INT0中断标志/INT0触发方式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 














*.中断系统

中断源入口地址长度中断允许中断标志中断优先级位触发方式中断标志清零方式同级内部优先级
/INT00003H8EX0(IE.0)IE0(TCON.1)PX0(IP.0)IT0(TCON.0)
0:电平触发
1:下降沿触发
电平触发时需软件清零最高
T0000BH8ET0(IE.1)TF0(TCON.5)PT0(IP.1)
无需软件清零
/INT10013H8EX1(IE.2)IE1(TCON.3)PX1(IP.2)IT1(TCON.2)电平触发时需软件清零
T1001BH8ET1(IE.3)TF1(TCON.7)PT1(IP.3)
无需软件清零
串口0023H8ES(IE.4)

RI(SCON.0)
TI(SCON.1)

PS(IP.4)
 需软件清零最低





















*.定时器/计数器工作方式

M1M0工作方式功能
00方式013位计数器
01方式116位计数器
10方式2可自动重新装入的8位计数器
11方式3T0分为两个独立的8位计数器,T1停止









*.串口工作方式

SM0SM1方式说明
000位移寄存器方式(用于I/O扩展)
0118位UART,波特率可变(T1溢出率/n)
1029位UART,波特率为fosc/64或fosc/32
1139位UART,波特率可变(TI溢出率/n)








  注:表中n为32/2SMOD,SMOD为PCON的第7位波特率倍乘位

*.定时器/计数器初值的计算
环境:
  晶振:12.0000MHz
  定时器:T0
  溢出条件:(TH0<<8|TL0)由0FFFFH变为0000H(0FFFFH+1 产生的进位置位TF0产生中断)

假设延时时间为50ms,则:
  频率:ft = 12.0000MHz
  时钟周期:Tt = 1/ft (SI)
  机器周期:Tm = 12*Tt = 12*1/(12*10^6),(SI) = 12*1/12 (us) = 1 (us)(前面的12是因为51是12分频,即12个时钟周期为1个机器周期)
  所以:
    50ms == 50000us == 50000个机器周期
    由 0FFFFH 到 10000H 为 1个机器周期,则:
  初值:start = 0FFFFH + 1H - 50000D = 65536D - 50000D = 15536D = 3CB0H
    于是:TH0 = 0x3C,TL0 = 0xB0

  若晶振频率为:ft = 11.0592MHz
  同样:机器周期Tm = 12*Tt = 12*1/(11.0592*10^6),(SI) = 12/11.0592 (us) = 1.085069(us)
  所以:
    50ms == 50000us = 50000/1.085069 = 46080D 个机器周期
    初值:start = 0FFFFH + 1H - 46080D = 65536D - 46080D = 19456D = 4C00H
    于是:TH0 = 0x4C, TL0 = 0x00

*.串口通信中定时器工作方式下波特率初值计算以及晶振的选择
  当串口工作方式为1(8位UART),T1为定时器时:
    k=13:定时器工作方式0; k=16, 工作方式1, k=8, 工作方式2, ...
    T1溢出率 = Fosc/(12*(2k-初值)),即每秒溢出次数,Fosc:晶振频率,*12:转换为时钟周期
    所以 波特率 = T1溢出率/(32/2SMOD) = 2SMOD */32*T1溢出率 = 2SMOD * Fosc /(32*12*(2k-初值))
    常用波特率:9600bps,192000bps,4800bps, ...
    所以当波特率=9600bps, SMOD=0, k=8时:
      波特率 = 2SMOD * Fosc /(32*12*(2k-初值)) = Fosc/(384*(256-初值)) = 9600
      当晶振为11.0592Mhz时:9600=11.0592*106/(384(256-初值)),求得:初值=253D = 0FDH,此时恰为整数(即TH1=TL1 = 0xFD)
      当晶振为12.0000MHz时:初值为252.744791, 不为整数
这就是为什么在进行串行通信时要选择11.0592MHz晶振, 不选择12MHz晶振的原因.


*.由定时器1产生的常用波特率

波特率 bps晶振频率 Fosc波特率倍乘
SMOD
定时器1
C/-T模式重装载值
62500121020FFH
1920011.05921020FDH
960011.05920020FDH
480011.05920020FAH
240011.05920020F4H
120011.05920020E8H
13750011.05920021DH
110600272H
110120010FEEBH















关键字:单片机 引用地址:8051单片机学习笔记/概要/总结/备忘

上一篇:基于51单片机实现模拟IIC总线时序
下一篇:51驱动1602液晶显示器的程序

推荐阅读最新更新时间:2024-03-16 15:28

STM32单片机GPIO概述及相关寄存器
5.1 STM32单片机GPIO概述 STM32中每个IO口都有很多个作用,比如这次我们使用的STM32F103ZET6的PA0口,既可以作为IO口使用,还可以作为待机唤醒(WAKEUP),模拟输入(ADC功能)等。根据数据手册中列出的每个I/O端口的特定硬件特征,GPIO端口的每个位可以由软件分别配置成多种模式。 (1)输入浮空 (2)输入上拉 (3)输入下拉 (4)模拟输入 (5)开漏输出 (6)推挽式输出 (7)推挽式复用功能 (8)开漏复用功能 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器的读/
[单片机]
STM32<font color='red'>单片机</font>GPIO概述及相关寄存器
用于便携设备视频播放的高速OLED驱动芯片
    随着科技的进步,视频播放应用已广泛进入商业电子产品中(如移动电话和MP3播放器)。移动电话和MP3播放器是当前最热门、发展最快的两种商业电子产品。手机市场在今后几年内可望持续增长。     在这些便携设备中,高品质的显示对观看视频十分重要。有机发光二极管(OLED)显示技术包含多项不同的优点(如超快的反应时间),被认为是及时出现的显示解决方案。为了在视频播放中充分地运用OLED本身存在的这些好处,需要一个具有高竞争力的智能驱动芯片。     彩屏手机的普及激发了大量以前手机上未曾出现的新功能,如录制及重放录像视频、拍摄和显示照片、玩游戏、浏览网页、查看电子邮件还有阅读电子书等。预计到2009年,可拍照手机的出货量将达到9亿部
[嵌入式]
一种便携式单片机控制液晶显示型心率计设计
引言   过去人们测量脉搏时常用的方法是使用测量脉搏的听诊器,或者使用吸附在人体上的电极等老式测量方法,这些方法无疑都不便于室外场所使用。本心率计在设计时就充分考虑到了这一点。它采用红外线来进行检测采集人体的脉搏,检测的部位为被检测人的任意一个手指或者是耳垂。   检测的基本原理是:随着心脏的搏动,人体组织半透明度随之改变。当血液送到人体组织时,组织的半透明度减小;当血液流回心脏,组织的半透明度增大。这种现象在人体组织较薄的手指尖、耳垂等部位最为明显。因此,本心率计将红外发光二极管产生的红外线照射到人体的上述部位,并用装在该部位另一侧或旁边的红外光电管来检测机体组织的透明程度并把它转换成电信号。由于此信号的频率与人体每分钟的
[医疗电子]
一种便携式<font color='red'>单片机</font>控制液晶显示型心率计设计
Keil开发STM32更换MCU造成的编译不通过的解决办法
1.更换MCU型号(在Keil从STM32F103ZET6换成STM32F107RCT6) 时出现的编译错误: 这个问题是因为对应处理器内部资源少于启动文件中提及的内部资源,启动文件中某一部分寄存器地址在STM32F107RCT6中没有,才会编译出错。 2.更换启动文件宏定义 由于STM32F103系列的不同型号MCU内部ROM和RAM不同,其地址区间也有些许差异所以需要选择与型号对应的启动文件,并配置对应的宏定义 故首先将startup中加入startup_stm32f10x_cl.s启动文件,然后在“C/C++”配置启动文件:把STM32F10X_HD换成STM32F10X_CL
[单片机]
基于STC89S52单片机的电子万年历系统
目前基于单片机控制技术的微电子技术得到空前的发展。广泛应用于各种控制领域、智能领域、仿真领域。控制领域里的定时计时控制、温度控制,在生产、生活等领域已经得到了广泛的应用。液晶显示模块在各种测量仪器、测量装置、显示仪表等日用电子产品中的应用越来越广泛,并且对器件的测量精度和显示精度的要求也越来越高,尤其是对时间的测量不但要求准确,而且需要读取数值更直观更方便。本文以AT89S52单片机为主控芯片,以DALLAS公司推出的实时时钟芯片DS1302为时钟控制芯片,以1602液晶显示模块为显示器,进行电子万年历系统的设计。本系统可同屏显示年、月、日、星期、温度以及闹钟设置等功能。 1 系统总体设计 本系统以STC89S52单片机为核心,
[单片机]
基于STC89S52<font color='red'>单片机</font>的电子万年历系统
基于单片机的程控交换机多机通信设计
  国内单片机 多机通信 方向技术开发应用已有相当长时间,在智能化仪器、工业自动控制、家用电器机电一体化等方面的应用成果尤为显著。本文介绍 AT 系列单片机 多机通信在程控交换机中应用。   多机程控交换机将1 至2 条电话外线扩展成4 绳路、12 个分机容量, 可以多部分机同时通话而互不干扰(可以内外线混用); 分机可以为电话机、传真机、答录机和电脑等任何电讯产品。   1 硬件结构简介   本程控交换机应用AT 系列单片机, CPU 使用一个AT89C52 和四个AT89C51, 进行多机通信, 如图1 所示。      其中一个CPU(AT89C52)作为上位机, 实现分机摘机/ 挂机查询、分机振铃等
[电源管理]
基于<font color='red'>单片机</font>的程控交换机多机通信设计
Atmel: MCU市场的未来走向
在未来数年,全球半导体行业增长率将会回落到单位数,而据市场研究机构iSuppli报告,2011年全球半导体行业将会面对5.1%的温和营收增长率。不过,诸如 智能手机 、 平版计算机 、宽带无线接入,以及智能能源基础设施等领域,在未来数年仍有双位数字的增长。 在2010年,我们看见一线品牌的OEM厂商开始将电容式触摸用户接口用于的智能手机,以及Android正在兴起,成为主流的手持式产品操作系统之一。我相信在2011年这趋势将会延续。同时我们预计平板电脑将在2011年变得更流行,并抢去部分上网本和笔记本电脑的市场。另外,电容式触摸接口将有机会渗透其它便携产品,例如是手持式游戏机、数码相机、个人多媒体设备 (PMP)等
[工业控制]
日立单片机模糊控制开发平台及其应用
     摘 要: 介绍已开发成功的“日立单片机模糊控制开发平台”的主要功能。在该软件平台上可以方便地定义和调试一个复杂的模糊控制系统。模糊控制系统调试完成后,能够自动生成用c和汇编两种语言书写的模糊控制执行程序。给出的温度模糊控制系统示例的开发过程和实验,证明了该平台应用的有效性。     关键词: 模糊控制 开发平台 单片机应用     模糊控制在工业自动化中获得了广泛的应用。在一般的控制系统设计中,仿真技术被大量用来进行系统模拟调试,以期提高系统开发速度。然而,对模糊控制系统的通用性仿真手段却很鲜见,使得应用系统的开发效率较低。因此,开发一个模糊控制仿真平台具有现实的意义。在日立亚洲科技有限公司的鼎力
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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