版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机技术基础教程与实践作者:夏路易电子工业出版所有8.3. 1602液晶显示器介绍液晶显示器介绍 8.3.1 1602液晶简介液晶简介 1. 特点(1)液晶显示屏是以若干个58或511点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。(2)主控制驱动电路为HD44780或其他全兼容电路,如SED1278(SEIKO EPSON)、KS0066(SAMSUNG)、NJU6408(NER JAPAN RADIO)。(3)具有字符发生器ROM可显示192种字符(160个57点阵字符和32个510点阵字符。(4)具有64个字节的自定义字符RAM,可自定义8个58点阵字符
2、或四个511点阵字符。(5)具有80个字节的RAM。(7)单+5V电源供电。单片机技术基础教程与实践作者:夏路易电子工业出版所有2. 引脚功能 引脚号符号状态功 能1Vss 电源地2Vdd +5V逻辑电源3V0 对比度控制4RS输入寄存器选择,1:数据;0:指令5R/W输入读、写操作选择,1:读;0:写6E输入使能信号,高电平或是下降边沿有效7D0三态数据总线(LSB)8D1三态数据总线9D2三态数据总线10D3三态数据总线11D4三态数据总线12D5三态数据总线13D6三态数据总线14D7三态数据总线(MSB)15LEDA输入背光+5V有些液晶没有背光,有些引脚与此不同16LEDK输入背光地
3、单片机技术基础教程与实践作者:夏路易电子工业出版所有8.3.2 1602液晶中的显示驱动芯片液晶中的显示驱动芯片HD447801. 1602液晶结构与信号HD44780是驱动器与控制器一体的专用字符液晶显示控制驱动集成电路,是字符液晶显示控制器的代表芯片。该芯片内集成了显示缓冲区和用户定义的字符发生器CGRAM,具有简单但功能强的指令,可以实现字符移动、闪烁等显示功能。(1)接口信号D7D4 三态总线,8位数据总线的高4位,可以作为4位数据总线使用D3D0 三态总线,8位数据总线的低4位, 4位数据总线时无用在4位数据总线情况下单片机向HD44780发送指令和数据时,先传输高4位,再传输低4位
4、。接口控制信号为RS、R/W和E,他们之间的关系如下表所示。寄存器选择RS读写R/W使能信号E功能00下降沿有效写指令代码01高电平有效读忙标志和AC码10下降沿有效写数据11高电平有效读数据单片机技术基础教程与实践作者:夏路易电子工业出版所有(2)时钟HD44780时钟频率范围是125kHz350kHz,典型时钟范围是250kHz。(3)芯片内部逻辑实现初始化操作在上电后,芯片内部逻辑实现初始化操作:清屏初始化设置为8位总线接口、1行、57字符显示关显示地址计数器设置为自动加1模式在初始化过程中。忙标志BF保持为1,直到初始化结束。 (4)地址计数器AC地址计数器AC是显示缓冲区DDRAM或
5、字符发生器CDRAM的地址,在写或读之后,还有地址加1或减1功能;该计数器还指示当前光标位置。AC值可以通过读操作读出。 单片机技术基础教程与实践作者:夏路易电子工业出版所有(5)光标闪烁光标以底线形式在字符位置的第8行闪烁,但也可以是字符闪烁,可由指令设置。(6)字符发生器CGROM与CGRAM CGROM中存储有出厂时就固化好的字模库,包含有160种57点阵的字模和32种510点阵的字模。在内部时序的控制下,显示缓冲区DDRAM中的字符代码与行计数器合成CGROM的地址。 CGRAM是可读、可写的用户自定义字符发生器,容量有64字节,地址位00H03H,只能自定义8个58点阵字符,字符代码
6、取值范围为00H07H。单片机技术基础教程与实践作者:夏路易电子工业出版所有字符发生器CGROM单片机技术基础教程与实践作者:夏路易电子工业出版所有(7)DDRAM 显示缓冲区DDRAM用于存储显示字符的代码,共有80个字节,地址计数器AC的数值是DDRAM的地址,DDRAM中的代码是字符发生器CGRAM或CGROM地址的高8位,而地址的低3位或4位由行计数器提供,DDRAM中的各个单元对应着显示屏上的各个字符位,对应关系如下: 列位置12345678910111213141516第1行000102030405060708090A0B0C0D0E0F第2行4041424344454647484
7、94A4B4C4D4E4F 在确定字符位置时,还需要考虑最高位是1的格式要求,比如第二行第一个字符的地址是40H,由于写入显示地址时要求最高位D7为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 单片机技术基础教程与实践作者:夏路易电子工业出版所有1602 指令简述如下:(1)清屏(0 x01)把空码20H写入DDRAM的全部单元。地址计数器AC清零,光标归位。设置I/D=1,使AC处于自动加1模式。 (2)归位(0 x02)使AC清零,还可以使发生位移的画面返回00H处显示,光标或是闪烁将回到原点00H处。(3)输
8、入方式(0000,01,I/D,S)该指令设置单片机读、写DDRAM或CGRAM后,AC的变化方向,该指令有两个参数:I/D:I/D=1 AC自动加1,光标右移;I/D=0 AC自动减1,光标左移。S:设置在写入DDRAM数据后,显示屏上的画面全部向左或向右平移一个字符位。S=0:无效,S=1有效。S=1、I/D=1,画面左移。S=1、I/D=0,画面右移。单片机技术基础教程与实践作者:夏路易电子工业出版所有(4)显示开关控制(0000,1,D,C,B)该指令控制显示效果,带有三个参数:D:显示开关,D=1时,允许显示屏显示;D=0,不允许显示屏显示。C:光标开关,C=1时,允许显示屏显示光标
9、;C=0时,不允许显示光标。光标位置由AC控制。B:闪烁开关,使一个字符位交替全亮或是全暗,闪烁频率为2.4Hz。闪烁位置由AC控制。B=1,闪烁;B=0,不闪烁。(5)光标或画面位移(0001,S/C,R/L,0,0)执行该指令时,光标或显示屏上的画面将左移或右移一个字符位置。S/C:位移对象选择,S/C=1时,画面位移,S/C=0时光标位移。R/L:位移方向选择,R/L=1时为右移,R/L=0时为左移。(6)功能设置(001,DL,N,F,00)该指令HD44780的初始化设置指令,单片机必须使用这条指令初始化HD44780,该指令有三个参数: DL:总线数据位数,DL=0,总线为4位,D
10、L=1,总线为8位。 N:显示屏显示行数,N=0为1行,N=1为2行。 F:字符格式,F=0为57点阵,F=1为510。单片机技术基础教程与实践作者:夏路易电子工业出版所有(7)CGRAM地址设置(指令码:01 A5,A4,A3,A2,A1,A0)该指令将CGRAM的6位地址码00H3FH写入地址计数器AC内,随后单片机将对CGRAM操作。(8)DDRAM地址设置(指令码:0 A6,A5,A4,A3,A2,A1,A0) 该指令将DDRAM的7位地址码送入地址计数器AC内,随后单片机对DDRAM操作,DDRAM的地址范围是:N=0(1行字符)00H4FHN=1(2行字符)第1行:00H27H,
11、第2行:40H67H(9)DF与AC 当单片机读操作时(RS=0,R/W=1),读出1位忙标志(BF)和7位地址计数器AC的组合,格式为:D7D6D5D4D3D2D1D0BFAC6AC5AC4AC3AC2AC1AC0其中AC的值可以是DDRAM的地址,也可以是CGRAM的地址。单片机技术基础教程与实践作者:夏路易电子工业出版所有(10)写入DDRAM或是CGRAM 单片机把要写入DDRAM或CGRAM的数据写入HD44780中,需要首先写入地址设置指令,选择DDRAM或是CGRAM,然后是设置地址计数器AC的自动修改方式。(11)读取DDRAM或是CGRAM 单片机读取当前AC计数值所指单元的
12、内容。3. 1602液晶与51单片机的接线1602液晶与51单片机的接线如图所示。VSS1VDD2V03RS4R/W5E6D07D18D29D310D411D512D613D714LEDA15LEDK16U2LCD1602p1.01p1.12p1.23p1.34p1.45p1.5(MOSI)6p1.6(MISO)7p1.7(SCK)8RST9p3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20P2.0(A8)21P2.1(A9)22P2.
13、2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN29ALE(PROG)30EA(VPP)31VCC40P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)3989S51/51/53U1VDDRV01020kD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7RAK3.3220 VDD.单片机技术基础教程与实践作者:夏路易电子工业出版所有8.3.3 51单片机控制单片机控制1602
14、液晶显示例题液晶显示例题 例题8-7 本例的程序是51单片机向1602液晶写入两屏数据。数据总线连接51单片机的P0口,控制引脚RS(L_RS)连接P2_0,R/W(L_RW)连接P2_1,E(L_EP)连接P2_2。单片机时钟频率11.0592MHz。源程序如下:#include #include /具有_nop_()函数的库文件typedef unsigned char zj; /重定义数据类型zj为无符号字符型 sbit L_RS = P20; /定义控制信号L_RS连接的引脚sbit L_RW = P21; /定义控制信号L_RW连接的引脚sbit L_EP = P22; /定义控制信
15、号L_EP(E)连接的引脚zj code dis1 = shanxi taiyuan; /写入液晶的字符串数组zj code dis2 = TYUT Auto. Dept.; /写入液晶的字符串数组zj code dis3 = 0123456789abcdef; /写入液晶的字符串数组zj code dis4 = file: yj1602zz1. ; /写入液晶的字符串数组delay(int ms) /延时函数int i; while(ms-)for(i = 0; i 250; i+)_nop_();_nop_();_nop_();_nop_(); /_nop_() 空操作单片机技术基础教程与
16、实践作者:夏路易电子工业出版所有bit yj_bz() /测试液晶忙状态检测函数,返回“位”类型 bit result; L_RS = 0;L_RW = 1;L_EP = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0 x80); /将P0口的最高位取出,并强制为位类型 L_EP = 0;return result; /返回液晶忙标志yj_wcmd(zj cmd) /向LCD写入指令函数while(yj_bz(); /当忙等待L_RS = 0;L_RW = 0;L_EP = 0;_nop_();_nop_();P0 = c
17、md; /将命令写入P0口 _nop_();_nop_();_nop_();_nop_();L_EP = 1; _nop_();_nop_();_nop_();_nop_();L_EP = 0;yj_pos(zj pos) /设定字符显示位置函数yj_wcmd(pos | 0 x80); /调用写命令函数,写入位置值单片机技术基础教程与实践作者:夏路易电子工业出版所有yj_wdat(zj dat) / 向LCD写入字符(一个字节数据)函数 while(yj_bz(); L_RS = 1;L_RW = 0;L_EP = 0;P0 = dat; /将显示数据写入P0口_nop_();_nop_()
18、;_nop_();_nop_();L_EP = 1;_nop_();_nop_();_nop_();_nop_();L_EP = 0;yj_init() /软件初始化函数 yj_wcmd(0 x38); /16*2显示,5*7 点阵,8位数据,(001,DL=1,N=0,F=0,00)delay(1);yj_wcmd(0 x0c); /显示开,关光标,不闪烁 (0000,1,D=1,C=0,B=0)delay(1);yj_wcmd(0 x06); /增量方式移动光标 (0000,0,1,I/D=0,S=0)delay(1);yj_wcmd(0 x01); /清除液晶的显示内容,AC与DDRAM
19、初始化delay(1);单片机技术基础教程与实践作者:夏路易电子工业出版所有main() /主函数 zj i; /定义无符号字符变量iyj_init(); /调用初始化函数,软件初始化LCDdelay(10);while(1) /无限循环yj_wcmd(0 x06); /调用写命令函数,向右移动光标(增量)yj_pos(0); /调用显示位置函数,设置显示位置为第一行的第1 个字符i = 0; /循环变量初始化while(dis1 i != 0) /如果没有遇到结束符,则显示字符shanxi taiyuan yj_wdat(dis1 i ); /调用写数据函数,向液晶写字符,由于是增量方式,所
20、以AC自动加1i+;delay(10); /设置两字符之间显示速度yj_pos(0 x40); /调用显示位置函数,设置显示位置为第二行第1个字符i = 0;while(dis2 i != 0) /显示字符TYUT Auto. Dept.yj_wdat(dis2 i ); /调用写数据函数,向液晶写字符,由于是增量方式,所以AC自动加1i+;delay(10); /设置两字之间显示速度单片机技术基础教程与实践作者:夏路易电子工业出版所有delay(300); /设置本屏的停留时间yj_wcmd(0 x01); /调用写命令函数,清除液晶前1屏的显示内容delay(1);yj_wcmd(0 x0
21、6); /调用写命令函数,向右移动光标 yj_pos(0); /调用显示位置函数,设置显示位置为第一行的第1 个字符i = 0;while(dis3 i != 0) /显示字符0123456789abcdefyj_wdat(dis3 i ); /调用写数据函数,向液晶写字符,i+;delay(10); /设置两字之间显示速度yj_pos(0 x40); /调用显示位置函数,设置显示位置为第二行的第1个字符i = 0;while(dis4 i != 0)yj_wdat(dis4 i ); /调用写数据函数,将字符file: yj1602zz1. 写入LCDi+;delay(10); /设置两字之
22、间显示速度delay(300); /设置本屏显示停留时间yj_wcmd(0 x01); /调用写命令函数,清除液晶的显示内容delay(100); /控制两屏转换时间 单片机技术基础教程与实践作者:夏路易电子工业出版所有8.4 实时时钟芯片实时时钟芯片DS13028.4.1 DS1302工作原理工作原理 DS1302是低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V5.0V。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。采用三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。D
23、S1302具有主电源与后备电源引脚,同时提供了对后备电源进行涓细电流充电的能力。该芯片在保留RAM数据或是时钟信息的情况下,芯片功耗很低,小于1W。1. DS1302具有如下特点(1)对年、月、日、周日、时、分、秒进行计时,在2100年以前具有闰年补偿功能。(2)具有31 x 8 RAM。(3)三线串行通信。(4)2.0V到5.0V的工作电压。(5)在2.0V时的工作电流小于300nA。(6)对于时钟与RAM可以进行单字节或是多字节读写。(7)8引脚DIP封装与贴片封装。(8)VCC=5V时,I/O引脚与TTL兼容。(9)工作温度为-40C to +85C。 单片机技术基础教程与实践作者:夏路
24、易电子工业出版所有VCC21X12X23GND4CE5I/O6SCLK7VCC18DS1302电源控制R1输入移位寄存器R2命令与控制逻辑R3实时时钟RAMX1X2时钟与分频31 x 8VCC1VCC2GNDI/OSCLKCE. DS1302由电源控制、输入移位寄存器、命令与控制逻辑、振荡与分频、实时时钟与RAM等模块组成,其中输入移位寄存器用于输入和输出命令与数据,命令与控制逻辑用于解释命令并控制读写时钟与RAM的操作;振荡器产生时钟,分频成1s的脉冲后输入实时时钟模块生成秒、分、时、日期、月、星期和年。单片机技术基础教程与实践作者:夏路易电子工业出版所有 该芯片有8个引脚,其中Vcc1为后
25、备电源引脚,Vcc2为主电源引脚。在主电源关闭的情况下,后备电源也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。 CE是复位/片选输入线,CE为高电平启动读写数据操作。该电阻具40k电阻下拉到地线。 I/O为串行数据输入输出引脚(双向)。该引脚与地之间有40k的下拉电阻。 SCLK是时钟输入引脚。该引脚有40k的下拉电阻到地。 X1和X2引脚用于外接32.768kHz晶振。由于内部已经集成了6pF的电容,因此外部不需要再连接电容 R1C1C2R2分频实
26、时时钟晶体X1X251单片机CEI/OSCLKVCC1VCC2VCC晶体X1X2.单片机技术基础教程与实践作者:夏路易电子工业出版所有4. 命令字节每一数据传送都需要由命令字节初始化,命令字节的最高位(位7)必须为1;位6为表示对时钟数据操作,为1表示对RAM数据操作;位15指定读写操作的寄存器;位0为0表示写操作,为1表示读操作;命令字节总是从最低有效位开始传送。命令字节格式如下: 位76543210 1RAMA4A3A2A1A0RDCKWR5. 芯片复位与时钟控制CE复位引脚有两种功能:第1是CE引脚接通控制逻辑,允许地址/命令序列送入移位寄存器;第2是CE引脚可以提供终止单字节或多字节数
27、据的传送。当CE为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。时钟周期是下降沿跟随上升沿的序列,对于数据输入,则在时钟上升沿时数据必须有效,输出数据时,数据在时钟的下降沿输出。如果在传送过程中CE引脚置为低电平,则会终止此次数据传送,使I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,CE必须保持低电平。只有在SCLK为低电平时,才能将CE置为高电平单片机技术基础教程与实践作者:夏路易电子工业出版所有6. 数据输入紧跟写命令字节后的8个SCLK之后的8个SCLK周期的上升沿将数据写入DS1302,数据从低位开始写入。7. 数据输出紧跟写命令字节后的8个SCLK之后的8个
28、SCLK周期的下降沿,数据从DS1302输出。输出的第1个数据位出现在写命令字节的最后1位后的第1个下降沿。A0A1A2A3A41R/CR/WD0D1D2D3D4D5D6D7CESCLKI/OA0A1A2A3A41R/CR/WD0D1D2D3D4D5D6D7CESCLKI/O单字节写时序单字节读时序.单片机技术基础教程与实践作者:夏路易电子工业出版所有8.多字节方式读与写 通过对地址31寻址(地址命令位15全为1),则可以对时钟和RAM寄存器实现多字节读写操作,又称为突发模式,同样,地址命令位6选择时钟或是RAM,而位0选择读或者写。在多字节操作方式下,不能操作地址为931的时钟寄存器,也不能
29、操作地址为31的RAM寄存器。在多字节读写操作中,从地址0的0位开始。9. 时钟 时间与日期可以通过读DS1302的某些字节得到,通过写某些寄存器字节可以设置时间和日期,这些寄存器如表8-6所示。 每个寄存器都有读地址与写地址,前七个寄存器为:秒、分、小时、日期、月、星期、年,随后是写保护寄存器和充电控制寄存器。时间和日期以BCD格式保存。 小时寄存器的第7位为1,为12小时模式,位5显示AM/PM,当位5为1时,表示PM,为0时,表示AM。位7为0时是24小时模式,这时位5是小时的高位。 秒寄存器的第7位,为时钟暂停位(CH),该位为1时,时钟停止,DS1302处于低功耗状态,消耗电流为10
30、0nA,该位为0时,时钟启动。 控制寄存器的第7位(WP)是写保护位,该位为0才能写时钟与RAM寄存器操作,为1时,阻止写操作。上电后该位状态不定,所以需要写操作前应该先清除该位。 单片机技术基础教程与实践作者:夏路易电子工业出版所有24AM读写位7位6位5位4位3位2位1位0范围81H80HCH(暂停)秒(十位)秒(个位)00-5983H82H 分(十位)分(个位)00-5985H84H12/0小时(十位)/PM小时(十位)小时(个位)1-12/0-2387H86H00日(十位)日(个位)1-3189H88H000月(十位)月(个位)1-128BH8AH00000星期1-78DH8CH年(十
31、位)年(个位)00-998FH8EHWP000000091H90HTCS3TCS2TCS1TCS0DS1DS0RS1RS0单片机技术基础教程与实践作者:夏路易电子工业出版所有10. 充电控制寄存器充电控制电路与充电控制寄存器之间的关系如下所示 R12kR24kR38kVCC1VCC2TCS0TCS1TCS2TCS3DS0DS1RS0RS13选12选1位0位1位2位3位4位5位6位716选1(只有1010有效)充电使能二极管个数选择电阻选择. 控制寄存器中的高4位必须是1010,才能闭合开关使能充电;位3和位2用于选择二极管,DS1、DS0=01时选择1个二极管,DS1、DS0=10时选择2个二
32、极管,若DS1、DS0值为11或是00时,不能充电;位1和位0选择串联电阻,ROUT1、ROUT2=01时选择2k,ROUT1、ROUT2=10时选择4k,ROUT1、ROUT2=11时选择8k,若ROUT1、ROUT2=00时,不能充电。例如,选择1个二极管,选择4k电阻,则寄存器内容应该为1010 01 10=a6H。 单片机技术基础教程与实践作者:夏路易电子工业出版所有CE1A0R/WD0D7SCLKI/OtcctDCtCDHtCLtCHtCCZtCDZtRtFtCDD写命令字节读数据字节.CE0A01D0D7SCLKI/OtcctDCtCDHtCLtCHtCCHtCWHtRtF写命令字
33、节写数据字节.单片机技术基础教程与实践作者:夏路易电子工业出版所有8.4.2 实际使用实际使用DS1302的例题的例题 例题8-10 检查DS1302芯片是否工作。当DS1302芯片与51单片机连接后,使用如下简单程序可以检测DS1302是否工作。当DS1302正常工作时,可以在数码管上看到秒值增加。DS1302与51单片机的接线如下所示。p1.01p1.12p1.23p1.34p1.45p1.5(MOSI)6p1.6(MISO)7p1.7(SCK)8RST9p3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3
34、.6(WR)16P3.7(RD)17XTAL218XTAL119VSS20P2.0(A8)21P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN29ALE(PROG)30EA(VPP)31VCC40P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)3989S51U1.VCCVCC21X12X23GND4CE5I/O6SCLK7VCC18DS1302U3DS1302X
35、TAL132768Cch100uFVCC.单片机技术基础教程与实践作者:夏路易电子工业出版所有源程序如下:#include /该例从P0和P1输出秒信号sbit iow=P35; /定义数据引脚 sbit wce=P36; /定义复位/使能引脚sbit wclk=P37; /定义时钟引脚sbit a0=ACC0; /累加器各位定义sbit a1=ACC1;sbit a2=ACC2;sbit a3=ACC3;sbit a4=ACC4;sbit a5=ACC5;sbit a6=ACC6;sbit a7=ACC7;void wr_ds1302(unsigned char dd) /向DS1302写入
36、一个字节的函数ACC=dd; /将命令与数据送到累加器iow=a0;wclk=1;wclk=0; /将欲写位放在iow引脚,然后产生时钟上升沿,向DS1302写入一个位a0iow=a1;wclk=1;wclk=0;iow=a2;wclk=1;wclk=0;iow=a3;wclk=1;wclk=0;iow=a4;wclk=1;wclk=0;iow=a5;wclk=1;wclk=0;iow=a6;wclk=1;wclk=0;iow=a7;wclk=1;wclk=0;单片机技术基础教程与实践作者:夏路易电子工业出版所有unsigned char rd_ds1302(void) /从DS1302读出一
37、个字节的函数iow=1; /使iow引脚输出1,成为输入引脚a0=iow; /从DS1302读出一个位a0wclk=1;wclk=0;a1=iow; /使时钟引脚产生下降沿,然后,将DS1302输出的位赋予a1wclk=1;wclk=0;a2=iow;wclk=1;wclk=0;a3=iow;wclk=1;wclk=0;a4=iow;wclk=1;wclk=0;a5=iow;wclk=1;wclk=0;a6=iow;wclk=1;wclk=0;a7=iow; /读出位a7return(ACC); /返回累加器中的内容unsigned char read_clock(unsigned char
38、ord) /从DS1302芯片中某地址读出一个字节数据 unsigned char dd=0;wclk=0; /初始化DS1302 wce=0;wce=1; wr_ds1302(ord); /向DS1302写入命令dd=rd_ds1302(); /从DS1302读出一个字节数据wce=0; /结束操作wclk=1;return(dd);单片机技术基础教程与实践作者:夏路易电子工业出版所有void write_clock(unsigned char ord,unsigned char dd) /向DS1302中某地址写入一个字节的函数wclk=0; /初始化DS1302 wce=0;wce=1;
39、wr_ds1302(ord); /向DS1302写入命令 wr_ds1302(dd); /向DS1302写入数据wce=0; /结束操作wclk=1; unsigned char code table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90 ,0 x88,0 x83,0 xc6,0 xA1,0 x86,0 x8e; /数码管译码数组单片机技术基础教程与实践作者:夏路易电子工业出版所有void main(void) /主函数unsigned char address,d,temp1,xs1,xs2;address=0
40、; d=0 x00; write_clock(0 x8e|address,d); /清除写保护位WP address=0;d=0 x7f; write_clock(0 x80|address,d); /秒寄存器位7清0,启动DS1302,while(1) address=1; /读秒寄存器操作d=read_clock(0 x80|address); temp1=d;xs1=temp1 & 0 x0f; /取出秒数据的低4位,temp1=temp14; /将秒数据左移4位xs2=temp1&0 x07; /取出秒的高3位,P0=tablexs1; /P0口显示秒低位, P1=ta
41、blexs2; /P1口显示秒高位。单片机技术基础教程与实践作者:夏路易电子工业出版所有例题8-11读取DS1302时钟信息,单片机引脚直接扫描数码管,显示小时、分、秒。DS1302、51单片机与数码管的接线如图8-25所示,采用8位数码管直接扫描显示小时、分和秒。由图可知,P0口输出段码,P2口输出位选。由于是共阳极数码管,采用9012驱动,因此位驱动信号低电平有效,段驱动信号也是低电平有效。 p1.01p1.12p1.23p1.34p1.45p1.5(MOSI)6p1.6(MISO)7p1.7(SCK)8RST9p3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(
42、INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119VSS20P2.0(A8)21P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN29ALE(PROG)30EA(VPP)31VCC40P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)3989S51U1.VCCVCC21X12X23GND4CE5
43、I/O6SCLK7VCC18DS1302U3DS1302XTAL132768Cch100uFVCC.P3_2P3_3.P3_4VCCQP19012QP29012QP39012QP49012QP59012QP69012QP79012QP89012H1H2H3H4H5H6H7H8.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma2.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma1H1H2H3H4H5H6H7H8.510 x 8.15k x8单片机技术基础教程与实践作者:夏路易电子工业出版所有例题8-12 用3-8译码器74HC138位选的方式扫描数码管显示小时、分钟与秒。该例中DS13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽工商职业学院单招职业倾向性测试题库附参考答案详解(完整版)
- 2026年安徽工商职业学院单招职业倾向性考试题库附答案详解(能力提升)
- 2026年安徽工商职业学院单招职业技能考试题库及答案详解(有一套)
- 2026年安徽工商职业学院单招职业适应性测试题库含答案详解(综合卷)
- 2026年安徽工商职业学院单招职业适应性考试题库带答案详解(新)
- 2026年安徽工贸职业技术学院单招综合素质考试题库附参考答案详解(黄金题型)
- 2026年安徽工贸职业技术学院单招职业倾向性考试题库附答案详解(模拟题)
- 2026年安徽工贸职业技术学院单招职业技能考试题库及答案详解一套
- 2026年安徽工贸职业技术学院单招职业适应性测试题库含答案详解(综合卷)
- 2026年安徽工贸职业技术学院单招职业适应性考试题库附参考答案详解(培优)
- 森林抚育施工组织方案
- (2025年版)脊柱外科护理实践指南
- 提高门诊患者满意度PDCA课件
- 2025年江西省高职单招文化统一考试真题及答案
- 2026年中国藏语系高级佛学院招聘应届高校毕业生备考考试题库及答案解析
- 2025-2026学年山东省德州市六校联考高三(上)期末英语试卷
- 社会救助政策培训课件
- 规范村级公章制度
- 非语言沟通技巧在开颅术后患者护理中的应用
- 会计准则培训课件
- 痔疮教学课件
评论
0/150
提交评论