ImageVerifierCode 换一换
格式:PPT , 页数:30 ,大小:218.84KB ,
文档编号:4145730      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4145730.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(单片机原理及应用9-项目三-IO口应用设计与调试课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

单片机原理及应用9-项目三-IO口应用设计与调试课件.ppt

1、项目三项目三 I/O口应用设计与调试口应用设计与调试项目背景项目背景单片机的单片机的I/O口主要承担了单片机系统与和外部口主要承担了单片机系统与和外部电路及设备打交道的任务。单片机之所以能够电路及设备打交道的任务。单片机之所以能够完成各种测量与控制功能,主要是由于完成各种测量与控制功能,主要是由于I/O口能口能按照要求做出输入和输出。换言之,对单片机按照要求做出输入和输出。换言之,对单片机的应用开发,很大程度上是对于的应用开发,很大程度上是对于I/O口的操作。口的操作。也就是说,不管单片机系统多么庞大、运算操也就是说,不管单片机系统多么庞大、运算操作多么复杂,其目的都是对其作多么复杂,其目的都

2、是对其I/O口的操作。要口的操作。要使用单片机就必须对单片机的使用单片机就必须对单片机的I/O口的内部结构、口的内部结构、接口电路、工作方式有明确的认识。接口电路、工作方式有明确的认识。项目三项目三 I/O口应用设计与调试口应用设计与调试 项目目标项目目标 掌握51单片机并行I/O端口结构与应用特点 掌握点阵LED显示器结构和工作原理 掌握LED数码管显示器结构和工作原理 掌握中断系统应用知识和应用编程方法 项目任务项目任务 并行I/O端口应用:发光二极管跑灯控制电路设计与调试 单片机LED点阵显示器设计、编程调试 单片机LED数码管显示器设计、编程调试 中断系统应用设计、编程调试项目三项目三

3、 I/O口应用设计与调试口应用设计与调试学习任务学习任务1 认知并行认知并行I/O端口结构与特点端口结构与特点 学习内容学习内容 并行并行I/O口口P0P3的结构、功能与应用特点的结构、功能与应用特点 学习目标学习目标 了解了解51单片机并行单片机并行I/O口口P0P3的结构、功能的结构、功能 掌握掌握I/O口有应用特点口有应用特点51单片机设有四个单片机设有四个8位双向位双向I/O端口(端口(P0、P1、P2、P3),),各端口均由端口锁存器、输出驱动器和输入缓冲器组成,除各端口均由端口锁存器、输出驱动器和输入缓冲器组成,除了可以用作字节输入了可以用作字节输入/输出外,它们的每一位口也可以单

4、独输出外,它们的每一位口也可以单独用作输入输出口线。各端口的地址映像均在特殊功能寄存器用作输入输出口线。各端口的地址映像均在特殊功能寄存器中,既有字节地址,又有位地址。对端口锁存器的读写,就中,既有字节地址,又有位地址。对端口锁存器的读写,就可以实现端口的输入输出操作。每一个可以实现端口的输入输出操作。每一个I/O口的结构和使用口的结构和使用方法均有所不同。方法均有所不同。一、一、P0口(口(P0.0P0.7、3239脚)脚)1结构结构 P0口的结构如图口的结构如图3-1所示,包括所示,包括1个输出锁存器,个输出锁存器,2个三态缓冲器,个三态缓冲器,1个输出驱动电路和个输出驱动电路和1个输出控

5、个输出控制端。输出驱动电路由一对场效应管组成,其工制端。输出驱动电路由一对场效应管组成,其工作状态受输出端的控制,输出控制端由作状态受输出端的控制,输出控制端由1个与门、个与门、1个反相器和个反相器和1个转换开关个转换开关MUX组成。组成。P0口既可作口既可作为输入输出口,又可作为地址(低为输入输出口,又可作为地址(低8位)位)/数据总数据总线使用。线使用。1结构结构VCC地址/数据控制锁存器P0.XDCPQQMUXV1V2P0.X引脚读锁存器写锁存器内部总线读引脚&12端口功能端口功能 1)P0口作通用口作通用I/O端口使用端口使用 P0口可以作通用口可以作通用I/O,此时控制端为低电平,转

