ATmega通用IO口dhl解析学习教案

上传人:辰*** 文档编号:110341357 上传时间:2022-06-18 格式:PPTX 页数:45 大小:2.28MB
返回 下载 相关 举报
ATmega通用IO口dhl解析学习教案_第1页
第1页 / 共45页
ATmega通用IO口dhl解析学习教案_第2页
第2页 / 共45页
ATmega通用IO口dhl解析学习教案_第3页
第3页 / 共45页
点击查看更多>>
资源描述
会计学1ATmega通用通用(tngyng)IO口口dhl解析解析第一页,共45页。 AVR通用(tngyng)I/O口 有有PORTAPORTA、PORTBPORTB、PORTCPORTC、PORTDPORTD(简称(简称PAPA、PBPB、PCPC、PDPD)4 4组组8 8位,共位,共3232路通用路通用I/OI/O接口,分别对应于芯片上接口,分别对应于芯片上3232根根I/OI/O引脚。引脚。 所有这些所有这些I/OI/O口都是双(有的为口都是双(有的为3 3)功能复用的。其中第一功)功能复用的。其中第一功能均作为数字通用能均作为数字通用I/OI/O接口使用,而复用功能则分别用于中断、接口使用,而复用功能则分别用于中断、时钟时钟/ /计数器、计数器、USRATUSRAT、I2CI2C和和SPISPI串行通信、模拟比较串行通信、模拟比较(bjio)(bjio)、捕捉等应用。捕捉等应用。 第1页/共45页第二页,共45页。1、I/O口结构(jigu)三、AVR通用(tngyng)I/O口结构图结构图第2页/共45页第三页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口DDRxDDRx:控制:控制I/OI/O口的输入输出方向,即控制口的输入输出方向,即控制I/OI/O口的工作方式为输口的工作方式为输出方式还是输入方式。出方式还是输入方式。 当当DDRx=1DDRx=1时,时,I/OI/O口处于输出工作方式。此时数据口处于输出工作方式。此时数据(shj)(shj)寄寄存器存器PORTxPORTx中的数据中的数据(shj)(shj)通过一个推挽电路输出到外部引脚:通过一个推挽电路输出到外部引脚:第3页/共45页第四页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口当当PORTx=1PORTx=1时,时,I/OI/O引脚输出高电平,可提供输出引脚输出高电平,可提供输出20mA20mA的电流;的电流;而当而当PORTx=0PORTx=0时,时,I/OI/O引脚呈现低电平,同时引脚呈现低电平,同时(tngsh)(tngsh)可吸纳可吸纳20mA20mA电流。电流。AVRAVR的的I/OI/O在输出方式下提供了比较大的驱动能力,可在输出方式下提供了比较大的驱动能力,可以直接驱动以直接驱动LEDLED等小功率外围器件。等小功率外围器件。PORTxPORTx:数据输出寄存器;:数据输出寄存器;PinPin:数据读入寄存器:数据读入寄存器第4页/共45页第五页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口 当当DDRx=0DDRx=0时,时,I/OI/O处于输入工作方式。此时引脚寄存器处于输入工作方式。此时引脚寄存器PINxPINx中的数中的数据就是外部引脚的实际据就是外部引脚的实际(shj)(shj)电平,通过读电平,通过读I/OI/O指令可将物理引脚的指令可将物理引脚的真实数据读入真实数据读入MCUMCU。此外,当。此外,当I/OI/O口定义为输入时(口定义为输入时(DDRx=0DDRx=0),通过),通过PORTxPORTx的控制,可使用或不使用内部的上拉电阻。的控制,可使用或不使用内部的上拉电阻。 第5页/共45页第六页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口 表中的表中的PUDPUD为寄存器为寄存器SFIORSFIOR中的中的D2D2位,它的作用相当位,它的作用相当(xingdng)AVR(xingdng)AVR全部全部I/OI/O口内部上拉电阻的总开关。当口内部上拉电阻的总开关。当PUD=1PUD=1时,时,AVRAVR所有所有I/OI/O内部上拉电阻都不起作用(全局内部上拉无效);而内部上拉电阻都不起作用(全局内部上拉无效);而PUD=0PUD=0时,各个时,各个I/OI/O口内部上拉电阻取决于口内部上拉电阻取决于PORTXnPORTXn的设置。的设置。第6页/共45页第七页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口 Atmega Atmega通用通用I/OI/O特点:特点:双向可独立位控的双向可独立位控的I/OI/O口口 ATmega16 ATmega16的的PAPA、PBPB、PCPC、PDPD四个端口都是四个端口都是8 8位双向位双向I/OI/O口,每一位口,每一位引脚都可以单独的进行定义,相互不受影响。如用户可以在定义引脚都可以单独的进行定义,相互不受影响。如用户可以在定义PAPA口口第第0 0、2 2、3 3、4 4、5 5、6 6位用于输入的同时定义第位用于输入的同时定义第1 1、7 7位用于输出,互不位用于输出,互不影响。影响。 Push-PullPush-Pull大电流驱动大电流驱动 ( (最大最大40mA) 40mA) 每个每个I/OI/O口输出方式均采用推挽式缓冲器输出,提供大电流的驱口输出方式均采用推挽式缓冲器输出,提供大电流的驱动,可以输出(吸入)动,可以输出(吸入)20mA20mA的电流,因而能直接驱动的电流,因而能直接驱动LEDLED显示器。显示器。 可控制的引脚内部上拉电阻可控制的引脚内部上拉电阻 当当I/OI/O口被用于输入状态,且内部上拉电阻被激活(有效口被用于输入状态,且内部上拉电阻被激活(有效(yuxio)(yuxio))时,如果外部引脚被拉低,则构成电流源输出电流()时,如果外部引脚被拉低,则构成电流源输出电流(uAuA量级)量级)DDRxDDRx可控的方向寄存器。可控的方向寄存器。第7页/共45页第八页,共45页。1、I/O口结构(jigu) AVR通用(tngyng)I/O口 I/O I/O口使用注意事项:口使用注意事项: 1 1)使用)使用AVRAVR的的I/OI/O口,首先要正确设置其工作方式,确定其工作口,首先要正确设置其工作方式,确定其工作在输出方式还是输入方式。在输出方式还是输入方式。 2 2)当)当I/OI/O工作在输入方式,要读取外部引脚上的电平时,应读取工作在输入方式,要读取外部引脚上的电平时,应读取PINxnPINxn的值,而不是的值,而不是PORTxnPORTxn的值。的值。 3 3)当)当I/OI/O工作在输入方式,要根据实际情况使用或不使用内部的工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。如能利用上拉电阻。如能利用AVRAVR内部内部I/OI/O口的上拉电阻,可以节省外部的上拉口的上拉电阻,可以节省外部的上拉电阻电阻 4 4) 一旦将一旦将I/OI/O口的工作方式由输出设置成输入方式后,必须等口的工作方式由输出设置成输入方式后,必须等待一个时钟待一个时钟(shzhng)(shzhng)周期后才能正确的读到外部引脚周期后才能正确的读到外部引脚PINxnPINxn的值。的值。 5 5)每次读写)每次读写I/OI/O前都要先配置前都要先配置DDRxDDRx寄存器。寄存器。第8页/共45页第九页,共45页。2、I/O口寄存器 AVR通用(tngyng)I/O口 每个每个I/OI/O口口3 3个寄存器,共用个寄存器,共用(n yn)12(n yn)12个寄存器。个寄存器。第9页/共45页第十页,共45页。2、I/O口寄存器 AVR通用(tngyng)I/O口 下图是下图是PA口寄存器口寄存器PORTA、DDRA、PINA各个各个(gg)位的位的具体定义,及复位初始值。其它具体定义,及复位初始值。其它3个口的寄存器的情况与个口的寄存器的情况与PA口相同,口相同,只是地址不一样。只是地址不一样。 第10页/共45页第十一页,共45页。3、I/O口编程应用(yngyng) AVR通用(tngyng)I/O口一种标准的一种标准的C C程序可以采用以下的写法:程序可以采用以下的写法: #define BIT0 0#define BIT0 0 #define BIT7 7 #define BIT7 7 PORTC = 1(BIT0) | 1(BIT3);PORTC = 1(BIT0) | 1(BIT3); / /* * PC PC口的第口的第0 0位和第位和第3 3位输出位输出“1”“1”,其它为,其它为“0”“0”* */ /1(BIT0)1(BIT0)表示逻辑表示逻辑1 1左移左移0 0位,结果为位,结果为0b00000001;0b00000001;1(BIT3) 1(BIT3) 表示逻辑表示逻辑1 1左移左移3 3位,结果为位,结果为0b000010000b00001000。0b000000010b00000001在同在同0b000010000b00001000相或,结果为相或,结果为0b000010010b00001001。 以上以上(yshng)(yshng)的逻辑运算不产生具体的操作指令,由编译的逻辑运算不产生具体的操作指令,由编译器在编译时运算完成,得到结果,最后只是产生将结果赋值到器在编译时运算完成,得到结果,最后只是产生将结果赋值到PORTCPORTC寄存器的操作指令。寄存器的操作指令。 这种表示方法有利于这种表示方法有利于“不同不同CPUCPU的移植的移植”。第11页/共45页第十二页,共45页。3、I/O口编程应用(yngyng) AVR通用(tngyng)I/O口 这种表示(biosh)方式,比直接赋值0b00001001更容易理解程序的作用。在后面的程序将广泛使用这种表达方法,如对USART串口编程中大量使用了这样的描述方式:#define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1FE) #define PARITY_ERROR (1UPE) #define DATA_OVERRUN (1OVR)第12页/共45页第十三页,共45页。3、I/O口编程应用(yngyng) AVR通用(tngyng)I/O口#define DATA_REGISTER_EMPTY (1UDRE) #define RX_COMPLETE (1RXC) char status; status = UCSRA; if ( status & ( FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN ) = 0 ) / 接收数据无错误接收数据无错误(cuw)处理过程处理过程 else /接收数据产生错误接收数据产生错误(cuw)处理过程处理过程 第13页/共45页第十四页,共45页。3、I/O口编程应用(yngyng) AVR通用(tngyng)I/O口 程序中的程序中的UCSRAUCSRA为为ATmega16ATmega16的串行接口的串行接口USARTUSART的状态寄存器,的状态寄存器,UPEUPE是是UCSRAUCSRA的第的第2 2位,当位,当UPEUPE为为1 1时表示接收到的数据产生了校验时表示接收到的数据产生了校验(xio (xio yn)yn)错误。错误。 程序中采用了定义语句,定义程序中采用了定义语句,定义 PARITY_ERROR PARITY_ERROR为(为(1 UPE1 UPE),), 实际就是实际就是0b000001000b00000100。 因此一旦因此一旦USARTUSART的值为的值为PARITY_ERRORPARITY_ERROR时,时, 表示接受的数据产生了校验表示接受的数据产生了校验(xio yn)(xio yn)错误,使程序的阅读非错误,使程序的阅读非常明了。常明了。 第14页/共45页第十五页,共45页。(1)、LED发光(f un)二极管驱动 AVR通用(tngyng)I/O口第15页/共45页第十六页,共45页。(1)、LED发光(f un)二极管驱动 AVR通用(tngyng)I/O口#include void delay(unsigned char t);/*声明函数声明函数(hnsh)*/void main(void) char position = 0; / position PORTA=0 xFF; / PA1LED DDRA=0 xFF; / PA while (1) PORTA = (1= 8) position = 0; delay(100); /*定义函数定义函数(hnsh)*/ void delay(unsigned char t) unsigned char a,b; for(a=0;a100;a+) for(b=0;bt;b+); 第16页/共45页第十七页,共45页。(2)、继电器控制(kngzh) AVR通用(tngyng)I/O口第17页/共45页第十八页,共45页。(3)、步进电机(dinj)驱动 AVR通用(tngyng)I/O口第18页/共45页第十九页,共45页。(3)、步进电机(dinj)驱动三、AVR通用(tngyng)I/O口 单极单极3相步进电机有三个磁激励相,分别用相步进电机有三个磁激励相,分别用A、B、C表示,表示,每相有一个磁激线圈。通过控制三个磁激线圈电流的通断的先后每相有一个磁激线圈。通过控制三个磁激线圈电流的通断的先后时间顺序和通断频率就可以改变步进电机的变旋转方向和控制转时间顺序和通断频率就可以改变步进电机的变旋转方向和控制转速速(zhun s),图,图6-9是单极是单极3相步进电机的原理图。相步进电机的原理图。 单极单极3相步进电机有相步进电机有3相相3拍和拍和3相相6拍两种驱动方式,图拍两种驱动方式,图6-10给出它们的控制时序图。给出它们的控制时序图。3相相3拍就是拍就是A、B、C三相分别通电,三相分别通电,正转为正转为ABCABC,反转为,反转为ACBACB,每,每拍转动拍转动3。3相相6拍中有三拍是两相同时通电,正转为拍中有三拍是两相同时通电,正转为AABBBCCCA,反转为,反转为AACCCBBBA,每拍转动,每拍转动1.5。 第19页/共45页第二十页,共45页。(3)、步进电机(dinj)驱动 AVR通用(tngyng)I/O口第20页/共45页第二十一页,共45页。(3)、步进电机(dinj)驱动 AVR通用(tngyng)I/O口 单极单极3相步进电机有三个磁激励相,分别用相步进电机有三个磁激励相,分别用A、B、C表示,表示,每相有一个磁激线圈。通过控制三个磁激线圈电流的通断的先后每相有一个磁激线圈。通过控制三个磁激线圈电流的通断的先后时间顺序和通断频率就可以改变步进电机的变旋转方向和控制转时间顺序和通断频率就可以改变步进电机的变旋转方向和控制转速,图速,图6-9是单极是单极3相步进电机的原理图。相步进电机的原理图。 单极单极3相步进电机有相步进电机有3相相3拍和拍和3相相6拍两种驱动方式,图拍两种驱动方式,图6-10给出它们的控制时序图。给出它们的控制时序图。3相相3拍就是拍就是(jish)A、B、C三相分别三相分别通电,正转为通电,正转为ABCABC,反转为,反转为ACBACB,每拍转动,每拍转动3。3相相6拍中有三拍是两相同时通电,正转为拍中有三拍是两相同时通电,正转为AABBBCCCA,反转为,反转为AACCCBBBA,每,每拍转动拍转动1.5。 第21页/共45页第二十二页,共45页。(3)、步进电机(dinj)驱动三、AVR通用(tngyng)I/O口#include #include flash char step_out6=0 x04,0 x06,0 x02,0 x03,0 x01,0 x05; void main(void) char i = 0; int delay = 500; PORTA=0 x00; DDRA=0 x07; while (1) PORTA = step_outi; if (+i = 6) i = 0; delay_ms(delay); ; 第22页/共45页第二十三页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口第23页/共45页第二十四页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口假设假设PA.0-aPA.7-hPA.0-aPA.7-h要显示要显示(xinsh)(xinsh)数字数字11共阴极:共阴极:PAPA输出?输出?共阳级:共阳级:PAPA输出?输出?与此同时,公共端接法?与此同时,公共端接法?欲连续显示欲连续显示(xinsh)(xinsh)数字数字0-90-9该如何?该如何?第24页/共45页第二十五页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口第25页/共45页第二十六页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口第26页/共45页第二十七页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口#include #include flash char led_710=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F; flash char position6=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf; char time3; / 时、分、秒计数(j sh) char dis_buff6; / 显示缓冲区,存放要显示的6个字符的段码值 char time_counter; / 1秒计数(j sh)器 ,全局变量bit point_on; / 秒显示标志 ,全局变量第27页/共45页第二十八页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口void display(void) / 扫描显示函数(hnsh),执行时间12ms char i; for(i=0;i=5;i+) PORTA = led_7dis_buffi; if (point_on & ( i=2 | i=4 ) PORTA |= 0 x80; / (1) PORTC = positioni; delay_ms(2); / (2) PORTC = 0 xff; / (3) 第28页/共45页第二十九页,共45页。(3)、数码管显示(xinsh)(并行) AVR通用(tngyng)I/O口void time_to_disbuffer(void) / 时间值送显示缓冲区函数(hnsh) char i,j=0; for (i=0;i= 40) time_counter = 0; / (4) point_on = point_on; / (5) if (+time0 = 60) time0 = 0; if (+time1 = 60) time1 = 0; if (+time2 = 24) time2 = 0; time_to_disbuffer(); delay_ms(13); / 延时13ms,可进行其它处理(6) 第30页/共45页第三十一页,共45页。(3)、数码管显示(xinsh)(串行) AVR通用(tngyng)I/O口第31页/共45页第三十二页,共45页。(3)、数码管显示(xinsh)(串行) AVR通用(tngyng)I/O口第32页/共45页第三十三页,共45页。(3)、数码管显示(xinsh)(串行) AVR通用(tngyng)I/O口#define HC164_data PORTA.0 #define HC164_clk PORTA.1 void HC164_send_byte(char byte) char i; for (i=0;i=7;i+) HC164_data = byte & 1 i; HC164_clk = 1; HC164_clk = 0; void display(void) char temp,i; for(i=0;i=5;i+) temp = led_7dis_buffi; if (point_on & (i=2 | i=4) HC164_send_byte(temp | 0 x80); else HC164_send_byte(temp); PORTC = positioni; delay_ms(2); PORTC = 0 xff; 。 第33页/共45页第三十四页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口第34页/共45页第三十五页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口第35页/共45页第三十六页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口函数功能简介:函数功能简介:1)void LCD_init(void)该函数对该函数对LCD进行初始化,将显示位置回到第进行初始化,将显示位置回到第0行的第行的第0列的起始位置处。函数的列的起始位置处。函数的参数应是参数应是LCD显示器的列数(一行能够显示的字符数)。使用显示器的列数(一行能够显示的字符数)。使用LCD显示器时,必显示器时,必须先使用该函数对须先使用该函数对LCD显示器进行初始化。显示器进行初始化。 2)void LCD_clear(void) 该函数清除该函数清除LCD的显示,并将显示位置回到第的显示,并将显示位置回到第0行的第行的第0列的起始位置处。列的起始位置处。 3)void LCD_write_data(unsigned char data) 写数据写数据(shj)到到LCD。4) LCD_write_char(unsigned char x,unsigned char y,unsigned char data) 该函数将字符该函数将字符c在当前的显示位置上显示出来。在当前的显示位置上显示出来。 5)void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)该函数将在从当前的显示位置开始,显示定义在该函数将在从当前的显示位置开始,显示定义在SRAM中的字符串(中的字符串(str为为SRAM中定义的字符串的指针)。中定义的字符串的指针)。 第36页/共45页第三十七页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口6)void LCD_write_com(unsigned char com) 写命令写命令(mng lng)到到LCD。第37页/共45页第三十八页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口初始化及主程序:初始化及主程序:#include #include #include lcd1602.h#include lcd1602.hvoid main(void) void main(void) unsigned char i; unsigned char i; unsigned char unsigned char * *p;p; PORTA = 0 xFF; / PORTA = 0 xFF; /* *打开上拉打开上拉* */ / DDRA = 0 x00; / DDRA = 0 x00; /* *方向输入方向输入* */ / PORTB = 0 xFF; / PORTB = 0 xFF; /* *电平电平(din (din pn)pn)设置设置* */ / DDRB = 0 xFF; / DDRB = 0 xFF; /* *方向输出方向输出* */ / PORTC = 0 x7F; PORTC = 0 x7F; DDRC = 0 x80; DDRC = 0 x80; PORTD = 0 xFF; PORTD = 0 xFF; DDRD = 0 x00; DDRD = 0 x00;delay_ms(100);delay_ms(100); LCD_init(); LCD_init();while (1) i = 1; p = “LCD-1602-test”; LCD_clear(); LCD_write_str(5,0,Welcome); delay_ms(250); while (*p) LCD_write_char(i,1,*p); i +; p +; delay_ms(250); delay_ms(250); 第38页/共45页第三十九页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口初始化及主程序:初始化及主程序:#include #include #define RS_CLR PORTD &= (1 PD3)#define RS_CLR PORTD &= (1 PD3)#define RS_SET PORTD |= (1 PD3)#define RS_SET PORTD |= (1 PD3)#define RW_CLR PORTD &= (1 PD4)#define RW_CLR PORTD &= (1 PD4)#define RW_SET PORTD |= (1 PD4)#define RW_SET PORTD |= (1 PD4)#define EN_CLR PORTD &= (1 PD6)#define EN_CLR PORTD &= (1 PD6)#define EN_SET PORTD |= (1 PD6)#define EN_SET PORTD |= (1 PD6)/ /* *延时函数延时函数(hnsh)(hnsh)* */ /void delay_us(unsigned int n) void delay_us(unsigned int n) if (n = 0) if (n = 0) return ; return ; while (-n); while (-n); 第39页/共45页第四十页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口/*延时函数延时函数(hnsh)*/void delay_ms(unsigned char i) unsigned char a, b; for (a = 1; a i; a+) for (b = 1; b; b+) ; /*显示屏命令写入函数显示屏命令写入函数*/void LCD_write_com(unsigned char com) RS_CLR; RW_CLR; EN_SET; PORTB = com; delay_us(5); EN_CLR;第40页/共45页第四十一页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口/*显示屏命令显示屏命令(mng lng)写入函数写入函数*/void LCD_write_data(unsigned char data) RS_SET; RW_CLR; EN_SET; PORTB = data; delay_us(5); EN_CLR;/*显示屏清空显示显示屏清空显示*/void LCD_clear(void) LCD_write_com(0 x01); delay_ms(5);第41页/共45页第四十二页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口/*显示屏字符串写入函数显示屏字符串写入函数(hnsh)*/void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_write_com(0 x80 + x); else LCD_write_com(0 xC0 + x); while (*s) LCD_write_data( *s); s +; 第42页/共45页第四十三页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口/*显示屏单字符显示屏单字符(z f)写入函数写入函数*/void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) if (y = 0) LCD_write_com(0 x80 + x); else LCD_write_com(0 xC0 + x); LCD_write_data( data); 第43页/共45页第四十四页,共45页。(4)、字符(z f)LCD AVR通用(tngyng)I/O口/*显示屏初始化函数显示屏初始化函数*/void LCD_init(void) DDRB = 0 xFF; /*I/O口方向口方向(fngxing)设置设置*/ DDRD |= (1 PD3) | (1 PD4) | (1 PD6); LCD_write_com(0 x38); /*显示模式设置显示模式设置*/ delay_ms(5); LCD_write_com(0 x38); delay_ms(5); LCD_write_com(0 x38); delay_ms(5); LCD_write_com(0 x38); LCD_write_com(0 x08); /*显示关闭显示关闭*/ LCD_write_com(0 x01); /*显示清屏显示清屏*/ LCD_write_com(0 x06); /*显示光标移动设置显示光标移动设置*/ delay_ms(5); LCD_write_com(0 x0C); /*显示开及光标设置显示开及光标设置*/ 第44页/共45页第四十五页,共45页。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!