单片机实训论文_第1页
单片机实训论文_第2页
单片机实训论文_第3页
单片机实训论文_第4页
单片机实训论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机实训(论文)题目名称:实时时钟显示系统 学生姓名: 学 号: 专 业: 自动化目 录0设计内容及意义11实时显示的总体设计方案12系统硬件电路设计2 2.1主控制器电路设计2 2.2其他电路设计33 问题与总结84 附录程序清单90设计内容及意义现在的实时控制系统已经由原来的是由模拟电路组成的闭环控制的系统和是由数字逻辑电路组成的顺序控制的系统,发展到现在的是由计算机系统控制的输出机实时控制的系统。实时计算机控制的系统是指在一定的时间内,对外来事件的作出正确的、快速的反应的系统。这类系统不仅与逻辑计算有关,还和时序的控制有关。显然,此类系统区别于其它普通计算机系统的关键特点是系统的实时性

2、。此外,环境信号的输入与输出的控制能力也是非常重要的。因为在实时控制计算机系统中,系统会直接从现场环境中采集各种需要的信号,然后对这些信号的变量进行处理,最后再把结果输出到执行的功能部件进行直接的控制或直接的显示。实时计算机控制系统总是直接控制着工业过程或其它重要过程中的操作,这就对可靠性提出了较高的要求。实时系统当然还具有诸如可扩展性、可维护性以及抗恶劣环境的能力。计算机实时控制系统现已在各行各业得到了广泛地应用,因此对它加以研究具有十分重要的意义。实时计算机控制系统应用广泛,形式多种多样。本文对实时控制中的实时显示这一功能进行进一步的研究。实时控制系统,相对于其他的控制系统,最重要的一点就

3、是实时。文中的实时,指的是对时间的显示。时间的显示包括对年月日,时分秒的显示。这些时间的显示,可以按照自己的需求进行进一步的设定。这个实时系统,可以是通过串口接收的上位机,接收上位机中的信号,根据需求来进行时间的显示,帮助系统实现实时的效果。同时,它可进行时间的独立显示。1实时显示的整体设计方案控制部分单片机(STC89C51RC)复位电路串口接收命令按键k1、k2、k3K4、k5、k6、k7、k8电源部分,交流220VLCD1602显示秒、分钟、小时日、月、年 RTC模块 时间计数图1.1 方案设计如图1.1所示,系统分为七个部分,单片机是整个系统的核心。当系统通电以后,220V的市电经变压

4、、整流、滤波和稳压后转换成5V直流电压,给MCU、RTC和LCD1602供电,电源指示灯指示此时供电正常。在程序中设置另一个指示灯每隔两秒闪烁一次,如果闪烁频率正常,则表明系统工作正常。此时DS1302在5V电压下正常工作起计时,MCU紧接着进行自检,在自检正确的情况下,循环读取DS1302中的数据,并在LCD1602中不断刷新时间数据。在首次给系统上电的时候,DS1302会将自身的寄存器全部初始化,为此我们设置了七个按键以方便对RTC进行时间的校准。我们可以有两种方式使系统获取定时的时间,一种是通过上位机的串口发送定时时间数据,另一种是通过系统自身的按键进行设置,确保在不与上位机进行通信的情

5、况下也能正常工作。2系统硬件电路设计2.1主控制器电路设计图2.1主控制器电路图图2.1中由市电接入,进行变压、整流、滤波和稳压后,转换为5V的电压,给STC89C51RC单片机进行供电。如果单片机工作正常的话,P2.7口接的LED就会一闪一闪的,否则单片机没有正常工作。这是由单片机组成的主要电路。2.2其他电路设计电源部分图2.2 电源电路图3.2的电路是一个很简单很常见的一个电源电路。当系统上电以后,220V的交流电经过变压器的变压,再经过整流桥的整流,最后经过稳压块的稳压后,最终可以输出5V的直流电,给单片机、液晶和RTC等部分供电。LED指示灯可以指示电源部分工作是否正常。复位电路设计

6、图2.3复位电路图2.3由于STC89C51RC这款单片机的内部集成复位电路,所以外部复位电路可以简单到只需一个电容和一个电阻组成,即构成RC积分电路,产生一个下降沿,使单片机复位成功。晶振电路设计图2.4 晶振电路1 图2.5晶振电路2晶振电路分为两个部分,图3.4是单片机的晶振电路,图3.5是RTC模块的晶振电路,自然这两部分的晶振数值是不一样的。单片机部分使用的11.0592MHZ的晶振,RTC模块则使用32.768KHZ晶振。在这部分晶振电路中,电容都起到了帮助晶振起振的作用。按键电路设计图2.6 按键电路图2.6中按键采用独立式按键设计。所谓独立式按键是指直接用I/O口线构成的单个按