6、换,此时控制端为低电平,转换开关把输出级与锁存器的开关把输出级与锁存器的Q端接通,同时因与门端接通,同时因与门输出为低电平,输出级输出为低电平,输出级V1管处于截止状态,输出管处于截止状态,输出级为漏极开路电路,作为输出口驱动级为漏极开路电路,作为输出口驱动NMOS电路电路时应外接上拉电阻;作为输入口使用时,应先将时应外接上拉电阻;作为输入口使用时,应先将锁存器写锁存器写“1”,这时输出级两个场效应管均截,这时输出级两个场效应管均截止,可作高阻抗输入,通过三态输入缓冲器读取止,可作高阻抗输入,通过三态输入缓冲器读取引脚信号,从而完成输入操作。引脚信号,从而完成输入操作。2端口功能端口功能 2)

7、P0口作地址口作地址/数据复用总线使用数据复用总线使用 若从若从P0口输出地址或数据信息,此时控制端应为口输出地址或数据信息,此时控制端应为高电平,转换开关高电平,转换开关MUX将反相器输出端与输出级将反相器输出端与输出级场效应管场效应管V2接通,同时与门开锁,内部总线上的接通,同时与门开锁,内部总线上的地址或数据信号通过与门去驱动地址或数据信号通过与门去驱动V1管,又通过反管,又通过反相器去驱动相器去驱动V2管,这时内部总线上的地址或数据管,这时内部总线上的地址或数据信号就传送到信号就传送到P0口的引脚上。工作时低口的引脚上。工作时低8位地址位地址与数据线分时使用与数据线分时使用P0口。低口

8、。低8位地址由位地址由ALE信号信号的负跳变使它锁存到外部地址锁存器中,而高的负跳变使它锁存到外部地址锁存器中,而高8位地址由位地址由P2口输出(口输出(P0口和口和P2口的地址口的地址/数据总数据总线功能,请参阅其他书籍)。线功能,请参阅其他书籍)。P0口作为地址口作为地址/数据总线口时,地址信号是没有锁存的,数据总线口时,地址信号是没有锁存的,需外加锁存器将地址加以锁存,常用芯片需外加锁存器将地址加以锁存,常用芯片74LS373来完成来完成这一功能。这一功能。锁存器锁存器74LS373的引脚和真值表见图的引脚和真值表见图3-2。作为输出口时,需接上拉电阻,电阻典型值为作为输出口时,需接上拉

9、电阻,电阻典型值为4.7K。P0口的驱动能力为可带口的驱动能力为可带8个个LSTTL电路输入。电路输入。2端口功能端口功能3.P0口的应用特点口的应用特点 P0口可作通用口可作通用I/O口使用,又可作地址口使用,又可作地址/数据总数据总线口;线口;P0既可按字节寻址,又可按位寻址;既可按字节寻址,又可按位寻址;P0作为输入口使用时:是准双向口,先写作为输入口使用时:是准双向口,先写“1”,再使用读入指令读入数据;,再使用读入指令读入数据;作为通用作为通用I/O 口输出时:是漏极开路输出,需口输出时:是漏极开路输出,需接上拉电阻;接上拉电阻;作为地址作为地址/数据总线口时,数据总线口时,P0是一

