ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:138.16KB ,
资源ID:12891598      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12891598.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机学习笔记.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机学习笔记.docx

1、单片机学习笔记C51的机器周期和指令周期 (1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,实验板上一般为11.0592MHZ。(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。I/O口I/O口,可作为输入和输出端口,在

2、写程序时,1为高电平,0为低电平,高位控制大数,低位控制小数。电阻标号认阻值标号103,表示10*103,即10k,150表示15*100,即15。1002表示100*102;标号3R0表示3,4K7表示4.7K,R002表示0.002。LED灯LED灯,即发光二极管,通过5mA左右的电流即可点亮,导通后两端电压为1.7V左右,在电路中,有一个电阻与之串联,二极管具有先分压特性,电阻电压为电源电压减去二极管两端的电压,电路中电流为电阻电压除以电阻大小。在控制中,利用串口的电压高低来使二极管点亮或熄灭。可以利用延时使二极管闪烁。在C语言中,可以使用库实现左移和右移。_crol_(变量,位数),其

3、返回值为一个十六进制的数,将其赋给端口,实现循环左移。_cror_()与_crol_()相同,实现循环右移。两个函数包含在intrins.h这个头文件中。移位(1)左移。C51中操作符为“”,每执行一次左移指令,被操作的数将最低位移入单片机的PSW寄存器的CY为,CY位中原来的数丢弃,最高位补0,其它位依次向右移动一位。数码管 共阴极 共阳极数码管有两种接法,一种是共阴极,一种是共阳极。使用LED显示器时,要注意区分这两种不同的接法。一个数码管有10个引脚,其中有两个引脚是连在一起的(如上图中1脚),这两个引脚即为公共端。对于共阴极的数码管来说,该公共端接低电平;对于共阳极的数码管来说,该公共

4、端接高电平。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。静态显示方式LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。可用74HC573控制位选,74HC573芯片控制段选。动态显示方式动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描

5、显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。可用74HC138控制位选,74HC573芯片控制段选。按键单片机检测按键的原理单片机的I/O口既可作为输入使用,也可作为输出。我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时,每个I/O口为高电平,我们可以通过程序检测该I/O口是否为低电平,当有按键按下时,即I/O口通过按键与地相连,该I/O变成低电平,则利用检测程序来执行相应的代码。但是,在按键按下和松开时都会

6、有抖动现象,因此在程序时应加入去抖。代码如下:if(key1=0)/按键去抖 delay(10); if(key1=0) 程序代码; while(!key1); 4*4矩阵键盘检测时,先将P10置0,其余都为1,然后通过检测P14,P15,P16,P17是否为0来判断第一行中那个I/O口被按下。例如当K0按下,则P14与P10相连,P14也为0。在检测时,先给P1口赋值,赋值时应使P14,P15,P16,P17都为1,P10,P11,P12,P13中有一个为0。赋过值后,再将其与0xf0进行按位与运算,检测P1值是否与0xf0相等来判断有没有按键被按下。当有按键被按下后,在判断P1的值是否等于

7、0xe0,0xd0,0xb0,0x70中的哪一个,来判断哪一列的按键按下。程序代码如下: temp=0xfe; P1=temp; temp=P1&0xf0; while(temp!=0xf0) switch(temp) case 0xe0:num=1;break;/要执行的程序 case 0xd0:num=2;break; /要执行的程序 case 0xb0:num=3;break; /要执行的程序 case 0x70:num=4;break; /要执行的程序 temp=P1&0xf0; if(temp=0xf0) break; temp=0xfd; P1=temp; temp=P1&0xf0

8、; while(temp!=0xf0) switch(temp) case 0xe0:num=5;break; /要执行的程序 case 0xd0:num=6;break; /要执行的程序 case 0xb0:num=7;break; /要执行的程序 case 0x70:num=8;break; /要执行的程序 temp=P1&0xf0; if(temp=0xf0) break; temp=0xfb; P1=temp; temp=P1&0xf0; while(temp!=0xf0) switch(temp) case 0xe0:num=9;break; /要执行的程序 case 0xd0:nu

9、m=10;break; /要执行的程序 case 0xb0:num=11;break; /要执行的程序 case 0x70:num=12;break; /要执行的程序 temp=P1&0xf0; if(temp=0xf0) break; temp=0xf7; P1=temp; temp=P1&0xf0; while(temp!=0xf0) switch(temp) case 0xe0:num=13;break; /要执行的程序 case 0xd0:num=14;break; /要执行的程序 case 0xb0:num=15;break; /要执行的程序 case 0x70:num=16;bre

10、ak; /要执行的程序 temp=P1&0xf0; if(temp=0xf0) break; 中断 定时器 计数器在52单片机中,一共有6个中断源,他们的符号、名称及产生的条件分别解释如下:INT0外部中断0,有P3.2端口线引入,低电平或下降沿引起。INT1外部中断1,有P3.3端口线引入,低电平或下降沿引起。T0定时器/计数器0中断,有T0计数器计满后回零引起。T1定时器/计数器1中断,有T1计数器计满后回零引起。T2定时器/计数器2中断,有T2计数器计满后回零引起。TI/RI串行口中断,串行端口完成一帧字符发送/接收后引起。在51单片机中,没有T2。定时器/计数器控制寄存器TCONTCO

11、N寄存器用来控制定时器中断的启、停,标志定时器溢出和中断情况。单片机复位时TCON全部清零。为位寻址操作。位序号D7D6D5D4D3D2D1D0位符号TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H其中,TF1、TR1、TF0、TR0位用于定时器/计数器;IE1、IT1、IE0、IT0位用于外部中断。TF1定时器1溢出标志位。当定时器1按照单片机的机器周期计满溢出时,有硬件使TF1置1,并申请中断。进入中断服务程序后,有硬件自动清0。需要注意的是,如果使用定时器的中断,那么该位完全不用人为操作,但是如果使用软件查询方式的话,当查询到该位置1

12、后,就需要用软件清0。TR1定时器1运行控制位。由软件清0关闭定时器1。当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。TF0定时器0溢出标志位,其功能及操作方法同TF1。TR1定时器0运行控制位,其功能及操作方法同TR1。IT1外部中断1触发方式选择位。IT1=0,为电平触发方式,引脚INT1(P3.3)上低电平有效。IT1=1,为跳变沿触发方式,引脚INT1(P3.3)上的电平从高到低的负跳变有效。IE1外部中断1请求标志。当IT1=0时,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚(即P3.3脚)为低电平,则

13、置1,向CPU申请中断,否则IE1清0。当IT1=1时,INT1为跳变沿触发方式,当第一个机器周期采样到INT1为低电平时,则IE1置1。IE1=1,表示外部中断1正在向CPU申请中断。当CPU响应中断,转向中断程序时,该位由硬件清0。IT0外部中断0触发方式选择位,其功能及操作方法同IT1。IE1外部中断1请求标志,其功能及操作方法同IE1。中断允许寄存器IE中断允许寄存器用来设定各个中断源的打开和关闭,可进行位寻址操作。位序号D7D6D5D4D3D2D1D0位符号EA-ET2ESET1EX1ET0EX0位地址AFH-ADHACHABHAAHA9HA8HEA全局中断允许位。EA=1,打开全局

14、中断控制,在此条件下,有各个中断控制位确定相应中断的打开或关闭。EA=0,关闭全部中断。-无效位。ET2定时器/计数器2中断允许位。ET2=1,打开T2中断。ET2=0,关闭T2中断。ES串行口中断允许位。ES=1,打开串行口中断。ES=0,关闭串行口中断。ET1定时器/计数器1中断允许位。ET1=1,打开T1中断。ET1=0,关闭T1中断。EX1外部中断1中断允许位。EX1=1,打开外部中断1中断。EX1=0,关闭外部中断0中断。ET0定时器/计数器0中断允许位。ET0=1,打开T0中断。ET0=0,关闭T0中断。EX1外部中断1中断允许位。EX1=1,打开外部中断1中断。EX1=0,关闭外

15、部中断0中断。EX0外部中断0中断允许位。EX0=1,打开外部中断1中断。EX0=0,关闭外部中断0中断。定时器/计数器工作方式寄存器TMODTMOD寄存器用来确定定时器的工作方式及功能选择。单片机复位时全部清0,不可进行位寻址操作,字节地址为89H。位序号D7D6D5D4D3D2D1D0位符号GATEC/TM1M0GATEC/TM1M0 定时器1 定时器0 GATE门控制位GATE=0,定时器/计数器启动与停止仅受TCON寄存器中TR0/TR1控制。GATE=1,定时器/计数器启动与停止由TCON寄存器中TR0/TR1和外部中断引脚(INT0/INT1)上的电平状态来共同控制。C/T定时器模

16、式和计数器模式选择位。C/T=1,为计数器模式;C/T=0,为定时器模式。M1M0工作方式选择位。每个定时器/计数器都有4种工作方式,它们由M1M0设定,对应关系如下:M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位初值自动重装的8位定时器/计数器11方式3,仅适用于T0,分成两个8位计数器,T1停止计数中断优先级寄存器IP中断优先级寄存器IP用来指定中断的优先级别,即确定谁的优先级高,谁的官大。该寄存器也可进行位操作。位序号D7D6D5D4D3D2D1D0位符号-PSPT1PX1PT0PX0位地址-BCHBBHBAHB9HB8H-无效位。P

17、S串行口中断优先级控制位。PS=1,串行口中断定义为高优先级中断。PS=0,串行口中断定义为低优先级中断。PT1定时器/计数器1中断优先级控制位。PT1=1,定时器/计数器1中断定义位高优先级中断。PT1=0,定时器/计数器1中断定义位低优先级中断。PX1外部中断1中断优先级控制位。PX1=1,外部中断1定义为高优先级中断。PX1=0,外部中断1定义为低优先级中断。PT0定时器/计数器0中断优先级控制位。PT0=1,定时器/计数器0中断定义位高优先级中断。PT0=0,定时器/计数器0中断定义位低优先级中断。PX0外部中断0中断优先级控制位。PX0=1,外部中断0定义为高优先级中断。PX0=0,

18、外部中断0定义为低优先级中断。在51单片机系列中,高能打断低,低不能打断高,就像官大的能管住官小的,官小的不能管住官大的。在没有设置中断优先级的情况下,按默认的中断级别进行中断响应。在默认情况下,优先级别如下:中断源默认中断级别序号(C语言用)入口地址(汇编)INT0外部中断0最高00003HT0定时器/计数器0中断第21000BHINT1外部中断1第320013HT1定时器/计数器1中断第43001BHTI/RI串行口中断第540023HT2定时器/计数器2中断最低5002BH中断当P3.2/P3.3为低电平时,由硬件将IE0/IE1置1,向CPU申请中断,由IT0/IT1选择以何种方式中断

19、,然后在由中断允许寄存器IE中的EX0/EX1来决定是否打开外部中断,其中,EA为总开关,决定着全局的中断。当全部允许后,CPU将停止当前工作,去处理中断,在程序中,为停止当前的程序,跳到中断程序中。中断代码:Void main() EA=1;/打开总中断 IT0=1;/选择电平触发方式,则P3.2口为低电平时有效,也即IE0置1,向CPU申请中断 EX0=1;/打开中断的大门,允许中断在控制时,一般用P3.2/P3.3来控制中断。定时器/计数器在用定时器/计数器时,先由寄存器TMOD来确定其工作方式和功能,来选择用何种方式启动,何种模式,何种工作方式;由ET0/ET1来打开定时器/计数器的大

20、门,再由TR0/TR1决定是否开始定时/计数,然后向计数器中装初值,来决定定时或计数的时间,多少。当计数器溢出时,由硬件将TF0/TF1置1,向CPU申请中断,进入中断程序。其中由EA打开总中断。定时/计数代码:Void main() EA=1;/打开总中断 TMOD=0x11;/选择仅有TR0/TR1来启动定时器/计数器,定时模式,16位定时器的工作方式 TH0=0xdc; TL0=0x00;/装初值,定时时间为10ms ET0=1;/打开定时器0的大门 TR0=1;/打开定时器,开始定时计算定时器的初值12个时钟周期为一个机器周期,计数器的脉冲周期为机器周期,即一个机器周期定时/计数器计一

21、个数。对于16位计数器,当计满216个数时,申请中断。TH0/TH1=;TL0/TL1=其中,16为计数器的位数,t为定时的时间,单位为ms,f为时钟频率,单位为MHz。1MHz=106Hz,1s=103ms,在秒表中,最后一位为走1为10ms。中断函数格式Void 函数名() interrupt 中断号 using 工作组 中断服务程序内容在定时和计数时,中断函数中应先装初值,如下Void T0_time interrupt 1 TH0=0xdc; TL0=0x00; 中断服务程序内容注意:一般我们在中断服务程序中不要写过的的处理语句,因为如果语句过多,中断服务程序中代码还未执行完毕,而下一

22、次中断又来临,这样我们就会丢失这次中断,又开始下一次中断,从而使程序运行乱套。串口电平转换电路8051单片机通过引脚串行数据接收端RXD(P3.0)和引脚TXD串行数据发送端(P3.1)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接受寄存器。它们有相同的名字和地址空间,但不会出现冲突,因为它们两个有一个只能被CPU读出数据,另一个只能被CPU写入数据。单片机的串口是通过对串行口的控制与状态寄存器的操作完成串行通信的设置的。串行口控制寄存器SCONSCON.7SCON.6SCON.5SCON.4SCON.3SCON.2SCON.1SCON.0SM0SM1SM2RENTB8RB8TIR

23、ISM0、SM1:串行口工作方式选择位,其定义如下:SM0/SM1工作方式功能波特率00方式08位移位寄存器Fosc/1201方式110位UART可选10方式211位UARTFosc/64或Fosc/3211方式311位UART可选SM2:多通信控制位。不同方式下,SM2有不同的选择限制。在方式0时,必须是SM2=0。在方式1中,当SM1=1时,只有接受到有效停止位时,RI才置1。在方式2或方式3中,当SM2=1且接受到的第九位数据RB8=0时,RI才置1。REN:接收允许控制位。由软件置位以允许接收,软件清零。REN=1:允许串行口接受数据;REN=0:禁止串行口接收数据。TB8:方式2,3

24、中发收数据的第9位。在方式2或方式3中,要发送的第9位数据,可约定作为奇偶校验位;或在多机通信中,作为地址帧/数据帧的标志位。在方式0和方式1中,该位未用。RB8:接收数据的第9位。在方式0中不适用RB8。在方式2或方式3中,RB8为接收到的第9位数据,可作为奇偶校验位或作为地址帧/数据帧的标志位。在方式1中,若SM2=0,则RB8是接收到的停止位。TI:发送中断标志。在方式0时,当串行发送第8位数据结束时,或在其他方式,串行发送停止位的开始时,有硬件使TI置1,向CPU发出中断申请。在中断服务程序中,必须用软件将其清0,取消此次中断。在发送停止位前,由硬件置位。TI置位表示申请中断,可根据需

25、要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清零。RI:接收中断标志位。在方式0时,当串行发送第8位数据结束时,或在其他方式,串行接收停止位的中间时,有硬件使RI置1,向CPU发出中断申请。在中断服务程序中,必须用软件将其清0,取消此次中断。在接收到停止位的中间时刻由硬件置位。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0.单片机的串口工作还要受到特殊功能寄存器PCON设置的限制。PCON是8位特殊功能寄存器,地址为87H,其低7位是为了在CHMOS的80C51单片机上实现电源控制附加的。其中最高位时SMOD,用于51单片机系列的串口设置。该是单片机串口的波特率系数的控制位,当SMOD=1时,波特率加倍,否则不加倍。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1