7、键电路。每根I/O口线上按键的工作状态不会影响其他I/O口线的工作状态。八个按键占用一个P1口,出去一个按键控制液晶的现实与屏蔽,其余七个按键分别用来调整年、月、日、时、分、秒。RTC模块电路设计图2.7 RTC模块电路 在图2.7中DS1302由5V供电接入Vcc1,而有3V的电源接入Vcc2当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。在X1和X2处接入32.768KHZ晶振.串口电路设计该产品是由美信公司推出的一款兼容RS232标准的芯片。由于电脑串口RS232电平是-10V +10V,而一般的单片机应用系统的信号电压

8、是TTL电平0+5V,MAX232包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。图2.8 MAX232电路STC89C51RC芯片内有一个全双工的串行口,该串行口和其他标准串行口芯片一样,输入输出均为TTL电平。这种以TTL电平传输数据的方式,抗干扰性差,传输距离短。为了提高串行通讯的可靠性,增大通讯距离,一般采用标准串行接口,如RS-232C、RS-422A、RS-48

9、5等标准串行接口。 RS-232C的机械指标规定:RS-232C接口通向外部的连接器(插针插座)是一种“D”型25针插座。在微机通讯中,通常被使用的RS-232C接口只有九根引脚,见表2.9。 表2.9常用RS-232引脚功能引脚号符号方向功能2TXD输出发送数据3RXD输入接收数据4RTS输出请求发送5CTS输入清除发送6DSR输入数据通讯设备准备好7GND信号地8DCD输入数据载体检测20DTR输出数据终端准备好22RI输出振铃提示表2.10 MAX232芯片电气特性电气特性参数范围带37K负载时驱动器输出电平逻辑1:-3V-15V逻辑0:+3V+15V不带负载时驱动器的输出电平-25V+

10、25V驱动器通断时的输出阻抗>300输出短路电流<0.5A驱动器转换速率<30V/S接收器输入阻抗3K7K接收器输入电压允许范围-25V+25V输入开路时接收器的输出逻辑1输入经300接地时接收器的输出逻辑1+3V输入时接收器的输出逻辑0-3V输入时接收器的输出逻辑1最大负载电容2500PF图 2.11 MAX232芯片引脚配置3问题与总结本次单片机实训到目前为止已经结束,我也顺利的完成了自己的课题实时时钟显示系统的设计,由于大学期间学的都是些课本理论知识,实际接触的较少,刚开始拿到这个课题,感觉挺迷茫的,自己就学过C语言和51单片机,也就在这方面懂一点,其余的关于硬件电路,

11、液晶显示电路的驱动的什么都不知道,在网上找了一些资料对硬件电路的设计有了一定的了解,然后又去图书馆借阅了一些相关的书,在大脑里面有了一个大致的思路了,于是就把仿真软件装好开始了焊接调试,经过了辛苦的焊接和反复的调试,当看到液晶显示器上我自己做的时钟时,我觉得这一切付出都是值得的,同时也激起了我对单片机系统的兴趣。本次实训让我对单片机有了更深入的认识,现代社会中几乎处处都有单片机的影子,电子产品离不开它。单片机实训提高了我的单片机实际运用能力,也发现了自己以前学习的不扎实,对问题不求甚解,注重理论而忽视了实际操作。本次单片机实训能顺利完成,非常感谢指导老师的帮助。4附录:程序清单主函数源代码vo

12、id main(void)Timer0_System_Init();GXM1602_HD44780_initialize();Initial_DS1302(); GXM1602_HD44780_command(0x80);/DDRAM地址设置 GXM1602_HD44780_delay50us(0x01); GXM1602_HD44780_Print(GXM1602_HD44780_dis_Date); GXM1602_HD44780_delay50us(0x01); GXM1602_HD44780_command(0xc0);/DDRAM地址设置 GXM1602_HD44780_delay5

13、0us(0x01); GXM1602_HD44780_Print(GXM1602_HD44780_dis_Time); GXM1602_HD44780_delay50us(0x01); while(1) DS1302_GetTime(&CurrentTime);DateToStr(&CurrentTime);TimeToStr(&CurrentTime);GXM1602_HD44780_command(0x80|0x06);GXM1602_HD44780_Print(CurrentTime.DateString);GXM1602_HD44780_command(0xc0

14、|0x06);GXM1602_HD44780_Print(CurrentTime.TimeString);GXM1602_HD44780_delay1ms(200);void Timer0_Routine() interrupt 1TH0=(65536-10000*110592/120000)/256; /计算初值TL0=(65536-10000*110592/120000)%256; /计算初值KEY_Scan(&CurrentTime);DS1302源代码void DS1302InputByte(unsigned char d) /实时时钟写入一字节(内部函数) unsigned