10、真正双向口,是一真正双向口,而作通用而作通用I/O口时,只是一个准双向口。口时,只是一个准双向口。二、二、P1口(口(P1.0P1.7、18脚脚)1结构结构 P1端口(端口(P1.0-P1.7,1-8脚)是一个内部脚)是一个内部带上拉电阻的带上拉电阻的8位位I/O端口,端口,P1端口的每一端口的每一位可以驱动位可以驱动4个个LS型型TTL负载,内部电路如负载,内部电路如图图3-3所示。所示。P1端口只能作端口只能作I/O口用,且是一个准双向口用,且是一个准双向口。内部已有上拉电阻,不是漏极开路输口。内部已有上拉电阻,不是漏极开路输出口。出口。1结构结构VCC锁存器P1.XDCPQQP1.X引脚

11、读锁存器写锁存器内部总线读引脚内部上拉电阻2功能功能 单一功能的准双向口。单一功能的准双向口。P1口为口为8位准双向口,每一位均可位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,单独定义为输入或输出口,当作为输入口时,1写入锁存写入锁存器,器,Q(非非)=0,T2截止,内上拉电阻将电位拉至截止,内上拉电阻将电位拉至1,此,此时该口输出为时该口输出为1,当,当0写入锁存器,写入锁存器,Q(非非)=1,T2导通,输出导通,输出则为则为0。作为输入口时,锁存器置。作为输入口时,锁存器置1,Q(非非)=0,T2截止,截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉此时该位既可以把

12、外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以电阻拉成高电平,正因为这个原因,所以P1口常称为准口常称为准双向口。双向口。P1口应用注意事项:在口应用注意事项:在51单片机的单片机的4 个并行个并行8位位I/O口中,口中,只有只有P1口是单一功能的准双向口。口是单一功能的准双向口。P1口作为输出口,执行指令:口作为输出口,执行指令:MOV P1,A 功能是将累功能是将累加器加器A中的数送至中的数送至P1口。口。2功能功能 例例3-1:如图:如图3-4,1 位位LED由由1位位I/O口口驱动,实现驱动,实现1位位LED的闪光控制。(图的闪光控制。(图中振荡器连接和复中振荡

13、器连接和复位电路省略,以下位电路省略,以下同)同)XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A

14、1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=1LED.HEXD1LED-GREENR12002功能功能1)汇编语言程序如下:)汇编语言程序如下:ORG 0100H ;程序起始地址是;程序起始地址是0100HLED1:MOV A,#0FEH ;将要输出的十六进制数据;将要输出的十六进制数据FEH送到送到A寄存寄存器器LD:MOV P1,A ;数据由;数据由P1口送出,口送出,1位低电平点亮位低电平点亮LED LCALL YS ;调用一段延时子程序,保持点亮(灭)状态;调用一段延时子程序,保持点亮(灭)状态 CPL A ;A内数据按位取反,

15、灯灭(亮)内数据按位取反,灯灭(亮)LJMP LD ;转到;转到LD,实现程序连续运行,实现程序连续运行YS:MOV R7,#0FFH ;延时子程序,寄存器装入数据;延时子程序,寄存器装入数据0FFHYS1:MOV R6,#0FFH ;先装数据再用指令使其减到;先装数据再用指令使其减到0,达到延时,达到延时目的目的 DJNZ R6,$;$代表本条指令的地址代表本条指令的地址 DJNZ R7,YS1 ;寄存器内数据减;寄存器内数据减1不为不为0转移到标号指向的地转移到标号指向的地址址 RET ;子程序返回指令,转回调用指令的下一个地址;子程序返回指令,转回调用指令的下一个地址 END ;调试中用

16、到的结束伪指令;调试中用到的结束伪指令2功能功能2)C语言程序:语言程序:/*声明区声明区*/#include /包含包含8051寄存器的头文件寄存器的头文件sbit LED=P10;/定义定义LED连接到连接到P0unsigned int a;/声明无符号变量声明无符号变量a/*主程序主程序*/void main()while(1)/无限循环无限循环a=50000;/变量变量a赋初值,给延时程序做准备赋初值,给延时程序做准备LED=0;/LED赋初值,灯亮赋初值,灯亮while(a-);/a减减1直到直到0,延时,一种简单的延时,延时,一种简单的延时方法方法a=50000;/变量变量a赋初值

17、赋初值LED=1;/灯灭灯灭while(a-);/a减到减到0,延时,延时3应用特点应用特点 P1口是一个有内部上拉电阻的准双向口,口是一个有内部上拉电阻的准双向口,P1口的口的每一位口线能独立用作输入线或输出线。作输出每一位口线能独立用作输入线或输出线。作输出时,如将时,如将“0”写入锁存器,场效应管导通,输写入锁存器,场效应管导通,输出线为低电平,即输出为出线为低电平,即输出为“0”。因此在作输入。因此在作输入时,必须先将时,必须先将“1”写入口锁存器,使场效应管写入口锁存器,使场效应管截止。该口线由内部上拉电阻提拉成高电平,同截止。该口线由内部上拉电阻提拉成高电平,同时也能被外部输入源拉

