02项目二IOLED循环点亮

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

项目二LED循环点亮单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮教学目的掌握P0、P1、P2和P3功能及应用技能;掌握内部数据存储器的地址分配及特殊功能寄存器;掌握C语言数据类型、常量和变量;会利用单片机I/O口实现开关控制LED循环点亮和步进电机控制。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮LED控制电路控制八只发光二极管按一定的规律循环点亮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/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R1330R2330R3330R4330R5330R6330R7330R8330D1D2D3D4D5D6D7D8LED-REDR910kC130pFC230pFC310uFX1CRYSTAL单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮工作过程•P1口接发光二极管(LED)的阴极,P1口的管脚输出低电平时对应的发光二极管点亮。–问题:LED采用的是共阴极接法还是共阳极接法?为什么P1口的管脚输出低电平,对应的发光二极管点亮?•通过程序按一定的规律向P1口的管脚输出低电平和高电平,控制八只发光二极管循环点亮。–问题:程序怎么使P1口的管脚循环输出低电平和高电平?单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮LED循环点亮功能实现分析由于LED循环点亮电路的LED是采用共阳极接法,这样我们就可以通过“0”和“1”来控制LED的亮和灭。例如:在P1口输出十六进制数0xfe(二进制11111110B),D1被点亮。LED循环点亮功能实现过程如下:1.8个LED全灭,控制码为0xff;2.D1点亮,P1口输出0xfe,取反为0x01(二进制00000001B),初始控制码为0x01;3.D2点亮,P1口输出0xfd,取反为0x02(二进制00000010B),控制码为0x02;4.D3点亮,P1口输出0xfb,取反为0x04(二进制00000100B),控制码为0x04;5.……6.D8点亮,P1口输出0x7f,取反为0x80(二进制10000000B),控制码为0x80;7.重复第二步,这样就可以实现LED循环点亮。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮LED控制程序(C语言)Voidmain(){unsignedchari;unsignedchartemp;P1=0xff;//十六进制全1,熄灭所有LEDwhile(1){temp=0x01;//第一位为1for(i=0;i8;i++){P1=~temp;//temp值取反送P1口Delay();temp=temp1;//temp值左移一位}}单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮思考如何改变循环点亮的方向?单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮并行I/O端口电路单片机有4组8位并行I/O端口,称为P0口、P1口、P2口和P3口;每个端口都各有8条I/O口线,每条I/O口线都能独立地用作输入或输出;P0口负载能力为8个TTL门电路,P1口、P2口和P3口负载能力为4个TTL门电路;归入特殊功能寄存器之列,具有字节寻址和位寻址功能。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P0口的结构由1个数据输出锁存器(D触发器)、2个三态数据输入缓冲器、1个输出控制电路和1个输出驱动电路组成。输出控制电路由1个转换开关MUX、1个与门及1个非门组成;输出驱动电路由一对场效应管(V1和V2)组成,其工作状态受输出控制端的控制。P0口有两种功能通用I/O口地址/数据分时复用总线单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P0口作通用I/O口使用作为通用的I/O口使用时,内部的控制信号为低电平,封锁与门,将输出驱动电路的上拉场效应管(V1)截止,同时使多路转接电路MUX接通锁存器Q端的输出通路。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮注意当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使场效应管(V2)截止,以避免锁存器为“0”状态时对引脚读入的干扰,因为如果V2管是导通的,不论P0.X引脚上的状态如何,输入都会是低电平,将导致输入错误。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P0口作地址/数据分时复用总线使用当输出地址或数据时,由内部发出控制信号,打开上面的与门,并使多路转接电路MUX将内部地址/数据线与驱动场效应管(V2)接通。若地址/数据线为1,则V1导通,V2截止,P0口输出为1;反之V1截止,V2导通,P0口输出为0。而当输入数据时,读引脚使三态数据输入缓冲器打开,数据信号则直接从引脚通过数据输入缓冲器进入内部总线。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P1口的结构P1口通常作为通用I/O口使用的,在电路结构上与P0口有一些不同之处:首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P1口工作过程当作为输出口时,1写入锁存器,Q(非)=0,场效应管截止,内部上拉电阻将电位拉至“1”,此时该口输出为1,当0写入锁存器,Q(非)=1,场效应管导通,输出则为0。当作为输入口时,必须先向锁存器写1,Q(非)=0,场效应管截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P2口的结构它由一个数据输出锁存器(D触发器)、两个三态数据输入缓冲器、一个转换开关MUX、一个数据输出驱动电路和控制电路组成。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮P3口当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮【技能训练2-1】P0口外接上拉电阻本电路设计和模块三LED循环点亮电路基本一样,差别是:使用了排阻、P0口接LED的阴极以及在P0口和LED阴极之间外接了上拉电阻R110kC130pFC230pFX1CRYSTALC310uFXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.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/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52RST234567891RP14.7K-8D1234567891RP2220-8D2D3D4D5D6D7D8LED-RED单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮排阻八个电阻的功能是完全一样的,加工到一个器件里面,这个器件通常称之为排阻。为了在电路板上占很小的地方,方便安装和生产,在电路设计时常常选择排阻。PR1和PR2都是排阻,阻值分别为4.7K*8和220Ω*8。PR1排阻是上拉电阻,其功能是在这个引脚没有信号的时候,起到电位上拉的作用。PR2和普通的电阻用途没有任何不同,在这里面起到限流作用,使通过LED的电流被限制在十几个毫安左右。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮AT89C51内存空间•内部程序存储器(FLASH)4K字节•外部程序存储器(ROM)64K字节•内部数据存储器(RAM)256字节•外部数据存储器(RAM)64K字节0000H7FH00H80HFFH0FFFH0FFFH0000H0000HEA0FFFFHSFRRAMEA1ROM4KBFFFFH64KBROMRAM64KB(I/O)RAM片内存储器1000H片外扩展存储器单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮低128个字节•寄存器区(单元地址为00H~1FH)共有4组寄存器,每组8个寄存单元,各组都以R0~R7作寄存单元编号。•位寻址区(单元地址为20H~2FH)既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作。•用户区(单元地址为30H~7FH)供用户使用的一般RAM区,没有任何规定或限制,一般应用中常把堆栈开辟在此区中。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮高128个字节•高128单元是供给专用寄存器使用的,也称为特殊功能寄存器,单元地址为80H~FFH。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮特殊功能寄存器位地址空间单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮复位后内部各寄存器的数据值单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮PSW程序状态字用于存放程序运行中的各种状态信息。CY(PSW.7):高位进位标志位。常用“C”表示。AC(PSW.6):辅助进位标志位。F0(PSW.5):用户标志位。RS1(PSW.4):寄存器组选择位1。RS0(PSW.3):寄存器组选择位0。OV(PSW.2):溢出标志位。-(PSW.1):保留位,无定义。P(PSW.0):奇偶校验位,若累加器(A)中的“1”的位个数是奇数个则P=1,偶数个则P=0。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮寄存器组的选择单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮ACC累加器8位寄存器,是最常用的专用寄存器,功能较多,地位重要。既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮B寄存器B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B存除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。单片机应用技术项目教程(C语言版)计算机科学系项目二LED循环点亮PC程序计数器作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令

1 / 66
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功