版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机读书笔记【篇一:51单片机读书笔记】单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(cpu),随机存取数据存储器(ram),只读程序存储器(rom),输入输出电路(i/o口),可能还包括定时/计数器,串行通彳口(sci),显示驱动电路(led或led驱动电路),脉宽调制电路(pwm),模拟多路转换器及a/d转换器等电路集成到一个单块芯片上,构成一个最小然而完善的计算机系统。软件特征是指指令系统特性和开发支持环境,指令特性即单片机的寻址方式、数据处理方式、逻辑处理方式、输入输出特性及对电源的要求等等现在常规的单片机普遍
2、都是将中央处理器(cpu)、随机存取数据存储(ram)、只读程序存储器(rom)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一个单一的芯片上,增强型的单片机集成了如a/d转换器、pmw(脉宽调制电路)、wdt(看门狗),有些单片机将led(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大单片机按内部数据通道的宽度,可分为4位、8位、16位及32位单片机。单片机的特点可归纳为以下几个方面:1)集成度高2)存储容量大3)外部扩展能力强4)控制功能强5)低电压、低功耗6)低电压、低功耗7)可靠性高mcs-51系列单片机还有颇具特色的21个特殊功能寄存器sf
3、r利用sfr可完成对定时器、串行口、中断逻辑的控制,这就使得单片机可以把定时/计数器、串行口、中断逻辑等集成在一个芯片上。mcs-51单片机组成结构中包含运算器、控制器、片内存储器、并行i/o口、串行i/o口、定时/计数器、中断系统、振荡器等功能部件sp是堆栈指针寄存器,pc是程序计数器,psw是程序状态字寄存器,dptr是数据指针寄存器。程序状态字寄存器(标志寄存器)。程序状态字寄存器(psw)是一个8位的特殊寄存器,它保存alu运算结果的特征和处理状态,以供程序查询和判另U。psw中各位状态信息通常是指令执行过程中自动形成的,但也可以由用户根据需要加以改变。psw中各位的定义如下:时,(c
4、y)=1;当加法或减法运算时,最高位无进位或借位,(cy)=0。cy位主要用在多字节的加减法运算中。ac(psw.6):辅助进位标志。无符号数运算中,当加法或减法运算时,低4位向局4位有进位或借位,(ac)=1;当加法或减法运算时,低4位向高4位无进位或借位,(ac)=0。ac位常作为计算机进行bcd码修正的判断依据。 f0(psw.5):用户标志位。无特另U意义,供用户自行定义。通过软件置位或清零,并根据(f0)=1或0来反映系统某一种工作状态,决定程序的执行方式。 rs1、rs0(psw.4、psw.3):工作寄存器组选择位。可用软件置位或清零,用于选定当前使用的4个工作寄存器组中的某一组
5、。将在存储器结构部分中介绍。 ov(psw.2):溢出标志。主要用在有符号数运算时,运算结果超出了范围时,(ov)=1;否则,(ov)=0。如为8位运算,若结果超过了8位补码所能表示的范围128+127,则(ov)=1。计算机在数据处理过程中,ov置位和清位的依据是:即(ov)=(c)?(c7.6)。p(psw.0):奇偶标志位。在执彳了指令后,单片机根据累加器a的8位二进制数中“1的个数的奇偶,自动给该标志置位或清零。若累加器a的8位二进制数中“1的个数为奇数,贝U(p)=1;若累加器a中“1的个数为偶数,贝U(p)=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性控制
6、器是单片机的神经中枢,是由指令寄存器ir、指令译码器id、程序计数器pc、堆栈指针sp、数据指针dptr、定时及控制逻辑电路等组成。它先以主振频率为基准发出cpu的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作控制器1)程序计数器pc(16位的计数器)。用于存放cpu下一条要执行的指令地址,是一个16位的专用寄存器,可寻址范围是0000hffffh,共64kb。指令寄存器(ir)o指令寄存器用于存放指令代码指令译码器id。指令译码器用于分析指令功能,根据操作码产生相应操作的控制信号。(3) 数据指针(dptr)
7、。数据指针dptr是一个16位的专用寄存器,其高位字节寄存器用dph表示,低位字节寄存器用dpl表示。定时与控制逻辑。定时与控制逻辑由时序部件和微操作控制部件构成时序部件。时序部件由时钟系统和脉冲分配器构成微操作控制部件。计算机在执行一条指令时,总是把一条指令分成若干基本操作,称为微操作。微操作控制部件根据指令产生计算机各部件所需要的控制信号。这些控制信号是由指令译码器的输出信号、脉冲分配器产生的节拍脉冲以及外部的状态信号等进行组合产生【篇二:51单片机学习笔记】51单片机手册51单片机手册1开发板1程序下载1程序开发1开发环境1i2c2i2c通信读写数据过程2spi总线4概括4c语言应用4断
8、4data,idata,xdata,pdata,code5c语言中的static详细分析6开发板程序下载stc90xx的下载注意点:1.3.3v和5v短路帽需要接到5v2.j0挑到auto3.txd,rxd都在usb端4.用usb转串口线连接pc和板子5.usb转串口的驱动装上.6.用pzisp.exe,芯片型号要选对。程序开发开发环境需要转上keil3工程文件后缀为uv2一开始要新建一个project,会自动跳出选择相应芯片的窗口,选择对应的就ok,主要是为了生成头文件i2ci2c通信读写数据过程在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的
9、位数和位置。以读写从机寄存器数据为例:假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);约定读command为0x01,写command位0x02;约定主机发起通信后,第一个slaveaddress字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。1. 读寄存器数据步骤:1.1主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)1.2从机firmware的处理:2. 1.2.1将command和address分另U提取出来;1.2.2判断command的含义(本例中,是读指令还是写指令
10、);1.2.3根据收到的的address,将对应寄存器的的数据放入从机i2c输出buffer;(这个步骤可以使用指针)1.3主机再次发起一次通信,读取从机的数据;(主机发出读操作)写操作步骤:2.1主机发起通信,按约定依次写入command、要写入的从机寄存器地址address和要写入的数据data;2.2从机firmware要做的处理:分另U提取command、address和data;2.2.2根据command做出判断(本例中则判断是写入还是读取);2.2.3将data写入与接收到的address对应的寄存器。(这个步骤可以使用指针)。spi总线概括通常有一个主设备和一个或多个从设备,需
11、要至少4根线(1)sdo-主设备数据输出,从设备数据输入;(2)sdi-主设备数据输入,从设备数据输出;(3)sclk-时钟信号,由主设备产生;cs-从设备使能信号,由主设备控制。据输出通过sdo线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取spi接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据spi的片选可以扩充选择16个外设,这时pcs输出=npcs,说npcs03接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为npcs03,输出用于16个外设的选择。c语言应用中断timer0_int()interrupt1using2unsigne
12、dchartemp1;unsignedchartemp2;executablecstatements;interrupt声明表示向量生成在(8*n+3),这里,n就是interrupt参数后的那个数字这里,在08h的代码区域生成ljmptimer0_int这样一条指令中断源的矢量位置中断源keil中断编号矢量地址最高优先级60x0033外部中断000x0003定时器0溢出10x000b外部中断120x0013定时器1溢出30x001b串口40x0023定时器2溢出50x002bdma70x003b硬件断点80x0043jtag90x004b软件断点100x0053监视定时器120x0063da
13、ta,idata,xdata,pdata,code从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分另U对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写c51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ansi-c稍有不同,它只分samll、compact、large模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。在51系列中1data,idata,xdata,pdata
14、的区另U:data:固定指前面0x00-0x7f的128个ram,可以用acc直接读写的,速度最快,生成的代码也最小。idata:固定指前面0x00-0xff的256个ram,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似c中的指针方式访问的。汇编中的语句为:moxacc,rx.(不重要的补充:c中idata做指针式的访问效果很好)xdata:外部扩展ram,一般指外部0x0000-0xffff空间,用dptr访问。pdata:外部扩展ram的低256个字节,地址出现在a0-a7的上时读写,用movxacc,rx读写。这个比较特殊,而且c51好象有对此bug
15、,建议少用。但也有他的优点,具体用法属于中级问题,这里不提。【篇三:51单片机c语言学习笔记】一、定时器/计数器1. 定时器/计数器结构2. 寄存器tcon:定时器/计数启动和停止2.1 tcon的高4位控制定时器/计数器的启动和中断申请,低4位与外部中断有关。2.1.1 tf1/tf0:定时器/计数器t1和t0的益处标志位,定时器/计数器有溢出时,会将tf1或tf0位置“T,表示定时器/计数器有中断请求。2.1.2 tr1或tr0:定时器/计数器t1和t0的启动/停止位。tr1或tr0设置为“T定时器/计数器t1和t0的启动,若设置为“0”,相应的定时器/计数器就停止工作。3. 寄存器tmo
16、d:设置定时器/计数工作方式(用于计数或定时)。tmod:定时器/计数器工作方式tmod寄存器中高4位控制t1,低4位控制t0。他们对定时器/计数器工作t0、t1的控制功能是一样。(下面以低4位控制定时器/计数器t0为例,说明各位的具体控制功能)3.2.1gate:门控位,控制定时器/计数器的启动模式。gate=0时,只要用软件使tcon中的tr0置“1;就可以启动定时器/计数器工作。gate=1时,将tr0置“1外,还需要外部中断引脚int0也为高电平,才能启动定时器/计数器工作。c/t:定时器/计数器模式选择位c/t=0时,定时器/计数器被设置为定时器工作方式,c/t=1时,定时器/计数器
17、被设置为计数器工作方式。3.2.2 m0、m1:定时器/计数器工作方式设置位。备注:t0、t1工作于定时或者计数时都不占cpu工作时间。定时器/计数器的初始值计算定时器/计数器应用举例5.1用定时器t0查询方式控制p2口8位led灯闪烁使用定时器t0的查询方式tf0来控制p2口8位led闪烁,t0工作于方式1,led灯闪烁周期100ms,即亮50ms,熄灭50ms0。5.1.1定时器t0工作方式的设置用指令对t0的工作方式进行设置:tmod=0x01;/即tmod=00000001b,低4位gate=0,c/t=0,m1m0=01上述设置中,低4位c/t=0,使t0工作于计时方式。gate=0
18、,使tr0=1时即可启动t0开始工作。m1m0=01,使t0工作于方式1。5.1.2定时器初值的设定单片机晶振为11.0592mhz,所以经12分频后送到t0的脉冲频率是f=11.0592/12mhz,周期t=1/f=12/11.0592=1.085us。即每个脉冲计时1.085us,要计时50ms(即50000us),需要计的脉冲数为50000/1.085=46038(次)。则定时器的初始应设置为65536-46083=19453。这个数需要t0的高8位寄存器(th0)和低8位寄存器(tl0)来分别存储,这两个寄存器初始值的设置方法如下:th0=(65536-46083)/256;/定时器t
19、0的高8位赋初值tl0=(65536-46083)%256;/定时器t0的低8位赋初值5.1.3定时器t0开始工作后,可通过编程让单片机不断查询益出标志位tf0是否为1,若为1,则表示计时时间到,否则等待。5.1.4程序设计实例42:用定时器t0查询方式p2口8位控制led闪烁#includereg51.h/包含51单片机寄存器定义的头文件/*函数功能:主函数*/voidmain(void)(/ea=1;/开总中断/et0=1;/定时器t0中断允许tmod=0x01;/tmod=00000001b,使用定时器t0的模式1th0=(65536-46083)/256;/定时器t0的高8位赋初值tl
20、0=(65536-46083)%256;/定时器t0的低8位赋初值tr0=1;/启动定时器t0tf0=0;/定时器t0溢出标志位用软件清零p2=0xff;/先定义p2口为高电平,led灯不亮while(1)/无限循环等待查询(while(tf0=0)/查询标志位是否溢出;/空指令tf0=0;/若计时时间到tf0=1,需用软件将其清0p2=p2;/将p2按位取反,实现led灯闪烁th0=(65536-46083)/256;/定时器t0的高8位重新赋初值tl0=(65536-46083)%256;/定时器t0的低8位重新赋初值5.2用定时器t1查询方式控制单片机发出1khz音频5.2.1定时器t1
21、工作方式的设置用指令对t1的工作方式进行设置:tmod=0x10;/即tmod=00010000b,高4位gate=0,c/t=0,m1m0=01上述设置中,高4位c/t=0,使t1工作于计时方式。gate=0,使tr1=1时即可启动t1开始工作。m1m0=01,使t1工作于方式1。5.2.2定时器t1初值的设定要发出1khz音频,让单片机送给蜂鸣器(接p3.7引脚)的电平信号,每隔音频的半个周期取反一次即可。音频的周期为1/1000=0.001s,即1000US,则要计数的脉冲数为1000/1.0852=921(次),定时器t1的初值设置如下:th1=(65536-921)/256;/定时器
22、t0的高8位赋初值tl1=(65536-921)%256;/定时器t0的低8位赋初值5.2.3程序设计实例43:用定时器t1查询方式控制单片机发出1khz音频#includereg51.h/包含51单片机寄存器定义的头文件sbitsound=p3八7;/将sound位定义为p3.7引脚/*函数功能:主函数*/voidmain(void)/ea=1;/开总中断/et0=1;/定时器t0中断允许tmod=0x10;/tmod=00010000b,使用定时器t1的模式1th1=(65536-921)/256;/定时器t1的高8位赋初值tl1=(65536-921)%256;/定时器t1的低8位赋初值tr1=1;/启动定时器t1tf1=0;/定时器t1溢出标志位用软件清零while(1)/无限循环等待查询while(tf1=0)/查询标志位是否溢出;/空指令tf1=0;/若计时时间到tf0=1,需用软件将其清0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度坡屋面小青瓦施工质量监督与整改服务合同
- 二零二五年度新加坡留学就业辅导合同4篇
- 2025专业级防雷系统设计与施工监管合同3篇
- 商场自动扶梯安装与维护服务合同(2025年度)
- 二零二五版罗丝与杨洋的离婚协议及财产分割及子女抚养协议4篇
- 2025年度家具退货及维修保养服务协议范本
- 2025版GB∕T30057(环保)固体废物处理与资源化利用合同3篇
- 二零二五年度历史文化遗址草坪保护与旅游合同3篇
- 二零二五年度医疗信息化系统建设与维护合同2篇
- 2025版新型绿色建筑劳务分包合同范本3篇
- 副总经理招聘面试题与参考回答(某大型国企)2024年
- PDCA循环提高护士培训率
- 2024-2030年中国智慧水务行业应用需求分析发展规划研究报告
- 《狮子王》电影赏析
- 河北省保定市定州市2025届高二数学第一学期期末监测试题含解析
- 中医护理人文
- 2024-2030年中国路亚用品市场销售模式与竞争前景分析报告
- 货物运输安全培训课件
- 前端年终述职报告
- 2024小说推文行业白皮书
- 市人民医院关于开展“改善就医感受提升患者体验主题活动”2023-2025年实施方案及资料汇编
评论
0/150
提交评论