18、成低电平,即当外部输入时也能被外部输入源拉成低电平,即当外部输入“1”时该口线为高电平,而输入时该口线为高电平,而输入“0”时,该口时,该口线为低电平。线为低电平。P1口作输入时,可被任何口作输入时,可被任何TTL电路电路和和MOS电路驱动,由于具有内部上拉电阻,也可电路驱动,由于具有内部上拉电阻,也可以直接被集电极度开路和漏极开路电路驱动,不以直接被集电极度开路和漏极开路电路驱动,不必外加上拉电阻。必外加上拉电阻。三、三、P2口口(P2.0P2.7,2128脚)1P2口位结构口位结构 P2端口位逻辑端口位逻辑电路如图电路如图3-5所所示。示。引脚上拉电阻引脚上拉电阻同同P1口。在结口。在结构

19、上,构上,P2口比口比P1口多一个输口多一个输出控制部分。出控制部分。P2端口内部也端口内部也有上拉电阻,有上拉电阻,每一位可以驱每一位可以驱动动4个个LS型型TTL负载。负载。锁存器P2.XDCPQQ读锁存器写锁存器内部总线读引脚VCCP2.X引脚内部上拉电阻1地址 控制MUX2功能功能 1)P2口作为通用口作为通用I/O端口使用时,是一个准双向口,此端口使用时,是一个准双向口,此时转换开关时转换开关MUX倒向左边,输出级与锁存器接通,引脚倒向左边,输出级与锁存器接通,引脚可接可接I/O设备,其输入输出操作与设备,其输入输出操作与P1口完全相同。口完全相同。2)P2口作为地址总线口使用口作为

20、地址总线口使用 当系统中接有外部存储器时,当系统中接有外部存储器时,P2口用于输出高口用于输出高8位地址位地址A15A8。这时在。这时在CPU的控制下,转换开关的控制下,转换开关MUX倒向右倒向右边,接通内部地址总线。边,接通内部地址总线。P2口的口线状态取决于片内输口的口线状态取决于片内输出的地址信息,这些地址信息来源于出的地址信息,这些地址信息来源于PCH、DPH等。在等。在外接程序存储器的系统中,由于访问外部存储器的操作连外接程序存储器的系统中,由于访问外部存储器的操作连续不断续不断,P2口不断送出地址高口不断送出地址高8位。位。3)P2口应用注意事项:在最小应用系统中,口应用注意事项:

21、在最小应用系统中,P2口工作口工作于准双向口功能,内部已有上拉电阻,用于输出不需外接。于准双向口功能,内部已有上拉电阻,用于输出不需外接。在有扩展的应用系统中,在有扩展的应用系统中,P2口被用于地址(高口被用于地址(高8位)总线。位)总线。P2提供的地址信号是经过锁存的,不需外加锁存器。但提供的地址信号是经过锁存的,不需外加锁存器。但要注意,要注意,P2口的一位或几位被用于地址线时,其余的位口的一位或几位被用于地址线时,其余的位一般不再被用作一般不再被用作I/O口使用。口使用。3应用特点应用特点 当当P2口作为通用口作为通用I/O接口时,是一个接口时,是一个8位准双向口。位准双向口。从从P2口

22、输入数据时,先向锁存器写口输入数据时,先向锁存器写“1”。可位寻址,也可按字节寻址可位寻址,也可按字节寻址 可输出地址高可输出地址高8位。位。P0、P2口口 当无扩展时,当无扩展时,P0、P2口可作通用的输入、输出口;口可作通用的输入、输出口;当有程序寄存器、数据寄存器、当有程序寄存器、数据寄存器、I/O口扩展时,口扩展时,P0口作为口作为地址地址/数据分时复用总线,数据分时复用总线,P2口作为高口作为高8位地址总线。位地址总线。四、四、P3口(口(P3.0P3.7,1017脚)脚)1结构结构 P3端口的位逻辑电路如图端口的位逻辑电路如图3-6所示,内部带上拉电阻。每所示,内部带上拉电阻。每一

