如何用51单片机的输入输出PPT课件_第1页
如何用51单片机的输入输出PPT课件_第2页
如何用51单片机的输入输出PPT课件_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何用51单片机的输入输出实现功能2021/6/7根本条件:为要实现的功呢功能搭建辅助电路2021/6/75uxIO2 *4“11111111DPPPPPPP373C乂33*3工3 口232d2776252423淤213?r*3.DZR3CE P3.X/TXDP3.4/TO ys.szri P3.c/inRP3.7/KD8 R VQ.O/A1ZO FO.l/AOl PC.2/AO2 PC 3/A3= TQ.4/AZ4 FD.5/AJZ-5 P 口.6 从 O FO/7ZA17 AJE PKW P2.7/A15 P2.6/A14L r.sas PNH 2 P.3/AJ 1 g 2/A1Q P2.

2、1/A.9 JP3.O/ABA-res?sii2 Y1主口卜C2 2MW-:3OpF J要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出低电平。如果要实现二极管的闪速,我们调整P1.0的 低电平输出和延时间隔延时的根本原理:累加周期指令 51单片机的一个机器周期包括12个时钟振荡周期, 也就是说如果51单片机米用12MHz晶振,另B么执 行一个机器周期就只需要gs;如果采用的是6MHz 的晶振,那么执行一个机器周期就需要2 |JSo:.在51单片机里有单周期指令执行这条指令只需一 个机器周期,双周期指令执行这条指令只需要 两个机器周期,四周期

3、指令执行这条指令需要 四个机器周期。除了乘、除两条指令是四周期指 令,其余均为单周期或双周期指令。常用指令的时钟周期数据传送指令MOV数据传送指令功能是将数据从一个地方复制、拷贝 到另一个地方。女口: MOVR乙#80H :将数据80H送到存放器R7,这 时存放器R7里面存放着80H,执行该指令那么需要一个机器周期。空操作指令NOP:空操作指令功能只是让单片机执行没有意义的操作, 消耗一个机器周期:循环转移指令DJNZ:循环转移指令功能是将第一个数进行减1并判断是 否为0,不为0那么转移到指定地点;为0那么往下执行。如:DJNZ R7, KK :将存放器R7的内容减1并判断存放器R7里的内容减

4、完1后是否为 0,如果不为0那么转移到地址标号为KK的地方;如果为0那么执行下一条 指令。这条指令需要二个机器周期。利用以上三条指令的组合就可以比拟精确地编写出所需要的延时程序。延时程序例如解读 50ms延时子程序:DEL: MOV R7, #200 ;D 第一句:MOV R7, #200在整个子程序中只被执行一次,且为单周期指令,所以耗时1psDEL1: MOV R6, # 125 ; 2 MOV R6, #125从看到只要R71不为0,就会返回到DEL2: DJNZ R6,这句,共执行了R7次,共耗时200psDEL2;只要R61不为0,就反复执行此句内循环R6次,又 受外循环R7控制,所

5、以共执行R6*R7次, 因是双周期指令,所以耗时2*R6*R7ps DJNZ R7, DEL1RET;:精确延时时间为:1+ (1*200) + (2*125*200) + (2*200) +2 = (2*125+3) *200+3 : =50603ps =50ms长延时常用策略:注意,要实现较长时间的延时,一般采用多重循环,有时会在程式序里 参加NOP指令,以1秒延时为例DEL: MOV R7,#10 1 指令周期4DEL1: MOV R6, #0FFH 1 指令周期 10DEL2: MOV R5, #80H 1 指令周期255*10=2550KONG: NOP 1 指令周期 128*255

6、*10=326400DJNZ R5, $ 2指令周期2*128*255*10=652800DJNZ R6, DEL2 2指令周期2*255*10=5110DJNZ R7, DEL1 2指令周期2*10=20RET 2延时时间=1+10+2550+326400+652800+5110+20+2 二986893|JS约为 1s 整理得:延时时间=3第一层循环+3 第二层循环+3第三层循环+3延时200ms闪烁灯程序ORGOSTART: CLRP1.0 LCALL DELAY SETB P1.0 LCALLDELAY LJMP STARTDELAY: MOV R5,#20 延时子程 序,延时0.2秒

7、D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETENDC语言源程序include sbit L1= P1A0;void delay02s(void) /延时0.2秒子程序 unsigned char i,j,k;for(i=20;i0;i-)forO=20;j0;j-) for(k=248;k0;k-);void main(void)while(1)L1=0;delay02s();L1=1;delay02s();2021/6/7i用单片和粹制的I FD流水灯设计于3In D1001VPK x.Pll匹-.HL-.Fl ;

8、FirXgxzhH19PIOPllP12P13Pl*PI5PUPLBTHhtwXI10XIX:K.ESXPO) POL PO?PO; POF PO POi PO?p?)KXJX:O XEP P:ET272S】o11;0、1*11 nLID? -JUPUULU;5 nUPIOLID+ Pl PizLID*LID.w-MLID7% %-MLIDCW从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口 的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把 P1.0口的电平变为高电平;同理,接在P1.1-P1.7口的其他7个LED的点亮和熄 灭的方法同

9、LED1O因此,要实现流水灯功能,我们只要将发光二极管LED1 LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注2隱点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在8控制二极管亮灭的时候应该延时一段时间软件编程:位控法ORG ;0000HAJMPSTARTORG0030HSTART:MOVCLRP1.0ACALLDELAYSETBP1.0CLRP1.1ACALLDELAYSETBP1.1CLRP1.2ACALLDELAYSETBP1.2CLRP1.3ACALLDELAYSETBP1.3CLRP1.4ACALLDELAY;单片机上电后从0000H地址

10、执行;跳转到主程序存放地址处;设置主程序开始地址SP, #60H;设置堆栈起始地址为60H;P1.0输岀低电平,使LED1点亮;调用延时子程序;P1.0输出高电平,使LED1熄灭;P1.1输出低电平,使LED2点亮;调用延时子程序;P1.1输出高电平,使LED2熄灭;P1.2输出低电平,使LED3点亮;调用延时子程序  ; P1.2输岀高电平,使LED3熄灭;P1.3输出低电平,使LED4点亮;调用延时子程序;P1.3输出高电平,使LED4熄灭;P1.4输出低电平,使LED5点亮;调用延时子程序2021/6/711SETB CLR ACALL SETB CLR ACALL SETB

11、CLR ACALL SETB ACALL AJMP DELAY: MOV D1: DJNZ DJNZ RET 2021P1.4;P1.4输岀高电平,使LED5熄灭P1.5;P1.5输出低电平,使LED6点亮DELAY;调用延时子程序P1.5;P1.5输出高电平,使LED6熄灭P1.6;P1.6输出低电平,使LED7点亮DELAY;调用延时子程序P1.6;P1.6输出高电平,使LED7熄灭P1.7;P4.7输出低电平,使LED8点亮DELAY;调用延时子程序P1.7;P1.7输出高电平,使LED8熄灭DELAY;调用延时子程序START;8个LED流了一遍后返回到标号START处再循环 ;延时子程序RO, #255;延时一段时间MOV R1,R1, $RO, D1#255;子程序返回;程序结束10查表法ORG0000H;单片机上电后从0000H地址执行AJMPSTART;跳转到主程序存放地址处ORG0030H;设置主程序开始地址START:MOVSP,#60H;设置堆栈起始地址为60HMOVDPTR,#TAE;;流水把戏表首地址送DPTRLOOP:CLRA;累加器清零MOVCA, A+DPTR ;取数据表中的值CJNEA, #OFFH, SHOW;检查流水结束标志AJMPST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论