




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、20132014学年第2学期之迟辟智美创作单片机原理与应用课程设计报告学校:北华航天工业学院题目:可编程作息时间控制器设计专业:惺惺惜惺惺班级:Bxxxxx姓名:xxxxx学号:惺惺惜惺惺信息学、指导教师:XX电子工程系2013年6月14日可编程作息时间控制器设计任务书课题名称可编程作息时间控制器设计指导教师xx执行时间20132014学年第一学期第16周学生姓名学号承当任务ZzzZxxxx设计目的1、掌握汇编语言的基本结构及应用;2、掌握各个部份功能的设计及应用;3、学会使用protues软件进行电路仿真.设计要求1、依照给定的时间模拟控制实现上下课打铃、灯光控制(屏幕显示);2、具有各日期
2、和时钟显示.摘要本课题是应用AT89C52为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部份组成.它利用AT89C52的按时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性.AT89C52单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个设计的工作流程.整体性好,人性化强,可靠性高,实现了对时间控制的智能化,解脱了传统由人来控制时间的长短的方便,可对一些以24小时为周期的开关量进行自动控制.如上下课打铃及扩音设备的开与关.采纳AT89C52单片机来实现对上述开关量的控制,设有8位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时实时时
3、钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等特点.首先设计各个模块的屏幕显示,其次是各个模块需要调用的小法式,有PC机的日期和时钟,响铃声音,按键,屏幕显示以及延时的调用等等,最后是将各个功能模块与其中需要的小法式通过正确的汇编语言组建起来.这样便完成了源文件的建立.再通过.ASM源文件生成的.EXE可执行文件进行仿真.该仿真可以模拟实现:与PC机日期时钟坚持一致的显示功能,仿照已设定的响铃时间进行打铃功能,根据已设定的早晚作息时间灯光控制的功能,键盘输入修正响铃时间,随时手动按键实现响铃的功能.目录摘要-2-目录-4-第一章绪论-5-课题研究的目的与意义-5-研究内容及
4、采纳方法-5-1.2.1主要研究内容-5-1.2.2主要采纳方法-5-1.3课题的研究原理-6-第2章可编程作息时间控制器的方案设计-7-2.1总体方案组成框图及设计流程图-7-2.2具体步伐实施-9-2.2.1日期和时钟显示功能的设计-9-上下课打铃功能的设计-11-灯光显示功能的设计-14-修改响铃时间功能的设计-14-模拟手动控制功能的设计-15-第3章可编程作息时间控制器的protues仿真-17-3.1仿真结果-17-3.2性能及误差分析-19-附录-20-参考文献-27-第一章绪论1.1课题研究的目的与意义20世纪末,电子技术获得了飞速的发展.在其推动下,现代电子产物几乎渗透到了社
5、会的各个领域,有力的推动和提高了社会生产力的发展与信息化水平,同时也使现代电子产物性能进一步提升,产物更新换代的节奏也越来越快.时间对人来说总是那么珍贵,工作的忙碌性和繁杂让人容易忘记以后时间.然而遇到重年夜事情的时候,一旦忘记时间,就会给自己或他人造成更年夜的麻烦.对学校来说作息时间尤为重要.如今,在电子计算机基础上发展而来的可编程作息时间控制器,它可以利用电子计算机的内部时间,通过法式判断处置,完成对作息时间的精确控制,而且由于是法式控制,所以可通过改变法式而进而灵活改变作息时间,同时可以实时显示时间,并实现打铃功能.可编程时间控制器可实现对时间控制的智能化,解脱由人控制时间的长短分歧的方
6、便,而且可以在需要时人工切入控制,完美的满足作息时间控制.研究内容及采纳方法1.2.1主要研究内容用C语言编写作息时间控制法式,依照给定的时间模拟控制,上下课打铃、灯光控制(屏幕显示),而且具备日期和时钟显示.给定的时间可修改,可模拟手动控制,用扬声器模拟打铃.主要采纳方法通过汇编语言编程,先在数据段中开几段缓冲区,以寄存需要显示的提示信息以及存储PC机内部时钟日期等等,调用子法式的清屏部份来显示已经设定好的屏幕部份,再调用DOS的日期及时钟调用功能,读取PC机内部日期和时钟,并将数据存入显示缓冲区,然后调用时间和日期显示功能,把法式设计成用刷新的方式来不竭获取系统时间,这样就有了一秒一秒走动
7、的日期时钟显示,在此过程需要用到延时法式,所以把延时法式独自做成一个子法式,然后在需要的时候调用它,使得时间显示法式更加精炼,此时日期和时钟显示功能已经完成;而后设计灯光控制(屏幕显示),采纳比力跳转的方式即可,当达到设定的时间区域时通过比力来判断是亮灯还是灭灯;随后是上下课打铃的模拟,需要调用DOS显示功能,将设定好的时间在屏幕上显示出来,然后调用PC机内部时钟,判断时钟与给按时间是否相同,进而判断是否响铃,若响铃则调用设定好的响铃法式,并实现屏幕模拟显示;给按时间修改是调用键盘I/O中断功能号,获取键值的方法来进入,先确定应该修改哪个响铃,再将新的响铃时间数据存入要修改时钟的缓冲区,并将其
8、覆盖来实现;模拟手动控制、用扬声器模拟打铃,同样采纳调用键盘I/O中断功能号,获取键值的方法,判断是否与设定的手动按键相同,若相同则进入手动控制,进入后调用响铃法式,而后自动退出响铃,开始其他响应功能.课题的研究原理将按时闹钟改造为4路可调闹钟,从而实现打铃等功能.当四路闹钟中的任一路到时,均会点亮灯、打铃.如有需求,可对法式进行调整,增加闹钟的路数,及到时后的处置方式第2章可编程作息时间控制器的方案设计总体方案组成框图及设计流程图时间作息控制的主体电路应包括秒信号发生器、时间显示电路按键电路、供电电源以及闹铃指示电路等几部份.时间作息控制的系统组成框图如图2-1-1所示:图2-1-1时间作息
9、控制的系图位、时钟等电作息时间控制器的年夜致设计思路统组成框LED显示电路按钮电路声光指示电路图2调用清方案实施流程图具体步伐实施电源1割共电日期和时钟显示估厶匕帖、儿系统日期时间而且转二进功能的设计制为ACSII码日期和时钟显示流程图图2-2-1是时钟等的缓冲区,便于功能,将数据由二在数据段中开调日期和时钟的DOS功中和日期设计的年后续法式的使用,进制转换为ASCII码,存储并显示.厂显示日期、时间和界面数据段存储显示时间提示占|辟存储日期时间能调用中的显示图2-2示流程图开辟存储日期时间缓冲区设定和修正时间一代码段中调用日期、二进制转换瓚ASC11码存储动控冲区日期和时钟设计步伐分析该模块
10、设计中,先在数据段开了两段缓冲区,以存储显示日期和时间的提示Timeis以及从PC机读到的日期和时间.而后是调用DOS的日期功能,其功能号是2ah,日期分别存于ex,dx中,在该设计中调用出来的日期时间均是二进制数,如果要在界面中显示必需要转换成ASCII码.每一次数制转换后均要将转换后的数据存储于数据段开辟的存储缓冲区tbuf内,接下来即可调用DOS的的9号显示功能,只需将提示信息、日期及时间的存储缓冲区的偏移地址赋予dx,再使用DOS功能,调用9号的显示功能即可.这样,日期和时间的第一次显示时间完成,由于PC机的日期时间一直在变动,所以需要不竭调用PC机的显示时间并显示,因此需要再回转至最
11、初的调用日期法式,这样,显示日期时间的功能才真正完成.下面是针对数制转换和日期时间的显示做的更为细致的解读.数制转换通常在计算机傍边,从键盘输入的十进制数的每一位数码或者是向CRT输出的十进制的每一位数,均是以它的ASCII码暗示的.而在机器中的一个十进制数,是以相应的二进制数寄存或者是以BCD码的形式寄存因此,如果我们想将PC机中读取的日期时间显示到.EXE的界面中,必需将从中读取的二进制数转换为ASCII码.本设计是先将二进制数转换为十进制数,再将十进制数转换为ASCII码的,使其在屏幕上显示出来.由于调用该小法式段的显示数值都是十位数或个位数,所以该段小法式的设计思路是使用减法,统计需要
12、转换的数值中有几多10、1,即为十进制数中的十、个位上的数,然后将十进制数转换为ASCII码输出首先,在数据段中已经设计好了被减数,即const内的数据,用需要数据转换的数据已经在之前的数据中赋值给了ax,使用subax,si语句实现上述的减法,若不够减,则需要重复减,并累计次数,直至不够减为止,累计的次数即为该数据十位数的数值,此时仍旧通过ordI,30h语句转换为ASCII码,并将转换后的数据都存储于bx中.日期时钟显示功能9号DOS功能调用可实现日期时钟显示功能,由于需要在.EXE界面显示提示信息mess1中的相关内容,因此调用BIOS功能,置光标于0行0列,将ah赋值2即可置光标,dh
13、的赋值暗示行,dI的赋值暗示列,使用Ieadx,messI语句,将messI的偏移地址赋予dx,使用movah,9和int21h语句完成DOS的9号功能调用,这样.EXE界面就呈现了mess1中的相关内容;再使用BIOS功能调用,将光标置于17行21列显示日期时间的提示信息timeis,方法与上述介绍的相同,最后即可将光标置于17行37列,显示PC机的日期和时间.2.2.2上下课打铃功能的设计上下课打铃设计流程图如图是上下课打铃设计的年夜体思路,先于数据段设存储缓冲区,存储设定的响铃时间,将响铃时间由二进制换成ASCII代码,调用DOS的显示功能,显示响铃时间,再调PC机时间与设定的响铃时间比
14、力,相同时响铃,分歧时跳转数据段设存储缓冲区上下课打铃设计本部份设计息,tbufl响铃时定好的响铃时间设定好的响铃时是上下课打铃设计流程图V图步伐分析中,先在数据段开辟了四段缓冲区,分别是bel响铃提示信间存储区,timeh设定好的响铃吋间中小时的中的分钟存储区,进入代码段后,便开始将t间由二进制数转换成aSci代码,并将转换后的信息存于面显介绍铃这里便不再重复了.这是tbufl中已经tbufl,对数制转换的内容上文中界包括我最初设定将上述二十个响间进行比力,若述的显示、调用力的法式和响铃(1)PC机时间首先我将存存储区,timem设imeh和timem中的二十个响铃时间,使用DOS功能调用中
15、的铃时间显示在界面上随后需要调用PC机的时间与我设定的时相等则响铃,”响铃后返回,若吋间不同等样也返回,去重复上以及比力的过程接下来我会铃比力Pc机时间与我设定的时间比9号显示功能即可法式做较为细致的分析,与设定响铃时间比力储响铃时间的timeh和獅随后使用DOS功能调用语取,对pc机时间的读取;开始比力,先假设设定的响铃均已比PC机时间与设定好的响铃时间比力,进行比力直至将设定好的响铃时间均比力完毕,然后进行后续工作.(2)响铃功能设计分析IBMPC机系列计算机的发声系统主要由按时器/计数器8253/8254芯片来提以使该设计更加清晰明了.movah,2ch相同则跳转响铃法式em的偏移地址分
16、别赋给了si和di,int21h来完成PC机时间的读存于ch、cl中.接下来便,缓冲区后区时间为空,则应领先将,若不相等则继续响铃高音频信号,最后通过并行接口芯片8255的PB端口控制驱动电路使系统的扬声器发声.8253/8254芯片共有3个自力的计数通道,其中2号通道分配给系统的扬声器频率控制,它的I/.O端口地址为42H,8253/8254的工作方式与音频频率均由8253/8254的控制寄存器(I/O端口地址42H)控制.而且8253/8254有6种工作方式,对扬声器发声总是选用方式3,因此为了让发生器工作,需要通过moval,0b6h和out43h,al来完成音频频率的设置,通过mova
17、l,03h及out61h,al来开扬声器,实现响铃.灯光显示功能的设计修改响铃时间功能的设计2.2.4.1修改响铃时间设计流程图图2-2-3介绍了本模块的年夜体思路,首先在数据段设置存储时间的缓冲区,其次是调用键盘输入功能,算的修改响铃的个数和修改的起始位置,最后数据段修存铃时间缓冲计流程图224.2修改响铃在本模块设计中,首先需要在数据段中开辟出修正提示信一息和存储时间的该功能将输入的时间替代原时间完成修改响铃时间的功能.能,的前两位数缓冲区,当接收得手控修正响铃时键盘输入功能,调用键盘输入功能扫描到的键盘信息均存储于缓冲区内第一位为缓冲区位数,第二位为字符个数,将字符个数除以6即可获得修正
18、响铃的时间个数由于键盘输入字的意义是冲第几个响铃初开始修正改因响铃要将前两位数由ASCI码转换成十进制数,将转换获得的数据存储,对键盘输入时间替代原响铃时间功能的实现,需要根据前面获得的数据,先跳转至修正响铃时间的地址处,然后将键盘输入的响铃时间覆盖原时间,计算从第成上述获得修正响铃的个数为止.在模块的设计中计算修改几个响铃和应从第几个开始修改这两个小部份较为关键,下面是其更为详细的介_键盘输入时间取代原时间(1)计算修改几个响铃调用键盘输入功能,字符串存入缓冲区,第一位为缓冲区位数,第二位为字符个数,自第三位开始存储输入字符串,取缓冲区内第二个数值将其存于ax中,由于键盘输入的数据均为00,
19、00这种形式,所以每两个响铃时间均隔五个字符,因此movcx,06h和divex两语句即可获得修改响铃时间的个数.(2)计算从第几个开始修改调出键盘输入的前两位数字即可但由于键盘扫描的数字是以ASCII码形式暗示,而计算机中以二进制数形成存储,因此需要通过subdh,30h这种类似的语句进行数字转换,并通过地址循环递减的方式,找到需要修正响铃时间的地址.模拟手动控制功能的设计2.2.5.1模拟手动控制设计流程图图2-2-4介绍了本模块设计的年夜体思路,调用键盘I/O中断功能号1,进行键盘扫描,判断当扫描到Esc时,退出界面显示,为S或s实现响铃功能,即手动控制响铃.为C或c时,跳转至修改响铃时
20、间的法式段.模拟手动控制主要实现的功能是只要按下键盘的S或s键,便开始响铃,因此在设计时先要调用键盘I/O中断功能号1,获取键值到AL,然后将键值AL与lbh作比力,通过cmpal,lbh和jzquit判断是否按下Esc键,若是,则跳出.EXE的界面,若不是,则将键值AL与S、s分别作比力,通过cmpal,S以及cmpal,s和jzshou判断是否按下S或s键,若是跳转至响铃位置,即实现手动控制响铃的功能,若不是再通过cmpal,C以及cmpal,c和jzcorrect判断是否按下C或c键,若是则跳转至修改响铃时间的位置.第3章可编程作息时间控制器的protues仿真3.1仿真结果当K1被按下
21、一次后,“小时”显示的数码管就闪烁,其他位就没有变动,闪烁就说明可以对该位上进行“小时”上调整;当K1被按下两次后,“分钟”显示的数码闪烁并可以调整;当K1被按下三次后,“秒”显示的数码闪烁并可以调整.K2,K3分别作为调整时间时前进和后退把持.P2最后接的引脚到LED发光二极管上,当按键被按下时,该发光二级管就会被点亮.P3上接了一个喇叭和开关,当一按时间到了时,喇叭就会发声,开关可以控制喇叭发声.该作息时间控制器有四个按键:KI,K2,K3.初始加电时数码管显示时钟计数初值并运行.按K1键进行校时,可以分别按K2和K3键进行对时及分进行独自校时,使其校正到标准时间.时钟正常显示运行状态时,
22、按K2键显示闪烁并进行按时时间设置,按K1键和K3进行分和时的按时时间设定.该电路显示的误差主要由晶振自身的误差所造成,晶振的误差约为0.00010.000001.在软件的编程过程中所发生的误差比力小,另外在中断的过程中,只会在第一次计时时发生时间的偏移,而它所发生累计误差很小,可以忽略.综合以上分析,性能稳定.在整个设计过程中,充沛发挥人的主观能动性,自主学习,学到了许多没学到的知识.这次课程设计的制作过程是我的一次再学习,再提高的过程.在课程设计中我充沛地运用了年夜学期间所学到的知识.我从资料的收集中,掌握了很多单片机、LED数码管的知识,让我对我所学过的知识有所巩固和提高,而且让我对现今
23、单片机、LED的最新发展技术有所了解.在整个过程中,我学到了新知识,增长了见识.在今后的日子里,我仍然要不竭地充分自己,争取在所学领域有所作为.脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、享乐耐劳的精神是我在这次设计中最年夜的收益.我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很年夜的帮手.在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印.也练就了我的耐心,做什么事都在有耐心.此次课程设计中学了很多很多工具,这是最重要的.参考文献:1胡辉编著单片机原理与应用华北水利水电出书社,2008.源法式:#includereg52.h#
24、defineuintunsignedintucharnum=0;uchartemp=0;ucharcount=0;ucharaa,i,j;ucharhour,min,sec;#defineucharunsignedchar/记录按键KEY1的次数的变量/记录按时器0中断次数的变量/记录按时器1中断次数的变量ucharcodetable二0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;sbit_led=P27;sbitkey1=P20;sbitkey2=P21;sbitkey3=P22;sbitSPK=P30;sbitK1=
25、P37;voiddelay(uintz);/延时函数voiddisplay(uchara,ucharb,ucharc,uchard,uchare,ucharf,ucharaa);/显示函数voidread_key();/读按键函数voidled();/voidAlarm(uchart);/*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*i(C*jAKi*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*/iLfi-fjypppppp/voidmain()P2=0 xff;hour=6;min=29;sec=50;TMOD=Oxll;/同时控制按时器T1和
26、TO采纳模式1工作(16位计数器)THO=(65536-5OOOO)/256;TLO=(65536-5OOOO)%256;TH1=(65536-5OOOO)/256;TL1=(65536-5OOOO)%256;EA=1;ETO=1;ET1=1;TRO=1;/运行控制位TR1=1;SPK=O;while(1)if(hour=6)&(min=3O)&(sec=O)|(hour=8)&(min=OO)&(sec=O)|(hour=9)&(min=5O)&(sec=O)|(hour=1O)&(min=OO)&(sec=O)|(hour=11)&(min=5O)&(sec=O)|(hour=14)&(m
27、in=OO)&(sec=O)|(hour=15)&(min=5O)&(sec=O)|(hour=16)&(min=OO)&(sec=O)|(hour=17)&(min=5O)&(sec=O)|(hour=23)&(min=OO)&(sec=O)if(K1=1)Alarm(9O)Alarm(12O);Alarm(9O)Alarm(12O);read_key();if(temp=20)temp=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;if(count15)display(tablehour/10,tab
28、lehour%10,tablemin/10,tablemin%10,tablesec/10,tablesec%10,0 x00);/*显示函数*/voiddisplay(uchara,ucharb,ucharc,uchard,uchare,ucharf,ucharaa)if(num=0)P1=0 x24&aa;P0=0 xbf;delay(2);elseP1=0 x24;P0=0 xbf;delay(2);if(num=1)P1=0 x01&aa;P0=a;delay(2);elseP1=0 x01;P0=a;delay(2);/hourif(num=1)P1=0 x02&aa;P0=b;delay(2);elseP1=0 x02;P0=b;delay(2);/hourif(num=2)P1=0 x08&aa;P0=c;delay(2);elseP1=0 x08;P0=c;delay(2);/minif(num=2)P1=0 x10&aa;P0=d;delay(2);else二z)AepId沁戛oCJOXOHId一(NInnu)t。一;二z)AeppodO寸X0上d一二z)Ae
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外出销售管理办法
- 大学风险管理办法
- 大盘纸头管理办法
- 家庭商铺管理办法
- 外籍球员管理办法
- 夜景安全管理办法
- 安全体系管理办法
- 对账付款管理办法
- 山西野猪管理办法
- 大修流程管理办法
- 高炉炼铁专业400题及答案
- 译林版四年级英语上册全册课件【完整版】
- 四川省房产测绘实施细则(正式版)
- 六个盒子组织诊断步骤及流程详解
- 物候期观察记录表(竖向表)
- 达旗纪委监委“20点考吧”5月24日知识测试附答案
- GB/T 3884.5-2000铜精矿化学分析方法氟量的测定
- GB/T 18849-2011机动工业车辆制动器性能和零件强度
- 企业劳动用工法律风险防范课件
- 输电线路工程灌注桩基础施工方案
- Java程序设计全套课件完整版
评论
0/150
提交评论