23、位的驱动能力是一位的驱动能力是4个个LS型型TTL负载。负载。锁存器P3.XDCPQQ读锁存器写锁存器内部总线读引脚VCCP3.X引脚内部上拉电阻&第二输出功能第二输入功能2功能功能 P3口是一个多用途的端口,也是一个准双向口。口是一个多用途的端口,也是一个准双向口。P3口除了有口除了有I/O口功能外,还具有第二功能,见表口功能外,还具有第二功能,见表3.1。2功能功能 作为第一功能使用时,其功能同作为第一功能使用时,其功能同P1口;当作第二口;当作第二功能使用时,每一位功能定义如表所示。功能使用时,每一位功能定义如表所示。P3口的口的第二功能实际上就是系统具有控制功能的外部控第二功能实际上就

24、是系统具有控制功能的外部控制总线。制总线。P3口应用注意事项:口应用注意事项:P3口用于准双向口功能时,口用于准双向口功能时,内部已有上拉电阻,用于输出不需外接;当内部已有上拉电阻,用于输出不需外接;当P3端端口作为输入口使用时,要求同口作为输入口使用时,要求同P2端口,先使其输端口,先使其输出高电平再读入。出高电平再读入。P3口可由用户定义为准双向口或是第二功能口。口可由用户定义为准双向口或是第二功能口。在有扩展的系统中在有扩展的系统中P3.6、P3.7只能是写、读功能。只能是写、读功能。五、五、I/O口应用口应用 例例3-2:应用:应用Proteus软件设计画出在单片机最小系统的基软件设计

25、画出在单片机最小系统的基础上用础上用P1作为输出口接八只发光二极管的电路原理图,作为输出口接八只发光二极管的电路原理图,编程完成灯光移位控制和调试。编程完成灯光移位控制和调试。参考电路:参考电路:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.0/T21P1.

26、1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C58D1LED-REDD2LED-REDD3LED-REDD4LED-REDD5LED-REDD6LED-REDD7LED-REDD8LED-REDR120OhmR220OhmR320OhmR420OhmR520OhmR620OhmR720OhmR820Ohm1)汇编语言参考程序)汇编语言参考程序8个灯左移循环点亮,程序由个灯左移循环点亮,程序由P1口的各位

27、逐一输出低电平驱动口的各位逐一输出低电平驱动LED点亮加延时子程序构成。点亮加延时子程序构成。ORG 0000HLJMP 0030HORG 0030HDG:MOV P1,#0FEH ;P1口上输出口上输出7位高电平位高电平,1位低电平位低电平,点亮一个灯点亮一个灯 LCALL YS ;延时延时 MOV P1,#0FDH ;灯左移一位,下同灯左移一位,下同 LCALL YSMOV P1,#0FBH LCALL YSMOV P1,#0F7H LCALL YSMOV P1,#0EFH LCALL YSMOV P1,#0DFH LCALL YSMOV P1,#0BFHLCALL YSMOV P1,#0

28、7FH LCALL YSLJMP DG ;程序转至程序转至DG,实现循环控制,实现循环控制YS:MOV R7,#0FFH ;延时子程序延时子程序YS2:MOV R6,#0FFH ;寄存器先赋值,延时时间长短由数值大小决定寄存器先赋值,延时时间长短由数值大小决定YS1:DJNZ R6,YS1 ;寄存器内数减寄存器内数减1不为不为0转移,构成循环转移,构成循环DJNZ R7,YS2 ;延时由两个寄存器减延时由两个寄存器减1不为不为0循环构成循环构成RET 上述控制还可改为一段循环程序,效果相同:上述控制还可改为一段循环程序,效果相同:ORG 0000H LJMP 0030H ORG 0030H M

29、OV A,#0FEH ;将初始状态;将初始状态0FEH由由A寄存器送到寄存器送到P1口口输出输出 DG:MOV P1,A LCALL YS RL A ;A寄存器中的数按位左移一位寄存器中的数按位左移一位 LJMP DG YS:MOV R7,#0FFH ;延时子程序,由两个寄存器;延时子程序,由两个寄存器中的数减中的数减1实现实现 YS2:MOV R6,#0FFH YS1:DJNZ R6,YS1 DJNZ R7,YS2 RET五、五、I/O口应用口应用2)C语言编程语言编程/*声明区声明区*/#include /包含包含8051寄存器的头文件寄存器的头文件#define LED P1/定义定义L

