《电子钟的设计》PPT课件.ppt
《《电子钟的设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《电子钟的设计》PPT课件.ppt(136页珍藏版)》请在三一办公上搜索。
1、微控制器应用技术II,高级应用技术,微控制器应用技术,微控制器应用技术主要内容,单片机内部资源基本应用,单片机应用技术提升,按键键盘辨识技术,显示技术(数码管、液晶),AD、DA转换技术,电机驱动技术,定时芯片温度采集数据存储,汇编语言与C51,电子钟设计,远距数据传送,密码锁的设计,数字电压表设计,信号发生器设计,AVR单片机应用定时器直流电机转速PWM控制一线数据采集,基于单片机的电子钟的设计,硬件设计单片机最小系统数码管LCD液晶按键定时芯片软件设计显示控制程序按键信息读取程序定时程序数据处理程序,八位数码管显示,八位数码管显示格式,共阴极数码管,共阳极数码管,八段管脚送上显示字符字形码
2、,公共端送低电平,八段管脚送上显示字符字形码,公共端送高电平,多位是数码管,轮流向数码管八段管脚送字型码,向显示位的公共端送低(高)电平,八位数码管显示,数码管与单片机连接最小系统数码管的限流与驱动,八位数码管显示,数码管与单片机连接,八位数码管显示,显示程序原理,RAM 地址+0+1+2+3+4+5+6+7,EEPROM地址,字形码表,显示的字符,+0+1+2+3+4+5+6+7+8+9+10,字符 0 1 2 3 4 5 6 7 8 9,字形码,位码,显示器,位码表,八位数码管显示,显示程序,P0口,P2口,unsigned char code ZXMtable11=0 xc0,0 xf9
3、,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf;unsigned char code WMtable8=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;unsigned char DisplayBuff8=2,3,10,5,9,10,5,6;void Display(void)unsigned char i;for(i=0;i8;i+)P0=ZXMtableDisplayBuffi;P2=WMtablei;Delay(10);P0=0 xff;P2=0 x00;,八位数码管显示,编程联
4、系:1、单片机控制共阴极数码管,设计驱动电路。2、编程使数码管显示21-14-563、设定hour=12,min=34,sec=21三个变量编程使数码管显示12-34-21,定时/计数器应用,6.3.1 定时/计数器的主要特性,定时计数器数量at89C51 2个T0,T1at89C52 3个 T0,T1,T22051:2个,工作方式:T0:4种T1:3种T2:3种,6.3.1 定时/计数器T0、T1的结构及工作原理,P3.5,P3.4,计数脉冲,计数脉冲,定时计数脉冲,定时器/计数器注意两个方面:1、由于它是加法计数器,每来一个计数脉冲,加法器中的内容加1个单位,当由全1加到全0时计满溢出,因
5、而,如果要计N个单位,则首先应向计数器置初值为X,且有:初值X=最大计数值(满值)M计数值N最大计数值(满值)计算:当定时器/计数器工作于R位计数方式时,最大计数值(满值)=2R。(R=13、16、8)最大计数值为8192、65536、256,2、当定时/计数器工作于计数方式时,对芯片引脚T0(P3.4)或T1(P3.5)上的输入脉冲下降沿计数,计一个输入脉冲下降沿需要两个机器周期。即每一个机器周期的S5P2时刻对T0(P3.4)或T1(P3.5)上信号采样一次,如果上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的S3P2时刻加1计数一次。因而需要两个机器周期
6、才能识别一个计数脉冲,所以外部计数脉冲的频率应小于振荡频率的1/24。,6.3.2 定时/计数器的方式和控制寄存器,一定时/计数器的方式寄存器TMOD,其中:M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下,C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。,GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。,若T0采用16位定时,T1不用:TMOD=?,若T0采用16位定时,T18位计数:TMOD=?,二定时/计数器的控制寄存器TCON,T1溢出标志,T0溢出标志,T1启动,T0启动
7、,位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H,外部中断控制位,1:启动0:停止,1:启动0:停止,1:定时计数到溢出0:定时未到,定时器T0启动:TCON=TCON|0 x10;TR0=1;,6.3.3 定时/计数器的工作方式,一方式0,方式0是13位的定时/计数方式,因而最大计数值(满值)为2的13次幂,等于8192。如计数值为N,则置入的初值X为:X=8192-N 如定时/计数器T0的计数值为1000,则初值为7192,转换成二进制数为,则TH0=11100000B,TL0=00011000B。,TH0=(8192-1000)/32TL0=(8192-1000)
8、%32,二方式1,方式1的结构与方式0结构相同,只是把13位变成16位,16位的加法计数器被全部用上。,由于是16位的定时/计数方式,因而最大计数值(满值)为2的16次幂,等于65536。如计数值为N,则置入的初值X为:X=65536-N如定时/计数器T0的计数值为1000,则初值为65536-1000=64536,转换成二进制数为,则TH0=11111100B,TL0=00011000B。,TH0=(65536-1000)/256TL0=(65536-1000)%256,P3.4或P3.5,三方式2,方式2下,16位的计数器只用了8位来计数,用的是TL0(或TL1)的8位来进行计数,而TH0
9、(或TH1)用于保存初值。当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面溢出信号又会触发图5.5上的三态门,使三态门导通,TH0(或TH1)的值就自动装入TL0(或TL1)。,由于是8位的定时/计数方式,因而最大计数值(满值)为2的8次幂,等于256。如计数值为N,则置入的初值X为:X=256-N 如定时/计数器T0的计数值为100,则初值为256-100=156,转换成二进制数为10011100B,则TH0=TL0=10011100B。注意:由于方式2计满后,溢出信号会触发三态门自动地把TH0(或TH1)的值装入TL0(或TL1)中,因而如果要重新实现N个单位的计
10、数,不用重新置入初值。,四方式3,方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3,方式3的结构如下图.方式3下,定时/计数器T0被分为两个部分TL0和TH0,其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。,二定时/计数器的应用,通常利用定时/计数器来产生周期性的波形。利用定时/计数器产生周期性波形的基本思想是:利用定时/计数器产生周期性的定时,定时时间到则对输出端进行相应的处理。如产生周期性的方波只
11、须定时时间到对输出端取反一次即可。,【例6-2】设系统时钟频率为12MHZ,用定时/计数器T0编程实现从P1.0输出周期为500s的方波。分析:从P1.0输出周期为500s的方波,只须P1.0每250s取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式2时,最大的定时时间为256s,满足250s的定时要求,方式控制TMOD寄存器应设定为00000010B(02H)。系统时钟为12MHZ,定时250s,计数值N为250,初值X=256-250=6,则TH0=TL0=06H。,汇编程序:ORG 0000HLJMP MAINORG 000BH;LJMP TIMER0ORG 0100H;
12、主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB EASETB ET0SETB TR0SJMP$/中断处理程序TIMER0:CPL P1.0RETIEND,C语言程序:#include sbit P1_0=P10;void main()TMOD=0 x02;/0000 0010TH0=0 x06;TL0=0 x06;EA=1;ET0=1;TR0=1;while(1);/中断服务程序void time0_int(void)interrupt 1 P1_0=P1_0;,(1)采用中断处理方式的程序:,6.3.4 定时/计数器的初始化编程及应用,一定
13、时/计数器的编程,设置工作方式寄存器TMOD,设置定时初值寄存器THx、TLx,开总中断EA=1,定时器中断ETx,启动定时器,TR0或TR1置1,编写定时器中断函数,编写查询定时到函数,void Timer_Initial()TMOD=/T0、T1工作方式TH0=/T0定时初值TL0=TH1=/T1定时初值TL1=ET0=/T0中断允许控制ET1=/T1中断允许控制EA=/单片机中断允许控制TR0=/根据需要T0启动控制TR1=/T1启动控制,void Timerx_Int(void)interrupt 1或3TH0=/T0重置定时初值TL0=/方式2不需要TH1=/T1重置定时初值TL1=
14、/方式2不需要。,定时计数器初始化函数模版,定时器中断函数模板,定时中断后需要完成的事情,定时器编程,例2 设计一个秒计数器。在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮1秒灭1秒周而复始,设晶振12 MHz。,基本思路:设置定时器定时10ms,并设计一个10毫秒计数器对定时10ms的次数计数,当10毫秒计数器的计数值达到100时,则1秒定时到。,#includeunsigned int Counter;sbit P17=P17;void Timer0_Init(void)TMOD=0 x10;/置T1工作方式 TH1=(65536-10000)/256;/T1送定时初值 T
15、L1=(65536-10000)%256;ET1=1;/定时器T1允许中断 EA=1;TR1=1;/启动T1void main(void)Timer0_Init();P17=1;while(1);,void Timer0(void)interrupr 3 TH1=(65536-10000)/256;TL1=(65536-10000)%256;Counter+;if(Counter=100)Counter=0;P17=P17;,主函数,T1中断函数,定时器编程练习:1、编程在单片机P1.0输出周期为10ms的方波。2、已知AT89S51单片机的系统时钟12MHz,请利用T0和P1.0输出矩形波脉
16、冲。波形如下:,电子钟程序设计,定时器中断函数,功能:10ms定时;计数;时、分、秒计时,主程序:完成定时器初始化和启动;完成时间数据处理;完成时间显示;,电子钟的计时编程,#define T=1void Timer1(void)interrupt 1 TH1=(65536-10000/T)/256;TH1=(65536-10000/T)/256;Count+;if(Count=200)Count=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;,基于MCS-51单片机电子钟的设计,设计一个电子钟,能够显示
17、时分秒,格式:小时分钟秒,该电子钟能够进行时分调整。当电子钟停走时,允许调时;当电子钟计时时,不允许调整时间。,中断法,void Counter1(void)interrupt 3TH1=0 xff;TL1=255;TR0=TR0;void Int0(void)interrupt 0if(TR0=0)hour+;if(hour=24)hour=0;void Int1(void)interrupt 2 if(TR0=0)min+;if(min=60)min=0;,两个按钮分别接至单片机的两个外部中断管脚INT0(P3.2)和INT1(P3.3),P3.2按钮调整小时;P3.3按钮调整分钟;第三个
18、按钮接计数器T1(P3.5),利用计数中断控制启动和停止。,void Read_Key(void)uchar key;key=P1,扫描法,按钮接至P1口的低三位(P1.0、P1.1、P1.2),分别判断按钮的按动的下降沿出现的次数。,延时消除按钮抖动,主函数,读入按键函数流程,按键分析函数流程,时间调整函数流程,闪烁控制函数流程,LCD电子钟,学习目标,2、LCD的使用:LCD驱动函数(API函数)void LCD_write_str(uchar x,uchar y,uchar*s),1、硬件:与单片机的连接电路,xLCD横坐标(列坐标016)yLCD纵坐标(行坐标01)s指向字符串的指针变
19、量,LCD电子钟,液晶显示器简称LCD显示器。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。,1 字符型点阵式LCD液晶显示器,目前市面上常用的有16字1行、16字2行、20字2行和40字2行等的字符液晶显示模块。以162字符型液晶显示模块RT-1602C为例,详细介绍字符型液晶显示模块的应用。,笔段式,字符点阵式,图形点阵式,字符点阵式,图形点阵式,RT-1602C采用标准的16脚接口,一字符型液晶显示模块RT-1602C的外观与引脚,LCD160
20、2的读写时序,数据写入LCD,读数据,二字符型液晶显示模块RT-1602C的内部结构,液晶显示模块RT-C1602C的内部结构可以分成三部份:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:,HD44780是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路。HD44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。HD44780集成电路的特点:1、可选择57或510点字符。2、HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)CGROM及用户自定义的字符发生器CGRAM全部内藏在芯片内。,字符发生存储器CGROM(ROM)存储了16
21、0个5X7不同的点阵字符图形和32个5x10字符,如图所示:,5X10,CGRAM字符发生器存放用户自定义的字符点阵,共有8个自行编程的任意5*7点阵字符图形。地址0 x000 x07,DDRAM显示数据存储器用于存放LCD当前要显示字符的代码,80字节,可以存放80个8位字符代码。,HD44780有80个字节的显示缓冲区DDRAM,分两行,地址分别为80H+(00H27H,40H67H),它实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示地址与实际显示位置的关系如图所示,LCD1602DDRAM,寄存器选择和显示器地址,LCD寄存器1、指令寄存器IR存放控制LCD
22、的指令2、数据寄存器DR存放显示的数据(字符代码)显示控制方法1、确定显示字符的位置(地址)将显示字符的地址送入IR2、将显示字符数据(代码)送入DR,LCD管脚RS用于选择寄存器IR和DR,LCD1602DDRAM,DDRAM,若想在LCD某个位置显示一个字符1、确定显示位置:将地址信息送入指令寄存器IR2、确定显示内容:将该字符对应的8位“代码”通过数据寄存器DR,写入与对应LCD位置的DDRAM中。,HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。8位连接方式,命令或数据一次写入,1、直接控制方式,RS BIT P2.0RW BIT P2.1E BIT P2.2
23、;写入数据在AWRI_D:SETB E MOV P0,ASETB RSCLR RWCLR ERET,sbit RS=P20sbit RW=P21sbit E=P22void WriteData(unsigned char D)E=1;P0=D;RS=1;RW=0E=0;,8位总线连接方式,WRI_D:MOV DPTR,#0fffdHMOVX DPTR,ARET,void Write_Data(unsigned char D)XBYTE0 xfffd=D;,1111 1111 1111 11010000 0000 0000 0001,5、HD44780具有简单而功能较强的指令集,可实现字符移动,
24、闪烁等显示功能。,4位连接方式,命令或数据从D4D7写入LCD分两次写入一个8位命令和数据。先写高4位,再写低4位。,Void Write_Data4(unsigned char D)E=1;RS=1;RW=0 P0=(P0,P0高四位清零低四位不变,D高四位不变低四位清零,LCD1602基本命令与驱动函数,LCD1602指、令:11条清屏、光标复位、输入方式设置、显示控制、光标移位等LCD驱动函数在LCD上某个位置写一个字符在LCD上显示一个字符串,三指令格式与指令功能,LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如表,总共有11条指令,它
25、们的格式和功能如下:,指令写入指令寄存器IR,数据写入数据寄存器DR,1清屏命令格式:,功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII 20H)。光标复位,回到显示器的左上角。地址计数器AC清零。,2光标复位命令格式:,01H,02H,3输入方式设置命令格式:,功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。当S=1时,内容移动,S=0时,内容不移动。,04H07H,4显示开关控制命令格式:,功能:控制显示的开关,当D=1时显示,D=0时不显示。控制光标开关,当C=1时光标显示,C=0时光
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟的设计 电子钟 设计 PPT 课件
链接地址:https://www.31ppt.com/p-5555319.html