历史上的今天
返回首页

历史上的今天

今天是:2025年12月14日(星期日)

2022年12月14日 | C51单片机重要知识点总结

2022-12-14 来源:zhihu

01 C51基本数据类型总结

我们要记得定义变量时,到底选择哪里一个,有一条重要原则是:在合理情况下,尽可能选择内存小的,单片机的内存资源很珍贵。51单片机只有128个字节。


讲讲全局变量和局部变量,全局变量:main函数以前定义;局部变量:函数体内部定义;如果没有被main调用时,不占用内存;能使用局部变量,就不使用全局变量;声明时可以不写变量名。

02 C51数据类型扩充定义

这部分内容是程序最开始前,我们常碰到的内容;

sfr :特殊功能寄存器说明

sfr16: sfr的16位数据声明

sbit: 特殊功能位声明

bit : 位变量声明


例如:SFR SCON=0x98

SFR T2=0xCC

Sbit OV=PSW^2


!!!中断函数不用进行声明;放在主函数前的函数也不用声明;


03 关于单片机

1、最小系统能够运行起来的必要条件:1、电源;2、晶振;3、复位电路;

2、对单片机任意IO口的随意操作:1、输出控制电平高低;2、输入控制电平高低;

3、定时器:重点掌握最常用的方式2

4、中断:外部中断、定时器中断、串口中断

5、串口通信:单片机之间、单片机与计算机之间

6、51上电以后,所有IO口都默认高电平


P1P2P3P4寄存器,有八个位;

例如:P1^2 P1寄存器的第二位


04 单片机工作的基本时序

1、振荡周期,也称时钟周期,是指单片机提供的时钟脉冲信号的振荡源的周期;

2、状态周期,每个状态周期为时钟周期的两倍,是振荡周期经过二分频得到的;

3、机器周期,一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作;

4、指令周期:它指CPU完成一条指令所欲的全部时间;


05 单片机复位

RST/VDD复位引脚,两个机器周期以后,程序指针指向0地址;

单片机只有在启动时,P3.1才会检测到计算机是否有下载指令;

ALE引脚可接示波器,检测单片机是否正常工作,输出为1/6晶振频率的波;


06 80C51的中断系统

(有5个中断源、2个优先级)

TCON寄存器:

(位地址是八的倍数,可以直接进行位操作)

IT0:外部中断0的触发方式,控制位;为0时,为电平触发方式;为1时,为边沿触发(下降沿)

IE0:外部中断0中断请求标志位;

IT1:外部中断1的触发方式,控制位;

IE1:外部中断1中断请求标志位;

TF0:定时器/计数器T0溢出中断标志位;

TF1:定时器/计数器T1溢出中断标志位;

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

TR0:T0运行控制位,功能与TR1类似;


SCON寄存器:

RI:串行口接收中断标志位;当允许串行口接受数据时,每接受完一个串行帧,由硬件置位RI,但必须由软件进行清零;

TI:串行口发送中断标志位,当CPU将一个发送数据写入串行口发送缓冲器时。每发送一串数据帧,由硬件置位TI,CPU响应中断时,不能自动清除TI,TI必须由软件清除。


中断优先级控制:

中断相应的条件:

中断源有中断请求;

此中断源的中断允许位位1;

CPU开中断(即EA=1);

中断函数不用进行声明;


07 定时器

实现定时功能,比较方便的办法是利用单片机内部的定时和计数功能;

1、软件控制,不占用硬件,但占用CPU时间,降低CPU效率;

2、采用时基电路定时,例如采用555电路,外接必要的元器件,即可构成硬件定时电路。硬件连接后,不能用软件进行修改即不可编程;

3、采用可编程芯片定时


定时/计数的实质是加1计数器(16位),由高八位和低八位两个寄存器组成;TMOD 是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0T1的启动和停止以及设置溢出标志。


加1计数器输入的计数脉冲有两个来源,一个是系统的时钟振荡器输出脉冲经12分频后送来,一个是T0或T1引脚输入的外部脉冲源。


当计数器满,TCON中TF0或TF1置1,向CPU发送中断请求(定时/计数器中断允许时),定时以到或计数已满。


TMOD寄存器

低四位用于T0,高四位用于T1

GATE:门控制,GATE=0时,只要用软件使TCON中断TR0/TR1为1,就可以启动定时/计数器工作;GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一个条件。

C/T非:定时/计数模式选择位,=0为定时模式,=1为计数模式;


M1M0:工作方式设置位,定时/计数器有四种工作方式

IE中断寄存器:

初始化程序应完成以下任务:

对TMOD赋值,以确定T0/T1的工作方式

计算初值,并将其写入TH0TL0或TH1TL1

中断方式时,则对IE赋值,开放中断

使TR0或TR1置位,启动定时/计数器定时或计数

08 串口通信

计算机串行通信基础:
并行通信与串行通信,其中串行通信分为异步和同步通信,异步:发送与接受设备时钟不同,是以字符(构成帧)为单位进行传输。

传输速率:比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)如每秒传送240个字符,而每个字符格式包含10位(1起始位,1个停止位,8个数据位),这时比特率为:10*240个/秒=2400bps;

SCON寄存器

方式说明:

RI:串行口接收中断标志位;当允许串行口接受数据时,每接受完一个串行帧,由硬件置位RI,但必须由软件进行清零;

TI:串行口发送中断标志位,当CPU将一个发送数据写入串行口发送缓冲器时。每发送一串数据帧,由硬件置位TI,CPU响应中断时,不能自动清除TI,TI必须由软件清除。


PCON中只有一位SMOD与串行口工作有关:

SMOD波特率倍增位,在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍,复位时,SMOD=0;


波特率的计算:

方式1的波特率可变,由定时器T1的溢出率来决定;

方式1的波特率=(2^SMOD/32)(T1的溢出率)

T1的溢出率=fosc/{12[256-(TH1)]} 一秒钟溢出多少次


串行口工作方式之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制

确定T1的工作方式(编程TMOD寄存器)

计算T1的初值,装载TH1、TL1

启动T1(编程TCON中的TR1位)

确定串行口控制(编程SCON寄存器)

串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)


推荐阅读

史海拾趣

申风(everanalog)公司的发展小趣事

申风(everanalog)公司于2013年在上海成立,由一群充满激情和梦想的电子工程师组成。创始人施嘉铭凭借其深厚的行业经验和前瞻性的视野,带领团队开始了集成电路设计的探索之旅。在初创阶段,公司面临着资金紧张、人才短缺等挑战,但团队凭借着坚定的信念和不懈的努力,逐渐在市场上站稳了脚跟。

Fairview Microwave Inc公司的发展小趣事

在国内市场取得一定成绩后,Fairview Microwave开始将目光投向国际市场。他们积极参加国际电子展会和技术交流活动,与全球各地的客户建立联系。同时,公司还积极开拓海外市场,通过设立分支机构和代理商等方式,将产品销售到全球各地。这些举措不仅为公司带来了更多的商机,也进一步提升了Fairview Microwave的品牌知名度和影响力。

General Electric Company公司的发展小趣事
尽管工作在高压环境下,但仍能保持较低的噪声水平,以保证信号的清晰度。
国产公司的发展小趣事
使用万用表等工具测量电路的静态工作点,确保各元器件工作在正常范围内。
Adamant Co Ltd公司的发展小趣事

随着国内市场的饱和,Adamant Co Ltd决定将目光投向更广阔的国际市场。公司通过市场调研和精准定位,成功进入了欧洲和北美市场。在国际市场的拓展过程中,Adamant Co Ltd积极寻求与当地企业的合作,通过技术共享和市场互通,实现了双赢局面。这不仅提高了公司在国际市场的竞争力,也为公司的长远发展打下了坚实基础。

Block USA Inc.公司的发展小趣事

Block USA Inc.最初以其线下支付业务Square在电子支付领域崭露头角。公司创始人杰克·多尔西洞察到小型商户在支付处理方面的需求,并推出了简单易用的磁条卡读卡器Square Reader。这一创新产品迅速受到市场欢迎,帮助无数小型企业和个体经营者实现了便捷、安全的电子支付。随着Square品牌的知名度不断提升,Block逐渐在支付领域建立了坚实的地位。

问答坊 | AI 解惑

S 1131 系列

本问将很详细的介绍S 1131 系列的单片机的内容是一本很详细的参考资料…

查看全部问答>

如何让单片机通过互联网控制???请高手指点.

今天做了一个东东...使用了周立功的ZNE10T串口转以太网模块..(该模块有IP协议栈) 实现了局域网的控制.... 但能不能实现外网的控制呢?(就是在远程通过别的PC机利用以太网控制) 请高手指点.... 上位机该怎样写呢?…

查看全部问答>

如何用c#实现wince4.2窗口最大化(隐藏任务栏),谢谢大家!!!

如何用c#实现wince4.2窗口最大化(隐藏任务栏),谢谢大家!!!…

查看全部问答>

sql server ce 总是装不上去

我的电脑上先安装了iis,然后我又安装了vs.net2005,继续安装sql server 2000(个人版)+ sql server 2000 sp4 我安装了sp4后查询sql的版本仍然是Microsoft SQL Server  2000 - 8.00.194 (Intel X86)不知道为什么没有改过来。 后来安装 ...…

查看全部问答>

LED光源技术在DLP拼接墙中应用的现状和前景深入分析

国内数字背投影显示墙市场已经经历了长达10年的高速增长。目前市场规模已攀升到40亿元人民币每年以上。而据预测,未来五年内该产业依然能保持年均30%以上的增长速率,并逐步实现市场规模化、品牌集中化。     数字背投影显示墙产品市场 ...…

查看全部问答>

新设计的MP3开发板

在LPC11U14没有出现之前用LPC1114设计的MP3开发板,在LPC11U14出现后感觉没有必要使用LPC1114,所以一直没有大样,现在秀秀图吧。。。。。。。。。。。。。。                     & ...…

查看全部问答>

❤TI DSP 系统设计经典问答!(收藏版★)

一.DSP系统设计经典问答 一、时钟和电源 问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的好? 答:时钟一般使用晶体,电源可用TI的配套电源。外接晶振用无源的好。   问:TMS320LF2407的A/D转换精度保 ...…

查看全部问答>

AT89C4051 用什么烧录的程序啊

各位大虾   有没有人用过 At89C4051的处理器  我仿照网上的资料做了一个串口的下载器  但是就是下不了   希望哪位朋友能给个说明啊    非常感谢了…

查看全部问答>

无线电能发送,给launchpad供电啦!

今天刚做的小东西,传输效率有点低,只有百分之十左右。 http://v.youku.com/v_show/id_XNDcwMTI2NTIw.html…

查看全部问答>

大家帮忙翻译一下ADI实验室电路下载资料的标题,感谢哈

1、Broadband, Low Error Vector Magnitude (EVM) Direct Conversion Transmitter Using LO Divide-by-2 Modulator (CN0311) 2、High Accuracy Multichannel Thermocouple Measurement Solution (CN0172) …

查看全部问答>