30、ED连接到连接到P1void delay(int x);/声明延时函数声明延时函数/*主程序主程序*/main()unsigned char i;/声明无符号数字变量声明无符号数字变量iwhile(1)/无限循环无限循环LED=0 xfe;/LED赋初值,即最右边灯亮赋初值,即最右边灯亮for(i=0;i8;i+)/for循环,左移循环,左移7次次delay(100);/延时延时1005ms=0.5sLED=(LED1)|0 x01;/左移一位,并在最低位补左移一位,并在最低位补1/*延时函数延时函数*/void delay(int x)/5ms的延时函数的延时函数int i,j;/定义变量定

31、义变量i,jfor(i=0;ix;i+)/for循环循环x次,延时约次,延时约x5ms for(j=0;j600;j+);/循环循环600次,延时约次,延时约5ms注:本例中注:本例中LED=(LED1)|0 x01语句的功能是语句的功能是P1口的状态左移口的状态左移1位后再按位与位后再按位与01H做或运算,使做或运算,使P1口最低位补口最低位补1,灯是左移点亮的;如去掉,灯是左移点亮的;如去掉|0 x01部分,就变为了逐个点亮,直至全亮。部分,就变为了逐个点亮,直至全亮。使用数组的概念编程:使用数组的概念编程:/*声明区声明区*/#include /包含包含8051寄存器的头文件寄存器的头文

32、件#define LED P1/定义定义LED连接到连接到P1void delay(int x);/声明延时函数声明延时函数/*主程序主程序*/main()unsigned char i;/声明无符号数字变量声明无符号数字变量i unsigned chardis=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;while(1)/无限循环无限循环for(i=0;i8;i+)/for循环,左移循环,左移7次次LED=disi;delay(100);/延时延时1005ms=0.5s/*延时函数延时函数*/void delay(int x)int i,j

33、;for(i=0;ix;i+)for(j=0;j600;j+);例例3-2 按上例电路原理图,编程使八只发光二极管的完成灯光向左移位点亮按上例电路原理图,编程使八只发光二极管的完成灯光向左移位点亮5次后再向右点亮。次后再向右点亮。汇编语言程序汇编语言程序ORG 0000HLJMP 0030HORG 0030HDD:MOV R4,#05H ;左移循环次数由左移循环次数由R4寄存器计寄存器计DG:MOV A,#0FEH ;将初始状态将初始状态0FEH由由A寄存器送到寄存器送到P1口输出口输出 MOV R5,#08H ;每个口移位次数每个口移位次数DG1:MOV P1,A LCALL YS RL A

34、 ;A寄存器中的数按位左移一位寄存器中的数按位左移一位 DJNZ R5,DG1 ;先看先看8位移够了没有位移够了没有 DJNZ R4,DG ;再看再看5次循环完了否次循环完了否 MOV R4,#05H ;右移循环次数右移循环次数,以下与左移过程一样以下与左移过程一样 DG2:MOV A,#07FH MOV R5,#08HDG3:MOV P1,A LCALL YS RR A ;A寄存器中的数按位右移一位寄存器中的数按位右移一位 DJNZ R5,DG3 DJNZ R4,DG2 LJMP DDYS:MOV R7,#0FFH ;延时子程序,由两个寄存器中的数减延时子程序,由两个寄存器中的数减1实现实现

35、 YS2:MOV R6,#0FFH YS1:DJNZ R6,YS1 DJNZ R7,YS2 RETENDC语言程序语言程序#include#define LED P1void delayms(int);main()int i,j;while(1)for(j=0;j5;j+)/5次循环次循环LED=0 x7f;/左移点亮左移点亮for(i=0;i1);for(j=0;j5;j+)/5次循环次循环LED=0 xfe;/右移点亮右移点亮for(i=0;i8;i+)delayms(500);LED=(LED1);void delayms(int x)int i,j;for(i=0;ix;i+)for(j=1;j=120;j+);

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|