15、char i; ACC = d; for(i=8; i>0; i-) DS1302_IO = ACC0; /相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC >> 1; unsigned char DS1302OutputByte(void) /实时时钟读取一字节(内部函数) unsigned char i; for(i=8; i>0; i-) ACC = ACC >>1; /相当于汇编中的 RRC ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; r

16、eturn(ACC); void Write1302(unsigned char ucAddr, unsigned char ucDa)/ucAddr: DS1302地址, ucData: 要写的数据 DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); / 地址,命令 DS1302InputByte(ucDa); / 写1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; unsigned char Read1302(unsigned char ucAddr)/读取DS130

17、2某地址的数据 unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); / 地址,命令;最低位要为1 ucData = DS1302OutputByte(); / 读1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; return(ucData);void DS1302_SetProtect(bit flag) /是否写保护if(flag)Write1302(0x8E,0x80);elseWrite1302(0x8E,0x0

18、0);void DS1302_SetTime(unsigned char Address, unsigned char Value) / 设置时间函数DS1302_SetProtect(0);Write1302(Address, (Value/10)<<4 | (Value%10); void DS1302_GetTime(SYSTEMTIME *Time)unsigned char ReadValue;ReadValue = Read1302(DS1302_SECOND);Time->Second = (ReadValue&0x70)>>4)*10 +

19、(ReadValue&0x0F);ReadValue = Read1302(DS1302_MINUTE);Time->Minute = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_HOUR);Time->Hour = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_DAY);Time->Day = (ReadValue&am

20、p;0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_WEEK);Time->Week = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_MONTH);Time->Month = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);ReadValue = Read1302(DS1302_YEAR);Time-&

21、gt;Year = (ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);void DateToStr(SYSTEMTIME *Time)Time->DateString0 = Time->Year/10 + '0'Time->DateString1 = Time->Year%10 + '0'Time->DateString2 = '-'Time->DateString3 = Time->Month/10 + '0'Time-&g

22、t;DateString4 = Time->Month%10 + '0'Time->DateString5 = '-'Time->DateString6 = Time->Day/10 + '0'Time->DateString7 = Time->Day%10 + '0'Time->DateString8 = '0'void TimeToStr(SYSTEMTIME *Time)Time->TimeString0 = Time->Hour/10 + '0&

23、#39;Time->TimeString1 = Time->Hour%10 + '0'Time->TimeString2 = ':'Time->TimeString3 = Time->Minute/10 + '0'Time->TimeString4 = Time->Minute%10 + '0'Time->TimeString5 = ':'Time->TimeString6 = Time->Second/10 + '0'Time->T

24、imeString7 = Time->Second%10 + '0'Time->DateString8 = '0'if(Time->TimeString1='8')&&(Time->TimeString3='0')&&(Time->TimeString3='0')LED1 = 0;void Initial_DS1302(void) unsigned char Second;DS1302_RST = 0; DS1302_CLK = 1; DS1302_RS

25、T = 1;Second=Read1302(DS1302_SECOND);if(Second&0x80) DS1302_SetTime(DS1302_SECOND,0);/设置起始时间LCD1602源代码void GXM1602_HD44780_command(uchar command_data)GXM1602_HD44780_E=0;GXM1602_HD44780_RW=0;GXM1602_HD44780_RS=0; GXM1602_HD44780_E=1; GXM1602_HD44780_DBPort=command_data; GXM1602_HD44780_delay1ms(

26、0x02); _nop_(); GXM1602_HD44780_E=0; GXM1602_HD44780_RS=1; GXM1602_HD44780_RW=1;void GXM1602_HD44780_data(uchar w_data) GXM1602_HD44780_RS=1; GXM1602_HD44780_RW=0; GXM1602_HD44780_E=1; GXM1602_HD44780_DBPort=w_data; GXM1602_HD44780_delay50us(0x02); _nop_(); GXM1602_HD44780_E=0; GXM1602_HD44780_RS=0;

27、 GXM1602_HD44780_RW=1;void GXM1602_HD44780_read_busy() do GXM1602_HD44780_RS=0; GXM1602_HD44780_RW=1; GXM1602_HD44780_E=1; status=GXM1602_HD44780_DBPort; GXM1602_HD44780_delay50us(0x02); GXM1602_HD44780_delay50us(0x02); while(status_busy); _nop_(); GXM1602_HD44780_E=0; GXM1602_HD44780_RS=0; GXM1602_HD44780_RW=1; void GXM1602_HD44780_initialize() uchar data i; GXM1602_HD44780_DBPort=0; for(i=0;i<3;i+) GXM1602_HD44780_command(0x38)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论