




已阅读5页,还剩92页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5数码显示电路,学习目标,通过本项目的学习,能够熟练MC908GB60型单片机的通用I/O引脚及功能;能够阐述端口A、B、C、D、E、F、G的功能及寄存器的作用,并能理解寄存器各个控制位的作用。,学习要求,能够熟练MC908GB60型单片机的通用I/O引脚及功能能够阐述端口A、B、C、D、E、F、G、的功能及寄存器的作用,并能理解寄存器各个控制位的作用,项目导入,由飞思卡尔MC9S08GB60型单片机组成最小应用系统,用以作99s计时显示控制电路。该电路利用定时器实现计时,将秒计时值用LED数码管进行显示。如图5-1所示。,项目分析,1用最少的元器件构成一个单片机的最小应用系统。2应用定时器计时,实现秒计数。此处应用单片机的端口B作为LED数码管的段输入,端口A的PTA0、PTA1作为LED数码管的位输入。数码管采用共阳极的数码管。关于数码管的相关知识,请参阅其它资料。在动手实现单片机控制99s计时显示之前,首先系统学习MC9S08GB60型单片机的输入输出(I/O)端口的相关知识及其寄存器的配置。,相关知识,输入输出(I/O)端口是CPU和外设之间交换信息的桥梁,是微控制器的重要组成部分,如果没有输入输出(I/O)端口,微控制器就根本无法构成应用系统。本项目所述的输入与输出是基于芯片I/O端口引脚而言,MC908GB60型单片机具有56个通用I/O引脚(其中一些引脚只能用输出),为了增强系统的性能而又不增加封装引脚,将多数端口引脚设计成双功能复用,并且保障每个引脚都具有较强的驱动能力。其中这些引脚的复用功能有时钟系统、外设中断、键盘中断、A/D转换、串口通信、背景调试等等。,相关知识,5.1端口A5.2端口B5.3端口C5.4端口D5.5端口E5.6端口G5.7端口G5.8输入输出端口应用,5.1端口A,端口A中的每一个引脚可以用作通用I/O输入输出,也可以用作键盘中断输入。引脚用作I/O输入输出时,可由数据寄存器(PTAD)、数据方向寄存器(PTADD)、上拉使能寄存器(PTAPE)、斜率控制寄存器(PTASE)配置。,5.1端口A,5.1端口A,5.1.1PTADn端口A数据寄存器(n=07)如图5-2所示,若端口A的方向被设置为输入,数据寄存器的内容可从端口读入引脚逻辑电平;若被设置为输出,则通过该寄存器可将变量的内容送至端口引脚。如果作为输出的情况下读取数据寄存器的内容,则返回的结果是最后一次写入该寄存器的变量的内容。注意,复位时,PTAD被设置为00,但此时端口内部电路并未立即将信息发送到引脚上,原因是复位后端口的方向被默认为输入,且上拉电阻也被禁止,要想正确输出,必须重新设置该端口的方向寄存器。下面举例说明端口A的数据寄存器的应用。,5.1端口A,5.1.2PTAPEn端口A的上拉使能寄存器(n=07)如图5-2所示,当端口A的方向被设为输入(即PTADDn被设为0)时,该寄存器的读写控制位可确定是否使能上拉电阻,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉电阻被禁止。当PTA7-PTA4引脚被MC9S08GB60中的KBI模块控制时,同时被配置为“上升沿/高电平”有效时,上拉使能控制位使能下拉电阻而不是上拉电阻。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.1端口A,5.1.3PTASEn端口A斜率控制寄存器(n=07)当端口A被设为输出(即PTADDn被设为1)时,该寄存器的读写控制位将决定是否使能斜率控制;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.1端口A,5.1.4PTADDn端口A数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTADDn(n的范围为07)被设置为0时,可通过PTADn中读取外部引脚电平到内部存储器单元,当PTADDn被设置为1时,可通过PTADn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.1端口A,例1:将端口A的方向设为输入,再读取端口A的引脚电平状态,并存放在变量VOLM中。分别用汇编语言和C语言实现。汇编程序:LDA#$00;将十六进制数00送入累加器ASTAPTADD;累加器A中的内容送入数据方向寄存器(PTADD),即是端口A被设置为输入LDAPTAD;数据寄存器(PTAD)中的内容送入累加器A,即是把端口A的外部引脚电平状态传送到累加器A中STAVOLM;将累加器A的内容送至变量VOLM,5.1端口A,例2:将端口A的方向设为输出,将十六进制立即数5A送至端口A的外部引脚上。分别用汇编语言和C语言实现。C语言程序:PTADD=0 xFF;/端口A被配置为输出PTAD=0 x5A;/把十六进制立即数5A传送给数据寄存器(PTAD)中,5.2端口B,端口B包含8个通用I/O输入输出引脚,并与模数转换(ATD)模块共用。引脚用作通用I/O输入输出时,可由数据寄存器(PTBD)、数据方向寄存器(PTBDD)、上拉使能寄存器(PTBPE)、斜率控制寄存器(PTBSE)配置。如图5-3所示。,5.2端口B,5.2端口B,当端口被配置为模数转换(ATD)时,相应的PTBDD、PTBSE、PTEBPE寄存器的控制位将无效。当端口B的引脚被配置为模数转换模块的引脚时,如果数据方向寄存器(PTBDD)的值为0,那么读取数据寄存器(PTBD)的数据时返回的值也是0。,5.2端口B,5.2.1PTBDn端口B数据寄存器(n=07)如图5-3所示,若端口B的方向被设置为输入,数据寄存器的内容可从端口读入引脚逻辑电平;若被设置为输出,则通过该寄存器可将变量的内容送至端口引脚。如果作为输出的情况下读取数据寄存器的内容,则返回的结果是最后一次写入该寄存器的变量的内容。注意,复位时,PTBD被设置为00,但此时端口内部电路并未立即将信息发送到引脚上,原因是复位后端口的方向被默认为输入,且上拉电阻也被禁止,要想正确输出,必须重新设置该端口的方向寄存器。下面举例说明端口B的数据寄存器的应用。,5.2端口B,例1:把端口B的低4位数据读取到变量TEMP中。分别用汇编语言和C语言实现。汇编程序:LDAPTBD;数据寄存器(PTBD)中的内容送入累加器A,即是把端口B的外部引脚电平状态传送到累加器A中AND#$0F;将累加器A的内容与十六进制立即数0F相与,即是只保留数据的低4位,再把结果回存给累加器ASTATEMP;累加器A的内容传送给变量TEMPC语言程序:TEMP=PTBD/十六进制立即数00传送给寄存器PTBPE,5.2端口B,5.2.3PTBSEn端口B斜率控制寄存器(n=07)当端口B被设为输出(即PTBDDn被设为1)时,该寄存器的读写控制位将决定是否使能转换速率;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.2端口B,例2:单独使能端口B的第2、5位引脚的斜率控制功能。分别用汇编语言和C语言实现。汇编程序:BSET2,PTBSE;将寄存器PTBSE的第2位置1BSET5,PTBSE;将寄存器PTBSE的第5位置1C语言程序:PTBSE=PTBSE|0 x22;/寄存器PTBPE的内容与十六进制数22进行或操作,即开启第2、5位的斜率控制,5.2端口B,5.2.4PTBDDn端口B数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTBDDn(n的范围为07)被设置为0时,可通过PTBDn中读取外部引脚电平到内部存储器单元,当PTBDDn被设置为1时,可通过PTBDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.2端口B,例:将端口B第2、3位引脚方向设为输出,并设置端口B第2、3位引脚的电平为高电平。分别用汇编语言和C语言实现。汇编程序:LDA#$0C;十六进制数0C送入累加器A,即端口B的第2、3位为1,其余的为0STAPTBDD;累加器A中的内容送入数据方向寄存器(PTBDD),即是端口B第2、3位引脚方向设为输出BSET2,PTBD;设置端口B第2位引脚为高电平BSET3,PTBD;设置端口B第3位引脚为高电平,5.2端口B,C语言程序:PTBDD=0 x0C;/端口B第2、3位引脚方向设为输出PTBD=0 x0C;/把十六进制立即数0C传送给数据寄存器(PTBD)中,5.3端口C,端口C包含8个通用I/O输入输出引脚,并与串口通信2(SCI2)模块、IIC总线通信模块共用。引脚用作通用I/O输入输出时,可由数据寄存器(PTCD)、数据方向寄存器(PTCDD)、上拉使能寄存器(PTCPE)、斜率控制寄存器(PTCSE)配置。如图5-4所示。,5.3端口C,5.3端口C,当被配置为串口通信(SCI2)时,相应的数据方向寄存器PTCDD的控制位将被无效,斜率控制寄存器PTCSE将为(SCI2)的TxD2发送接口通信提供斜率控制,上拉使能寄存器PTCPE将为(SCI2)的RxD2接收接口提供上拉电阻。当被配置为IIC总线通信时,相应的数据方向寄存器PTCDD的控制位也将被无效;发送数据时,斜率控制寄存器PTCSE将为总线通信的SDA1引脚和时钟引脚(SCL1)提供斜率控制;接收数据时,如果数据方向寄存器(PTCDD)的值为0,上拉使能寄存器PTCPE将为(IIC)的串口数据引脚提供上拉电阻。当数据方向寄存器(PTCDD)为0时,读取数据寄存器(PTCD)的值时将返回相应引脚的逻辑电平。,5.3端口C,5.3.1PTCDn端口C数据寄存器(n=07)若端口C被设置为输入,则从端口引脚读入逻辑电平;若被设置为输出,则通过该寄存器将变量信息送到端口引脚。对端口C数据寄存器的操作与端口A、B相同。,5.3端口C,例:读取引脚的信息并存入变量VOLT中。分别用汇编语言和C语言实现。汇编程序:LDAPTCD;数据寄存器(PTCD)中的内容送入累加器A,即是把端口C的外部引脚电平状态传送到累加器A中STAVOLT;累加器A的内容传送给变量VOLT或者:MOVPTCD,VOLT;数据寄存器(PTCD)中的内容传送给变量VOLTC语言程序:VOLT=PTCD;/数据寄存器(PTCD)中的内容送入变量VOLT,5.3端口C,5.3.2PTCPEn端口C的上拉使能寄存器(n=07)当端口C被设为输入(即PTCDDn被设为0)时,该寄存器的的读写控制位可确定是否使能上拉设备,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉设备被禁止。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.3端口C,例1:端口C开启所有内部上拉设备。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制立即数FF传送给累加器ASTAPTCPE;累加器A的内容传送给寄存器PTCPEC语言程序:PTCPE=0 xff;/十六进制立即数FF传送寄存器PTCPE,5.3端口C,5.3.3PTCSEn端口C斜率控制寄存器(n=07)当端口C被设为输出(即PTCDDn被设为1)时,该寄存器的读写控制位将决定是否使能转换速率;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.3端口C,例:端口C禁止斜率控制。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制立即数00传送给累加器ASTAPTCSE;累加器A的内容传送给寄存器PTCSEC语言程序:PTCSE=0 x00;/十六进制立即数00传送寄存器PTCSE,5.3端口C,5.3.4PTCDDn端口C数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTCDDn(n的范围为07)被设置为0时,可通过PTCDn中读取外部引脚电平到内部存储器单元,当PTCDDn被设置为1时,可通过PTCDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.3端口C,例1:将端口C的方向设为输出。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制数FF送入累加器ASTAPTCDD;累加器A中的内容送入数据方向寄存器(PTCDD),即是端口B被设置为输出LDA#$5A;十六进制数5A送入累加器ASTAPTCD;累加器A中的内容送入数据寄存器(PTCD)中,即是把内部存储器中的内容送到端口C的外部引脚,5.3端口C,C语言程序:PTCDD=0 xFF;/端口C被配置为输出PTCD=0 x5A;/把十六进制立即数5A传送给数据寄存器(PTCD)中,5.4端口D,端口D包含8个通用I/O输入输出引脚,并与定时器/脉宽调制1(TPM1)模块、定时器/脉宽调制2(TPM2)模块共用。引脚用作通用I/O输入输出时,可由数据寄存器(PTDD)、数据方向寄存器(PTDDD)、上拉使能寄存器(PTDPE)、斜率控制寄存器(PTDSE)配置。如图5-5所示。,5.4端口D,5.4端口D,当被配置为定时器/脉宽调制(TPM)时,PTDDD的控制位将忽略。当TPM模块工作在比较输出方式时PTCSE将为引脚通信提供斜率控制;当TPM模块工作在捕捉输入方式时PTCPE将为引脚提供上拉驱动。当数据方向寄存器(PTDDD)为0时,读取数据寄存器(PTDD)的值时将返回相应引脚的逻辑电平。,5.4端口D,5.4.1PTDDn端口D数据寄存器(n=07)若端口D被设置为输入,则从端口引脚读入逻辑电平;若被设置为输出,则通过该寄存器将变量信息送到端口引脚。对端口D数据寄存器的操作与端口A、B相同。下面举例说明端口D的数据寄存器的应用。,5.4端口D,例1:把十六进制立即数A5送出到端口引脚。分别用汇编语言和C语言实现。汇编程序:LDA#$A5;把十六进制立即数A5传送给累加器ASTAPTDD;累加器A的内容传送给数据寄存器PTDD,即是把累加器A中内容送到端口引脚C语言程序:PTDD=0 xa5;/十六进制立即数A5传送给数据寄存器PTDD,5.4端口D,5.4.2PTDPEn端口D的上拉使能寄存器(n=07)当端口D被设为输入(即PTDDDn被设为0)时,该寄存器的的读写控制位可确定是否使能上拉设备,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉设备被禁止。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.4端口D,例1:端口D开启所有内部上拉设备。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制立即数FF传送给累加器ASTAPTDPE;累加器A的内容传送给寄存器PTDPEC语言程序:PTDPE=0 xff;/十六进制立即数FF传送寄存器PTDPE,5.4端口D,5.4.3PTDSEn端口D斜率控制寄存器(n=07)当端口D被设为输出(即PTDDDn被设为1)时,该寄存器的读写控制位将决定是否使能斜率控制;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.4端口D,例:端口D禁止斜率控制。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制立即数00传送给累加器ASTAPTDSE;累加器A的内容传送给寄存器PTDSEC语言程序:PTDSE=0 x00;/十六进制立即数00传送寄存器PTDSE,5.4端口D,5.4.4PTDDDn端口D数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTDDDn(n的范围为07)被设置为0时,可通过PTDDn中读取外部引脚电平到内部存储器单元,当PTDDDn被设置为1时,可通过PTDDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.4端口D,例:将端口D的方向设为输入。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制数00送入累加器ASTAPTDDD;累加器A中的内容送入数据方向寄存器(PTDDD),即是端口D被设置为输入LDAPTDD;数据寄存器(PTDD)中的内容送入累加器A,即是把端口D的外部引脚电平状态传送到累加器A中C语言程序:PTDDD=0 x00;/十六进制数00送入数据方向寄存器(PTDDD)VOLM=PTDD;/数据寄存器(PTDD)中的内容传送给变量VOLM,5.5端口E,端口E包含8个通用I/O输入输出引脚,并与串口通信1(SCI1)模块、串口外设接口(SPI)模块共用。引脚用作通用I/O输入输出时,可由数据寄存器(PTED)、数据方向寄存器(PTEDD)、上拉使能寄存器(PTEPE)、斜率控制寄存器(PTESE)配置。如图5-6所示。,5.5端口E,5.5端口E,当被配置为串口通信1(SCI1)时,相应的数据方向寄存器PTEDD的控制位将被忽略,斜率控制寄存器PTESE将为(SCI1)的TxD1发送接口通信提供转换速率,上拉使能寄存器PTEPE将为(SCI1)的RxD1接收接口提供上拉电阻。,5.5端口E,当被配置为串口外设接口(SPI)时,相应的数据方向寄存器PTEDD的控制位也是被忽略的。斜率控制寄存器PTESE将为(SPI)的串口输出引脚(MOSI1和MISO1)和时钟引脚(SPSCK1)通信提供转换速率,上拉使能寄存器PTEPE将为(SPI)的串口输入引脚(MOSI1和MISO1)和从选择引脚(SS1)提供上拉电阻。,5.5端口E,5.5.1PTEDn端口E数据寄存器(n=07)若端口E被设置为输入,则从端口引脚读入逻辑电平;若被设置为输出,则通过该寄存器将变量信息送到端口引脚。对端口E数据寄存器的操作与端口A、B相同。,5.5端口E,例:把端口E引脚的状态取出并存储在变量TEMP中。分别用汇编语言和C语言实现。汇编程序:MOVPTED,TEMP;将寄存器PTED中的内容传送给变量TEMPC语言程序:TEMP=PTED;/将寄存器PTED中的内容传送给变量TEMP,5.5端口E,5.5.2PTEPEn端口E的上拉使能寄存器(n=07)当端口E被设为输入(即PTEDDn被设为0)时,该寄存器的的读写控制位可确定是否使能上拉电阻,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉电阻被禁止。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.5端口E,例:端口E开启所有内部上拉设备。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制立即数FF传送给累加器ASTAPTEPE;累加器A的内容传送给寄存器PTEPEC语言程序:PTEPE=0 xff;/十六进制立即数FF传送寄存器PTEPE,5.5端口E,5.5.3PTESEn端口E斜率控制寄存器(n=07)当端口E被设为输出(即PTEDDn被设为1)时,该寄存器的读写控制位将决定是否使能斜率控制;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.5端口E,例:端口E禁止斜率控制。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制立即数00传送给累加器ASTAPTESE;累加器A的内容传送给寄存器PTESEC语言程序:PTESE=0 x00;/十六进制立即数00传送寄存器PTESE,5.5端口E,5.5.4PTEDDn端口E数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTEDDn(n的范围为07)被设置为0时,可通过PTEDn中读取外部引脚电平到内部存储器单元,当PTEDDn被设置为1时,可通过PTEDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.5端口E,例:将端口E设为输入。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制数00送入累加器ASTAPTEDD;累加器A中的内容送入数据方向寄存器(PTEDD),即是端口E被设置为输入LDAPTED;数据寄存器(PTED)中的内容送入累加器A,即是把端口E的外部引脚电平状态传送到累加器A中C语言程序:PTEDD=0 x00;/十六进制数00送入数据方向寄存器(PTEDD)VOLM=PTED;/数据寄存器(PTED)中的内容传送给变量VOLM,5.6端口F,端口F包括8个通用I/O输入输出引脚。引脚用作通用I/O输入输出时,可由数据寄存器(PTFD)、数据方向寄存器(PTFDD)、上拉使能寄存器(PTFPE)、斜率控制寄存器(PTFSE)配置。如图5-7所示。,5.6端口F,5.6端口F,5.6.1PTFDn端口F数据寄存器(n=07)若端口F被设置为输入,则从端口引脚读入逻辑电平;若被设置为输出,则通过该寄存器将变量信息送到端口引脚。对端口F数据寄存器的操作与端口A、B相同。,5.6端口F,例:把十六进制立即数6B送出到端口引脚。分别用汇编语言和C语言实现。汇编程序:LDA#$6B;把十六进制立即数6B传送给累加器ASTAPTFD;累加器A的内容传送给数据寄存器PTFD,即是把累加器A中内容送到端口引脚C语言程序:PTFD=0 x6B;/把十六进制立即数6B传送给数据寄存器PTFD,5.6端口F,5.6.2PTFPEn端口F的上拉使能寄存器(n=07)当端口F被设为输入(即PTFDDn被设为0)时,该寄存器的的读写控制位可确定是否使能上拉电阻,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉电阻被禁止。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.6端口F,例:端口F开启所有内部上拉电阻。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制立即数FF传送给累加器ASTAPTFPE;累加器A的内容传送给寄存器PTFPEC语言程序:PTFPE=0 xff;/十六进制立即数FF传送寄存器PTFPE,5.6端口F,5.6.3PTFSEn端口F斜率控制寄存器(n=07)当端口F被设为输出(即PTFDDn被设为1)时,该寄存器的读写控制位将决定是否使能转换速率;如果端口被设为输入时,则这些控制位将被忽略。该寄存器每个控制位有2种状态:1转换速率使能0禁止转换速率使能,5.6端口F,例:端口F禁止斜率控制。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制立即数00传送给累加器ASTAPTFSE;累加器A的内容传送给寄存器PTFSEC语言程序:PTESE=0 x00;/十六进制立即数00传送寄存器PTFSE,5.6端口F,5.6.4PTFDDn端口F数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTFDDn(n的范围为07)被设置为0时,可通过PTFDn中读取外部引脚电平到内部存储器单元,当PTFDDn被设置为1时,可通过PTFDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.6端口F,例:将端口F方向设为输入。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制数00送入累加器ASTAPTFDD;累加器A中的内容送入数据方向寄存器(PTFDD),即是端口F被设置为输入LDAPTFD;数据寄存器(PTFD)中的内容送入累加器A,即是把端口F的外部引脚电平状态传送到累加器A中C语言程序:PTFDD=0 x00;/十六进制数00送入数据方向寄存器(PTFDD)VOLM=PTFD;/数据寄存器(PTFD)中的内容传送给变量VOLM,5.7端口G,端口G包含8个通用I/O输入输出引脚,并与背景/模式选择(BKGD/MS)模块、晶体振荡器或外部时钟模块共用。引脚用作通用I/O输入输出时,可由数据寄存器(PTGD)、数据方向寄存器(PTGDD)、上拉使能寄存器(PTGPE)、斜率控制寄存器(PTGSE)配置。如图5-8所示。,5.7端口G,5.7端口G,CPU复位期间,端口引脚PTG0被默认为BKGD/MS引脚,CPU复位后PTG0被配置为通用输出引脚。当PTG0被配置为BKGD/MS模式时,PTGDD、PTGPE和PTGPSE寄存器的控制位将无效。配置为晶体振荡器或外部时钟时,引脚PTG1T和PTG2将接外部元件。PTGD、PTGDD、PTGSE,和PTGPE寄存器的控制位将无效。,5.7端口G,5.7.1PTGDn端口G数据寄存器(n=07)若端口G被设置为输入,则从端口引脚读入逻辑电平;若被设置为输出,则通过该寄存器将变量信息送到端口引脚。对端口G数据寄存器的操作与端口A、B相同。,5.7端口G,例:把端口G引脚的状态取出并存储在变量VLOM中。分别用汇编语言和C语言实现。汇编程序:MOVPTGD,VLOM;将寄存器PTGD中的内容传送给变量VLOMC语言程序:VLOM=PTGD;/将寄存器PTGD中的内容传送给变量VLOM,5.7端口G,5.7.2PTGPEn端口G的上拉使能寄存器(n=07)当端口G被设为输入(即PTGDDn被设为0)时,该寄存器的的读写控制位可确定是否使能上拉电阻,如果该端口被配置为输出,则该寄存器的各位会被忽略,而且内部上拉电阻被禁止。该寄存器每个控制位有2种状态:1内部上拉使能0禁止内部使能,5.7端口G,例:端口G开启所有内部上拉设备。分别用汇编语言和C语言实现。汇编程序:LDA#$FF;十六进制立即数FF传送给累加器ASTAPTGPE;累加器A的内容传送给寄存器PTGPEC语言程序:PTGPE=0 xff;/十六进制立即数FF传送给寄存器PTGPE,5.7端口G,5.7.3PTGSEn端口G斜率控制寄存器(n=07)当端口G被设为输出(即PTGDDn被设为1)时,该寄存器的读写控制位将决定是否使能斜率控制;如果端口被设为输入时,则这些控制位将无效。该寄存器每个控制位有2种状态:1斜率控制使能0禁止斜率控制使能,5.7端口G,例:端口G禁止斜率控制。分别用汇编语言和C语言实现。汇编程序:LDA#$00;十六进制立即数00传送给累加器ASTAPTGSE;累加器A的内容传送给寄存器PTGSEC语言程序:PTGSE=0 x00;/十六进制立即数00传送给寄存器PTGSE,5.7端口G,5.7.4PTGDDn端口G数据方向寄存器(n=07)该寄存器的读写控制位将决定端口的方向是输入还是输出。当PTGDDn(n的范围为07)被设置为0时,可通过PTGDn中读取外部引脚电平到内部存储器单元,当PTGDDn被设置为1时,可通过PTGDn将内部存储器单元的信息输出到外部引脚。该寄存器每个控制位有2种状态:1端口被配置为输出0端口被配置为输入,5.7端口G,例:单独设置端口G第6脚为输出引脚。分别用汇编语言和C语言实现。汇编程序:LDA#$40;把十六进制立即数40传送给累加器A中ORAPTGDD;累加器A与PTGDD数据方向寄存器进行或操作C语言程序:PTGDD=PTGDD|0 x40;/寄存器PTGDD内容与十六进制数40进行或操作,即单独设置端口G第6脚为输出引脚,5.8输入输出端口应用,I/O端口的编程实际上就是根据应用电路的具体功能和要求对I/O端口寄存器进行配置,具体步骤如下:1根据实际电路的要求,选择要使用哪些I/O端口,用EQU伪指令定义其相应的寄存器。2初始化端口的数据输出寄存器,就避免端口作为输出时的开始阶段出现不确定的状态,影响外围电路正常工作。3根据外围电路功能确定I/O端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向的初始化,因为复位默认值为输入。4用作输入的I/O引脚,如需要上拉电阻,再通过写上拉控制寄存器的相应位为1为其配置上拉电阻。5最后写数据至输出数据寄存器或读I/O端口的输入状态。,5.8输入输出端口应用,5.8.1单个LED灯作闪烁显示。功能说明:单个LED灯作闪烁指示。如图5-9所示。,5.8输入输出端口应用,5.8输入输出端口应用,分析:根据原理图和LED的基础知识,要使LED发亮,端口PTAD7必须为低电平,而使LED熄灭,端口PTAD7必须为高电平。由于眼睛的视觉效应,在LED亮灭这间插入一定的延时才能产生闪烁的效果。下面分别用汇编语言程序和C语言程序实现上述要求(注意:源程序代码不是唯一的,读者可自行编程):,5.8输入输出端口应用,1汇编源程序:INCLUDEderivative.inc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丘陵地区灌溉排涝系统改造技术方案
- 高速覆铜板生产项目施工方案
- 2025年质量管理体系内审员资质测试题及答案
- 2025年安全工程师考试试题及答案
- 房屋建筑综合管线布设方案
- 2025年大数据分析专业考研试卷及答案
- 建筑通风系统安装方案
- 社区口袋公园的设计与规划策略分析
- 会计稳健性与企业税收负担的关系研究
- 吨油营销支出提升方案
- GB/T 18690.3-2017农业灌溉设备微灌用过滤器第3部分:自动冲洗网式过滤器和叠片式过滤器
- 中医养生六大观念
- 人教版小学三年级美术上册全套课件
- 彩钢大棚钢结构施工组织设计
- 舞蹈鉴赏课件
- 学校体育学(第三版)课件第八章体育教学设计
- 中国海洋大学《海洋生物资源与环境调查实习报告》
- 《中外美术史》课件1中外美术史.1(原始社会)
- 刺梨产品之养生有维系列简介共26页课件
- MPA、公务员必修课《公共政策》课件: 政策制定
- 大学物理高斯定理课件-英文版
评论
0/150
提交评论