单片机旋转时钟结题报告

合集下载

基于单片机的旋转时钟设计讲解

基于单片机的旋转时钟设计讲解

学士学位毕业设计(论文)基于单片机的旋转时钟设计学生姓名:王小明指导教师:韩老师所在学院:信息技术学院专业:电气工程及其自动化Xxxxxxx大学中国·xx2011 年 5 月Xxxxxxx 大学本科毕业设计(论文)任务书学生姓名 王小明 所在班级 电气2007级(3)班导师姓名 韩老师 导师职称 副教授论文题目 基于单片机的旋转时钟设计题目 分类1.应用与非应用类:〇工程 〇科研 〇教学建设 〇理论分析〇模拟 2.软件与软硬结合类:〇软件〇硬件〇软硬结合〇非软硬件 (1、2类中必须各选一项适合自己题目的类型在〇内打√)主要研究内容及指标:在稳定旋转地载体上安装20个LED 发光器件,静止时,各列发光管等间距分列排开,随着扫描速度的加快,在计算机软件精确的时序控制下,不断扫描出预设的时间,文字,图案等。

主要参考文献:[1]Fan yang,Guoping Li,Huipeng Li.Design&Development Of A Remote TemperatureMonitor Systems Of Web Using Virtual Instruments.advancesincomputer,information,and systems sciences and engineering.2006[2]张迎新等.单片机初级教程——单片机基础.北京:北京航空航天大学出版社.2006 [3]周坚.单片机C 语言轻松入门.北京:北京航空航天大学出版社.2006[4]周兴华.手把手教你学单片机C 语言程序设计.北京:北京航天航空大学出版社.2007阶段规划:2010年12月20日——2011年1月20日 温习单片机的理论知识 2011年1 月 21日——2011年2月22日 温习单片机编程理论知识 2011年2 月 23日——2011年3月12日 温习Protel DXP 基础理论 2011年3 月 13日——2011年3月19日 购买电子元件2011年3 月 20日——2011年4月25日 PCB 设计硬件焊接及软件编程 2011年4 月 26日——2011年5月15日 整理论文准备答辩开题时间 2010年12月20日 完成论文时间2011年5月21日专家审定意见:系主任签字:2010年12月13日 注:1.任务书由指导教师填写后交给学生,要求学生妥善保存。

单片机电子时钟(LCD显示)综合实验报告

单片机电子时钟(LCD显示)综合实验报告

单片机综合实验报告题目:电子时钟(LCD)显示一、实验内容:以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:●使用字符型LCD显示器显示当前时间。

●显示格式为“时时:分分:秒秒”。

●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。

功能键K1~K4功能如下。

●K1—进入设置现在的时间。

●K2—设置小时。

●K3—设置分钟。

●K4—确认完成设置。

程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。

二、实验电路及功能说明1)单片机主控制模块以AT89C51单片机为核心进行一系列控制。

2)时钟显示模块用1602为LCD显示模块,把对应的引脚和最小系统上的引脚相连,连接后用初始化程序对其进行简单的功能测试。

测试成功后即可为实验所用,如图:3)时间调整电路用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。

功能键K1~K4功能如下。

K1—进入设置现在的时间。

K2—设置小时。

K3—设置分钟。

K4—确认完成设置。

如图:三、实验程序流程图:主程序:时钟主程序流程子程序:四、实验结果分析实验结果及分析:单片机的晶振可以根据要求设定。

6MHZ为和现实时间显示相同。

实验采用12MHZ晶振采用方式1定时,选取50ms采用20次中断达到一秒,采用查表方式控制LCD显示。

当烧入程序后开始运行,根据初始值设定可以观察到显示的时间,这里为了更明显观察显示数据变化把起始值设为23:59:50 运行后显示,K1为进入现在设置时间,当按下K1后显示,和实验要求相比较,实现了按下K1进入现在时间设置,按下K4确认完成时间设置的功能;不同之处: 当进入时间设置时在按下K1设置小时,再次按下K1是设置分钟。

增加功能:进入时间设置并选择设置位置后K2键位数字增加功能,K3键为数字减小功能。

根据仿真结果能够确定编程正确,基本实现了所有功能,而且有所改进。

推荐-基于PIC16F877的LED旋转时钟单片机设计实验报告 精品

推荐-基于PIC16F877的LED旋转时钟单片机设计实验报告  精品

20XX年小学期单片机设计实验报告题目:基于PIC16F877单片机的LED旋转时钟班级:学号:班内序号:实验组号:学生姓名:指导教师:基于PIC16F877单片机的LED旋转时钟――班实验摘要本次我们制作的基于PIC16F877单片机的LED旋转时钟是能够输入、显示时间的时钟。

结构新颖,效果奇特。

加入了现代科技的元素,利用人眼的视觉暂留特性,解决了传统时钟结构单一,显示效果固定的缺陷,更好了满足了人们对美的追求。

整个系统中,微控制器采用了Microchip公司的PIC16F877,软件设计中涉及PORTA用作普通数字I/O脚控制按键输入,PORTB、PORTC控制灯的亮灭,PORTD向时钟芯片DS1302写入和读出时间。

概括来说,本实验就是用人眼的视觉暂留特性,用PIC16F877单片机作为主控芯片,采用电机带动发光二极管高速旋转,利用频闪显示原理呈现时钟画面。

A b s t r a c tIn this experiment, we made a LED rotating clock base on PIC16F877 MCU. It can input and show time. Its structure is novel and its effect is amazing. It’s full of modern technology element. With human eyes’ persistence of vision, it solves traditional clock’s structure and effect’s disadvantage, fits human pursue for beauty better.The system uses the production of the Microchip cord--PIC16F877. The design includes the drive of PORTA as general digital ports to input time, the drive of PORTB and PORTC to control the LED’s on, the drive of PORTD to write and read time on DS1302.In conclusion, with human eyes’ persistence of v ision, this experiment uses PIC16F877 MCU as master chip, uses motor to drive LED rotate at high speed, uses strobe display principle to show the clock.关键字单片机——microcontroller 芯片——CMOS chipLED旋转时钟-- LED rotating clock一.实验论证与比较1.LED显示模块LED的特点非常明显,寿命长、光效高、无辐射与低功耗。

单片机数字时钟实验报告

单片机数字时钟实验报告

数字时钟实验报告一、实验目的:通过实验进一步深刻理解单片机最小系统的工作原理。

着重掌握中断和定时器的使用,以及读键盘和LED显示程序的设计(具体设计在后面会涉及到)。

培养动手能力。

二、实验内容:使用单片机最小系统设计一个12小时制自动报时的数字时钟。

三、功能描述:★使用低六位数码管显示时、分、秒、使用第七位表示上午和下午。

符号A表示上午;符号P表示下午。

★通过按键分别调整小时位和分钟位。

★到达整点时以第八位数码管闪烁的方式报时,使用8作为显示内容。

★考虑整点报时功能。

四、设计整体思路以及个别重点部分的具体实现方式:下面这幅图展示主函数的流程下面描述的是调用T0中断时所进行的动作显示更新的函数具体见下面这幅图我们还一个对键盘进行扫描以获得有效键盘值,其具体的实现见下面这幅图● 要实现时钟的运行和时间的调整,我的设计思路是这样的:由于T0中断的时间间隔是4ms,那么我可以设置一个计数器i,在每次进入中断时进行加一调整,当i计满面250时就将时钟我秒的低位加一。

然后根据进位规则,对其后的各位依次进行调整。

●要实现整点报时功能,则可以根据时位是否为0判断是否要闪烁显示字符8。

至于闪烁的具体实现方式,见源程序。

至此,本实验的设计思路己基本介绍完毕。

下面就是本次实验的源程序代码。

/*********************************************************//** 数字时钟程序**//** **//*********************************************************/#include <absacc.h>#include <reg51.h>#define uchar unsigned char#define uint8 unsigned char#define uint16 unsigned int#define LED1 XBYTE [0xA000] //数码管地址#define LED2 XBYTE [0xA001]#define LED3 XBYTE [0xA002]#define LED4 XBYTE [0xA003]#define LED5 XBYTE [0xA004]#define LED6 XBYTE [0xA005]#define LED7 XBYTE [0xA006]#define LED8 XBYTE [0xA007]#define KEY XBYTE [0xA100] //键盘地址bit ap=0;//上下午int i=0;//计数器uchar data clock[7]={0,0,0,0,0,0,0};/*扫描键盘使用的变量 */sbit first_row = P1^4; //键盘第一行控制sbit second_row = P1^3; //键盘第二行控制bit first_getkey = 0,control_readkey = 0; //读键盘过程中的标志位bit getkey = 0; //获得有效键值标志位等于1时代表得到一个有效键值bit keyon = 0; //防止按键冲突标志位uchar keynum = 0; //获得的有效按键值寄存器/*数码管显示使用的变量和常量*/uchar lednum = 0; //数码管显示位控制寄存器uchar led[8] = {0,0,0,0,0,0,0,0}; //数码管显示内容寄存器uchar code segtab[18] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8c,0xff}; //七段码段码表// "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D","E", "F", "P" ,"black"void leddisp(void); //数码管显示函数void readkey(void); //读键盘函数void intT0() interrupt 1 //T0 定时中断处理函数{TH0 = -2720/256; //定时器中断时间间隔 4msTL0 = -2720%256;if((clock[2]==0)&&(clock[3]==0)&&(i==125)&&(clock[5]<=5)&&(clock[4]==0))led[7]=17;if((clock[2]==0)&&(clock[3]==0)&&(i==0)&&(clock[5]<=5)&&(clock[4]==0))led[7]=8;i=i+1;if(i==250){if((clock[2]==0)&&(clock[3]==0)&&(clock[4]==0)&&(clock[5]==0)&&(clock[6]==0)){ap=!ap;if(ap==0)led[6]=10;if(ap==1)led[6]=16;}clock[5]=clock[5]+1;i=0;}if(clock[5]==10){clock[5]=0;clock[4]=clock[4]+1;}if(clock[4]==6){clock[4]=0;clock[3]=clock[3]+1;}if(clock[3]==10){clock[3]=0;clock[2]=clock[2]+1;}if(clock[2]==6){clock[2]=0;clock[6]=clock[6]+1;}if(clock[6]==12){clock[6]=0;}clock[0]=clock[6]/10;clock[1]=clock[6]%10;led[5]=clock[0];led[4]=clock[1];led[3]=clock[2];led[2]=clock[3];led[1]=clock[4];led[0]=clock[5];leddisp(); //每次定时中断显示更新一次if(control_readkey == 1) //每两次定时中断扫描一次键盘{readkey();}c ontrol_readkey = !control_readkey;}void main(void){TMOD = 0x01; //TH0 = -2720/256; //定时器中断时间间隔 4msTL0 = -2720%256;TCON = 0x10;ET0 = 1;EA = 1;while(1){if(getkey == 1) //判断是否获得有效按键{getkey = 0;switch(keynum) //判断键值,对不同键值采取相应的用户定义处理方式{case 0x01: //当按下第一行第二列键时,分加一clock[3]=clock[3]+1;break;case 0x02: ////当按下第一行的第三列键时,分减一clock[3]=clock[3]-1;break;case 0x03://当按下第一行的第四列时,时加一clock[6]=clock[6]+1;break;case 0x04:clock[6]=clock[6]-1; //当按下第一行的第五列时,时减一break;default:break;}}}}/***************************************************键盘扫描函数原型: void readkey(void);功能: 当获得有效按键时,令getkey=1,keynum为按键值****************************************************/void readkey(void){uchar M_key = 0;second_row = 0;M_key = KEY;if(M_key != 0xff) //如果有连续两次按键按下,认为有有效按键按下。

单片机数字钟设计总结

单片机数字钟设计总结

单片机数字钟设计总结第一篇:单片机数字钟设计总结单片机数字钟设计总结经过一周的课程设计,我收获颇多,有深刻的心得体会。

实训让我们受益匪浅。

首先是关于单片机方面的。

我们学到了许多关于单片机系统开发的知识,从最开始选题到最后的结题,更使我们得到了充分的锻炼。

其次,它让我体会到了什么才是teamwork spirit。

一如:团队管理的经验、团队意识的提升和协调能力等等,这些都会让我们终身受益。

通过此次课程设计,使我更加扎实的掌握了有关电子线路单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查我终于找出了问题所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践才能出真知,实践才是检验真理的唯一标准,唯有通过亲自动手制作,才能令我们掌握的知识不再是一些纸上谈兵的东西。

在这次的课程设计中,我们遇到了很多困难,过程很艰难,但是我们都克服了,这是对我们自己的肯定。

我们不断发现错误,不断改正,不断领悟,不断获取。

我们也曾灰心,也曾茫然,也曾不知所措,从一开始的自信满满,到最后的紧张繁杂,所有的这些都令我们回味无穷,这已经成为了我们人生的一个宝藏。

我想今后的学习和工作也是这样的,汗水见证着成功,我想十年过后,但我们都已经走入了社会,在某个阳光明媚的夏日,午后醒来,突然想起大学经历的时候,最先映入脑海里的就是这门课程吧,就是这些为了一个共同的目标,相互合作,共同奋斗的日子吧。

不可否认,单片机是一门比较难的专业学科。

但是经过这一学期的学习,我们觉得单片机这门课很好,让我们在设计中掌握课程,具有很强的实用性。

在社会上,单片机也应用极其广泛。

通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等。

我相信在接下来的日子里,我会更深刻地去研究它,发掘它。

在这次的实训里,我觉得过得很充实。

实训,不仅培养了我们独立思考、动手操作的能力,在各种其它能力上也都有了提高。

单片机电子时钟课程设计实验报告

单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计总结报告题目:单片机电子时钟的设计与实现设计人员:学号:班级:指导老师:日期:题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。

培养我们综合运用电子课程中的理论知识解决实际性问题的能力。

论知识解决实际性问题的能力。

让我们对电子电路、让我们对电子电路、让我们对电子电路、电子元器件、电子元器件、电子元器件、印制电路板等方面的知识印制电路板等方面的知识进一步加深认识,进一步加深认识,同时在软件编程、同时在软件编程、同时在软件编程、排错调试、排错调试、排错调试、焊接技术、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。

坚实的基础。

课程设计的基本任务利用89S51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计一款单片机和简单外设控制的电子时钟。

警等知识,设计一款单片机和简单外设控制的电子时钟。

主要功能要求最基本要求1)1)使用使用6位数码管,前两位显示小时(位数码管,前两位显示小时(2424小时制),中间两位显示分钟,后两位显示秒。

时钟每走1秒,秒数码管加1显示,显示,6060秒后分钟数码管加1显示,显示,6060分钟后小时数码管加1显示。

显示。

2)设计89S51单片机最小系统单片机最小系统3)掌握使用Protel99 Protel99 绘制原理图和布板的过程、方法和技巧。

绘制原理图和布板的过程、方法和技巧。

绘制原理图和布板的过程、方法和技巧。

4)掌握单片机开发软件()掌握单片机开发软件(Keil C51Keil C51或 Wave Wave)的使用和调试。

)的使用和调试。

)的使用和调试。

5)编写并调试单片机定时及其中断程序,以实现电子时钟的功能。

)编写并调试单片机定时及其中断程序,以实现电子时钟的功能。

6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。

基于PIC6F877的LED旋转时钟单片机设计实验报告

基于PIC6F877的LED旋转时钟单片机设计实验报告

基于PIC6F877的LED旋转时钟单片机设计实验报告一、实验目的本实验旨在通过基于PIC6F877的LED旋转时钟单片机设计,实现一个能够显示时间的LED旋转时钟。

二、实验原理1.单片机介绍PIC6F877是一款采用RISC架构的8位单片机,具有较高的运算速度和较低的功耗。

它包含有8KB的程序存储器,368字节的数据存储器,以及33个针脚。

2.LED模块通过控制单片机的输出引脚来控制LED的点亮和熄灭,通过改变输出引脚状态和频率可以实现不同的LED显示效果。

3.时钟电路通过引入外部晶振,使单片机能够准确计时,并能够显示当前时间。

4.显示模块利用8个LED灯模拟小时和分钟的显示,通过改变LED灯的状态和亮度来实现具体的时间显示。

三、实验设计1.硬件设计根据实验原理部分的介绍,设计了如下硬件连接图:(这里插入硬件连接图)2.软件设计根据实验原理部分的介绍,设计了如下软件流程图:(这里插入软件流程图)四、实验步骤1.硬件搭建按照硬件设计部分的连接图,将PIC6F877、LED模块、时钟电路等元件进行连接。

2.组装LED模块根据硬件搭建完成之后,将LED模块按照要求进行组装,确保LED灯能够正确显示时间。

3.编写程序根据软件设计部分的流程图,使用C语言编写程序,实现LED旋转时钟的功能。

主要包括计时、显示时间、控制LED灯亮灭等功能。

4.烧录程序将编写好的程序通过编程器烧写到PIC6F877芯片中。

5.调试测试将烧录好程序的PIC6F877芯片插入到硬件搭建好的电路中,将时钟电路和电源连接。

六、实验结果经过以上步骤,完成了LED旋转时钟的设计和搭建。

实验结果显示,LED灯能够准确显示当前的时间,并且能够根据时间的变化进行旋转。

七、实验总结通过本次实验,我进一步了解了单片机的基本原理和应用,掌握了使用PIC6F877进行LED旋转时钟设计的方法和技巧。

同时,在实际操作过程中,我也遇到了一些问题和困难,通过不断的思考和排查,最终成功解决了这些问题,并获得了满意的实验结果。

单片机实验报告(闹钟)

单片机实验报告(闹钟)

单片机实验(闹钟部分修改版)注:第一个是利用延时程序做的定时,循环太多定时不够精确;这一个用的是出栈和入栈的算法进行的定时,可以增加定时的精度。

程序目的说明:这是一个闹钟程序,当按下K1的时候,开始计时(说明:为了方便观察,我以10s 中作为基本定时进行演示,如果需要其他定时可以通过修改部分程序得到),时间达到后,7段显示器和LED 灯同时闪烁,若序号归零,则按下K2计时则停止。

然后再按下K1计时又从新开始,以此类推。

电路图:LED6位七段码显示灯,从左到往右两位一组,分别显示HOUR, MINUTE,SECOND.因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。

排阻就是好多电阻连载一起,他们有一个公共端.由于是上拉电阻,所以1接VCC 。

晶振电路,帮助减小计时过程中产生的误差。

K1开关和P1.1口相连,K2和P2.2口相连,分别用于控制计时的开启和关闭LED 灯,计时到达的时候LED 灯闪烁,计时t 停止时LED 灯熄灭。

程序段:程序说明:1.直接将开关定义为各个接口,可以方便之后程序中利用各个开光的状态进行跳转。

2.利用了计数/定时器0作为外部中断,当中断产生,自动跳入计时状态;3.此段定义的是而二进制的时间存储单元。

4.此段定义的是需要计时(亮灯)的时间,我设定的10s亮灯,所以s为0ah,其他的均为00h5.此段定义的是BCD码得时间,为了可以在七段显示器上面显示6.主程序中要调用闹钟程序timebear检测设定时间是否到达和显示时间的子程序display1.7.timebear程序段用于检测闹铃设定的时间是否达到,依次从second(s),minute(m),hour (h)检测,出现不匹配的就不再向下执行,若时间匹配就跳转至timecome。

8.timecome程序段主要控制P3.7口,时间达到的时候,使LED灯和7短码显示器点亮并闪烁,如果要不要灯和七段码显示器闪烁则删除:mov r7,#250t2:mov r6,#124t3:djnz r6,t3djnz r7,t2setb p3.7这一段程序即可,这一段相当于机器周期,是灯的闪亮延时,就出现了闪烁的状态。

单片机原理与应用结题报告

单片机原理与应用结题报告

单片机工程化考试结题报告题目:温、光采集时钟控制系统学院名称:年级专业:学生姓名:学号:指导老师:日期:摘要 (3)一、引言 (3)(一)课题设计研究的背景(二)课题设计研究的目的和意义二、电路设计 (3)(一)系统设计的框架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (4) (二)单片机最小系统 (4)(三)单片机的选型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (5) (四)AD转换 (7)(五)1302时钟 (9)(六)18B20温度传感 (11)(七)1602液晶显示 (12)(八)4*4键盘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(13)(九) 步进电机、直流电机、蜂鸣器、继电器. . . . . . . . . . . . .(13) 三、总体安排及进度计划落实情况 (14)(一)计划及流程(二)实验结论及参考资料四、附录 (15)源程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (16)开发板实物演示图片. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(38)开发板使用说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(39)摘要:本系统是基于PLB-HOT51-01单片机实验系统上的MCS—51单片机而设计的系统。

是利用单片机中的定时器、IO接口、中断系统以及开发板实验平台上的数码管和1602液晶显示屏、温度传感器DS18B20、继电器、蜂鸣器以及必要的芯片等资源而设计。

旋转时钟项目研究报告综述

旋转时钟项目研究报告综述

旋转时钟的设计与实现项目研究报告指导教师:项目组成员:王银铃讲师自动化专业1003班级尚云龙电气专业1003班级吴宝泉电子专业1002班级阎欢“智能机器人”创新实践班2013年1月23日摘要旋转LED显示是利用机械转动动态扫描代替传统逐行扫描方式,显示屏其实质就是与机械转动配合起来的动态扫描显示技术。

本设计方案旋转时钟的设计与实现是以STC12C5A32S2单片机和LED发光二级管为核心,辅以必要的电路,构成一个靠电路板旋转来显示时间的旋转时钟。

与传统机械表相比,它具有走时精确,显示直观等特点。

电路板旋转时钟由八部分组成,首先由电源给电机供电,从而可以使电动机带动一排LED发光管绕电机轴高速旋转,这样可以让绕线圈耦合产生感应电压,给旋转板供电,与此同时通过STC12C5A32S2单片机和能够提供时钟信号脉冲的时钟芯片DS1302组合控制各个LED发光管在旋转平面相应的位置上点亮,构成一幅点阵图,由于人的视觉暂留效果,看到一个指针式时钟,实现时间显示功能,可替代传统挂钟显示时间,达到节能又美观的效果。

该这个时钟具有两种显示模式:一种是字符式数字显示模式,可在一个屏上显示年月日和时分秒信息;另一种是指针式模拟显示模式,可仿真指针式钟表显示时分秒信息。

同时还设有红外遥控功能,可通过遥控器改变显示模式和调整时钟的时值。

此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示分秒的计时。

关键词:旋转时钟 STC12C5A32S2单片机时钟芯片DS1302 LED灯目录摘要 (I)1 绪论 (1)1.1 项目研究背景及意义 (1)1.2 项目主要研究内容 (2)2 总体设计方案 (3)2.1 系统总体方案设计 (3)2.1.1电路结构图的设计 (3)2.1.2电路原理图的设计 (4)2.2 总体方案设计及硬件指标 (5)2.2.1方案论证 (5)2.2.2方案比较与论证 (5)3 硬件设计 (6)3.1 旋转指针板的设计 (6)3.2 时钟芯片DS1302 (7)3.3 电源基板的硬件设计 (10)4 软件设计 (11)4.1 算法设计 (11)4.2 系统主程序设计 (12)5 系统调试 (12)5.1 硬件调试 (13)5.2 软件调试 (13)6 总结 (14)6.1 项目完成情况 (14)6.2 项目过程中心得体会 (14)附录 (16)1 绪论1.1 项目研究背景及意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

毕业设计(论文)-旋转时钟的设计[管理资料]

毕业设计(论文)-旋转时钟的设计[管理资料]

旋转时钟的设计摘要POV LED(POV即persistence of vision视觉暂留),它指的是,借助人的视觉暂留效果,通过少量LED灯的机械扫描方式来显示各种字符或者图像。

其原理很简单,就是靠电动机带动一排LED灯绕电机轴高速旋转,与此同时单片机控制各个LED灯在旋转平面相应的位置上点亮,构成一幅点阵画,虽然它们不是同时点亮的,但由于人的视觉暂留效果,会误以为每个点都是同时点亮的。

这就是我这篇论文研究的对象。

研究的目的第一是为了巩固大学四年所学的关于模数电及单片机的知识,并加深对它们的印象;另外LED旋转显示器并没有被人们广泛认知,作为电子爱好者就应该把新鲜有趣的电子作品发扬光大。

论文中我详细地叙述了扫描显示的原理,介绍了各种扫描显示的电子作品。

通过对这些类似作品的比较,再加入我自己的想法和创意,确立了我所要制作的旋转时钟的方案。

接着具体说明了制作旋转时钟所需要的硬件设备的功能与特性,主要包括单片机STC89C52、时钟芯片DS1302以及红外遥控芯片TC9012。

之后进行软件设计,画出各程序的流程图,并对重要程序代码作了解释。

最后通过软硬件调试得出结论,证明了我所设计的旋转时钟方案是可行的。

希望通过我的写作能让更多人了解并喜欢POV LED。

关键词:视觉暂留;旋转时钟;扫描显示AbstractPOV LED (POV is short for persistence of vision), it refers to that with the help of the effect of human POV, a few of LEDs can display the characters or images by the method of mechanical scanning. Its principle is very simple:a row of LEDs rotate around a motor's axis at high speed, while the MCU controls each one of the LEDs to lighten in the corresponding position of the rotating plane, forming a lattice picture, although not all the LEDs are lightening at the same time, because of the effect of POV, we will mistake all the LEDs for lightening at the same time. This is my object of this thesis. The first purpose of my research is to consolidate the knowledge we have learnt in college; secondly the rotating LED display has not been understood by many people, as a lover of electronic works should carry the fresh and interesting electronic works forward. In my thesis I had expounded the principle of the scanning display, and introduced numbers of the similar electronic works. After comparing these productions, and adding my own thoughts and ideas, I had established the program of the rotating clock which I wanted to make. Then I specified the function and characteristics of the hardware which were needed for making the rotating clock, including the STC89C52, the clock chip DS1302 as well as the infrared remote control chip TC9012. Then I designed the software, drew the scheme, and explained the important code. Finally, after debugging the software and the hardware, I had made the conclusion that my alternative of rotating clock was feasible. I hope that more people will know and like POV LED after reading my thesis.Keywords:persistence of vision;rotating clock;scanning display目录前言 (1)第1章旋转时钟的原理及制作方案 (2)旋转时钟原理分析 (2)方案的确定 (3)第2章硬件设计 (5)指针板的硬件设计 (5)单片机端口分配 (5)指针板电源驱动方式 (6)时钟芯片DS1302 (6)红外对管 (8)红外遥控设备的硬件设计 (8)电源基板的硬件设计 (11)电机的选择 (12)电刷的制作 (12)元器件焊接时应注意的问题 (13)第3章软件设计 (14)LED扫描显示程序设计 (14)单片机读写DS1302程序设计 (16)单片机对红外遥控代码的译码程序设计 (18)第4章系统调试 (21)硬件调试 (21)软件调试 (21)结论 (22)致谢 (23)参考文献 (24)附录1 旋转时钟电路原理图 (25)附录2 旋转时钟PCB图 (26)附录3 旋转时钟程序代码 (27)前言时下很流行一种用LED灯旋转扫描来显示各式各样画面的电子作品,即“POV LED”,它的核心部件还是单片机。

电子实习报告旋转时钟

电子实习报告旋转时钟

电子实习报告:旋转时钟的设计与实现一、实习背景及目的随着科技的不断发展,电子技术在现代社会中的应用越来越广泛。

为了提高我们的实践能力和创新能力,学校安排了一次电子实习,要求我们设计并实现一个旋转时钟。

通过这次实习,我们可以更好地了解电子技术的基本原理,提高动手能力,培养团队协作精神。

二、实习内容与过程1. 设计思路旋转时钟的核心部分是一个旋转显示装置,我们需要设计一个电路,使得显示装置能够实时显示当前时间。

为了实现这个目标,我们可以采用单片机作为控制核心,通过编程控制显示装置的旋转角度和速度。

2. 硬件设计(1)单片机及其外围电路:我们选择了STC89C52单片机作为控制核心,它具有丰富的接口资源和强大的功能。

单片机外围电路包括时钟电路、复位电路和电源电路等。

(2)旋转显示装置:我们采用了一个7段LED旋转显示装置,通过控制LED的亮灭来显示数字。

旋转显示装置包括一个驱动电机和七个LED段。

(3)按键电路:为了实现时间的设置和调整,我们设计了一个按键电路,包括设置键、调整键和确定键。

3. 软件设计我们采用C语言编写程序,实现对单片机和旋转显示装置的控制。

程序主要包括以下几个部分:(1)初始化部分:对单片机的接口、时钟电路和旋转显示装置进行初始化设置。

(2)时间显示部分:通过实时获取系统时间,将时间转换为旋转显示装置的显示数字,并控制LED的亮灭。

(3)时间设置部分:通过按键电路实现时间的设置和调整。

(4)旋转控制部分:控制旋转显示装置的旋转角度和速度。

三、实习成果与分析经过一段时间的艰苦努力,我们成功完成了旋转时钟的设计和实现。

实习成果如下:1. 旋转时钟能够实时显示当前时间,精确到分钟。

2. 旋转显示装置的旋转角度和速度可以实时调整。

3. 实现了时间的设置和调整功能。

通过这次实习,我们收获颇丰。

首先,我们学会了如何将理论知识运用到实际项目中,提高了实践能力。

其次,我们学会了团队合作,共同解决问题。

60sled旋转电子钟实践报告

60sled旋转电子钟实践报告

60sled旋转电子钟实践报告下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一、引言在本次实践中,我们对60sled旋转电子钟进行了测试和实践。

基于单片机的LED旋转时钟设计报告

基于单片机的LED旋转时钟设计报告

LED旋转时钟【摘要】本实验利用单片机的特性,将各种廉价的原材料自制成可用于室内装饰和便利生活的LED旋转时钟。

其制作方法简单、整体结构紧凑、材料环保、成品便于移动、外形美观而且成本低廉。

【关键词】发光二极管单片机系统旋转视觉停留编码显示时间一、课题背景:课题构思背景在课题构思初期,本组计划用51单片机来实现变色光纤花篮的控制(本组大二期间物理课题,计划将其改进)。

之后通过查阅资料,本组认为制作旋转时钟与变色光纤花篮大体原理相同,但在技术知识上比变色光纤花篮更进一步,所以将课题目标定为“旋转时钟”。

课题技术背景“单片机原理及应用”是我们大学本科学习期间的重要课程之一。

它注重培养同学们的实践动手能力,使我们在自学与实际操作中将知识融汇贯通。

单片机的应用大到卫星、导弹,小到洗衣机、微波炉,都有他们的踪影。

旋转时钟的主要特点就是结构新颖,效果奇特。

加入了现代科技的元素,利用人眼的视觉暂留特性,用单片机作为主控芯片,采用电机带动发光二极管高速旋转,霍尔传感器进行定位,利用刷屏显示原理呈现时钟画面及DS18B20温度显示。

造型及显示效果个性、新颖,解决了传统时钟结构单一,显示效果固定的缺陷,更好了满足了人们对美的追求。

现今人们家庭用的时钟主要还是传统意义上的时钟,固定的表盘与表针,显示效果单一,不能满足时钟不但用来看时间还是一件很好的装饰品的要求。

随着科技的发展网络上出现了以DIY为主要形式的旋转时钟作品。

但是随着单片机技术、高亮发光二极管制造技术和高速稳定电机制造技术的发展,这种千奇百怪、创意无限的电子旋转时钟必将走进千家万户。

二、原理介绍(一)、发光二极管发光原理发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。

PN 结加反向电压,少数载流子难以注入,故不发光。

基于单片机的LED旋转时钟设计与制作

基于单片机的LED旋转时钟设计与制作

《旋转LED时钟设计》题目:基于单片机的旋转LED时钟设计学院:机电工程学院专业: 08电子科学与技术学号: 081292074 姓名:邱文2011 年12 月20 日摘要:现在是一个知识爆炸的新时代。

新产品、新技术层出不穷,电子技术的发展更是日新月异。

可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。

近年来,随着电子产品的发展,人们对时钟的要求越来越高,而在对要求高之余,又要讲究有创意,新奇,所以在这个基础上设计一款既能满足人们的要求,又要有创意的时钟装置是很有必要的,贴片LED旋转屏时钟在可以计时的基础上,又能够满足人们对事物要有创意的需求。

我们组本次设计采用的是POV LED(POV即persistence of vision视觉暂留)技术,它指的是,借助人的视觉暂留效果,通过少量LED灯的机械扫描方式来显示各种字符或者图像。

其原理很简单,就是靠电动机带动一排LED灯绕电机轴高速旋转,与此同时单片机控制各个LED灯在旋转平面相应的位置上点亮,构成一幅点阵画,虽然它们不是同时点亮的,但由于人的视觉暂留效果,会误以为每个点都是同时点亮的。

其具体应用是电影的拍摄和放映。

原因是由视神经的反应速度造成的,其时值是二十四分之一秒。

是动画、电影等视觉媒体形成和传播的根据。

关键字:单片机、LED、时钟、视觉暂留、红外接收、扫描显示1、设计任务与要求1.1 设计任务设计一个旋转LED指针显示时钟。

1.2 技术指标能准确显示即时的时间,旋转盘面平稳,显示的数字稳定,时钟误差小。

2、方案比较与论证单片机、LED等电路必须安装在高速旋转的电动机上面,无法采用电线进行供电,使系统供电变得极为麻烦,常见的方法有3种。

方案一:用无线输电的方法,无触点,长寿命;方案二:用电动机电刷的方法,简单有效;请注意:这样寿命很短,必要时请自行在电路板上加焊一层耐磨导电层,如果电刷触点不够光洁以及接触压力大,几小时就可以将线路板上的铜皮磨穿。

单片机多功能时钟实验报告

单片机多功能时钟实验报告

单片机实验报告2020年4月12日一.实验要求(内容)本实验要求做出时刻显示包括时分秒,可调时刻,日期,日期转动显示,闹铃设置及到时响铃,倒计时,秒表计时和播放音乐等功能.这些功能需要的单片机知识有单片机大体寻址方式及汇编程序设计,按时与中断,数码管扫描显示,键盘扫描检测及音乐播放的大体原理等.二.硬件环境与工作原理(接口地址)设备选择了Atmel的AT89C51,设置波特率38400,频率11.0592MHz,数码管段选地址:8FFFH,数码管位选地址:9FFFH,段选和位选驱动都为高电平有效.蜂鸣器P1.6,为高电平有效.4*4的键盘复用了数码管位选地址8FFFH,写信号(/WR)操纵行,读信号(/RD)操纵列.三.资源利用键盘用了16个.按时中断T0及T1.寄放器R0~R7,贮存器如下.贮存变量概念如下:CLK EQU 20H.0CEK EQU 20H.1HOUR EQU 40HMIN EQU 41HSEC EQU 42H ;存放秒钟变量N EQU 43H ;存放5ms计数值CHH EQU 44HCMM EQU 45HCSS EQU 46H ;闹铃设置秒钟变量RUN EQU 23HDAY EQU 24H ;日期变量MONTH EQU 25HYEARL EQU 26HYEARH EQU 27HBUF1 EQU 28H ;显示缓冲区BUF2 EQU 29HBUF3 EQU 2AHBUF4 EQU 2BHBUF5 EQU 2CHBUF6 EQU 2DHBUF7 EQU 2EHBUF8 EQU 2FHBUF9 EQU 30HBUF10 EQU 31HBUF11 EQU 32HCHH_D EQU 48H ;倒数时间小时数CMM_D EQU 49HCSS_D EQU 4AHSTOP_S EQU 4BH ;秒表STOP_M EQU 4CHSTOP_MS EQU 4DHSEG1 EQU 50H ;数码管SEG2 EQU 51HSEG3 EQU 52HSEG4 EQU 53HSEG5 EQU 54HSEG6 EQU 55HSEG7 EQU 56HSEG8 EQU 57HTEMP EQU 58H ;临时变量;蜂鸣器四.程序原理与框图第一部份是变量概念区,第二部份是主函数,包括初始化和键盘循环检测.第三部份是子函数区,第四部份为常数区.子函数包括按时器初始化,年月日转换,数码管扫描显示,键盘操作,调整时刻,设置闹铃,闹铃时刻转换,检查闹铃是不是到,闹铃到了响应,倒计时程序,日期转换,日期扫描显示,日期设置,闰年判定,秒表子程序,音乐,响音乐时的显示和3个延迟子函数.主函数流程:主函数代码:MAIN:ACALL INITALLACALL INIT_TIMERMAINLOOP: ;循环区ACALL CONVACALL CLK_ONACALL SEG_DISP;设置时刻ACALL KEYBOARD ;DU DI 1 JIANCJNE A,#00H,M1ACALL SET_TIMEJMP MAINLOOP ;设置闹铃时间M1:CJNE A,#01H,M2ACALL SET_CLKJMP MAINLOOPM2: ;闹钟开关CJNE A,#0DH,M3CPL CLKJNB CLK,M2_1 ;闹铃启动LCALL BZLCALL BZJMP MAINLOOPM2_1:LCALL BZ ;闹铃停止JMP MAINLOOPM3: ;设置倒计时CJNE A,#0BH,M4ACALL SET_DOWNJMP MAINLOOPM4: ;滚动日期CJNE A,#0EH,M5ACALL DATE_DISPJMP MAINLOOP ;调整日期M5:CJNE A,#02H,M6ACALL DATA_SETJMP MAINLOOP ;秒表M6:CJNE A,#03H,M7ACALL STOPJMP MAINLOOPM7: CJNE A,#0AH,M8ACALL MUSICJMP MAINLOOPM8:JMP MAINLOOP秒表原理及流程:为了秒表计时的准确,利用了按时器作为时刻源,由于按时器为5ms按时,故先需要对它2分频,采纳奇偶方式分频.然后ms位满100进1,s位满60进1.(流程描述)利用按时器依照频率和距离产生高低转变的方波信号,使扬声器不断置高低电平,从而发声.碰到停止符,那么暂停发声,当下一个音符到来的时候,再打开按时器,继续产生方波,驱动蜂鸣器发音.<<天空之城>>译为频率和距离时刻的十六进制:DB 0FDH,0C6H,02H,0FEH,02H,02HDB 0FEH,2AH,04H,0FEH,02H,02HDB 0FEH,2AH,04H,0FEH,84H,04HDB 0FEH,02H,02HDB 00H,00H,04HDB 0FDH,08H,02H,0FDH,08H,02HMiaobiao:初始化数据Readkey;If(key==start) goto start;If(key==end) goto end;Start:读取定时器N;If(N为偶数) ms加一;Readkey;If(key==pause) goto pause;If(key==end) goto end;Pause:Readkey;If(key==start) goto start;If(key==end) goto end;End:初始化数据;Return;DB 0FDH,0C6H,03H,0FDH,80H,02HDB 0FDH,0C6H,04H,0FEH,2AH,04HDB 0FDH,80H,04DB 00H,00H,04HDB 0FDH,08H,02H,0FDH,08H,02HDB 0FDH,30H,03H,0FDH,08H,02HDB 0FDH,30H,02H,0FEH,2AH,03HDB 0FDH,08H,04HDB 00H,00H,04HDB 0FEH,2AH,02H,0FEH,2AH,02HDB 0FEH,2AH,03H,0FEH,02H,03HDB 0FDH,30H,02H,0FDH,30H,04HDB 0FEH,02H,04H,0FEH,02H,04HDB 0FFH,0FFH五.操作说明键位安排: S0到S15别离代表各键位值;S0为进入时刻设置和完成返回键;S1为进入闹铃设置和完成返回按键;S2为进入日期设置和完成按键;S3为进入秒表和退出按键;S11为进入倒计时和退出键;S4,S8,S12别离为年月日及时分秒家一按键,S5,S9,S13别离为年月日及时分秒减一按键;S6为闹钟开关键;S10为日期转动键,S14为播放音乐按键.具体见图.(键位安排)六.调试与实际运行结果调试结果: 调试进程中没有什么错误.运行结果: 所有功能皆可完美的实现,固然还存在着一些小错误和可改良的地址.能够改良的地址:1.秒表忘记了清零的键,故功能不全,能够加入.2.在音乐响完后蜂鸣器继续发声,尽管解决过,但偶然还会显现问题,缘故不明.3.键盘由于利用次数多而发生不灵的现象,可改变键盘除抖和延迟时刻加以优化.4.按时器1的按时刻隔太短,故系统负荷较重.可更改计时模式,增大距离.编译结果: Program Size: data=8.0 xdata=0 code=5453七.总结与体会这是单片机大体编程练习,未涉及硬件,因此是超级大体的.在实际的工作中,如此的简单程序只能做个电子表,而这种产品已经充满着市场,略微学习过的人都会做,因此是没有经济价值的.故对学习单片机的学习才只是个开头,以后的学习要多向实际应用进展.做他人可不能做的,才能成为高手.这次是用汇编语言做的,而C语言对汇编来讲是有他自己的优势的,因此下次应该练习用C语言写程序,以后学习综合利用C和汇编写程序,才能综合二者优势,提高编程效率.再有,硬件很重要,可不能单片机硬件确实是外行.总之在繁重的专业课之余,找时刻学习单片机!附录:ORG 0000HJMP MAINORG 000BHJMP T0_SRVORG 1000HCLK EQU 20H.0CEK EQU 20H.1HOUR EQU 40HMIN EQU 41HSEC EQU 42H ;存放秒钟变量N EQU 43H ;寄存5ms计数值CHH EQU 44HCMM EQU 45HCSS EQU 46H ;闹铃设置秒钟变量RUN EQU 23HDAY EQU 24HMONTH EQU 25HYEARL EQU 26HYEARH EQU 27HBUF1 EQU 28HBUF2 EQU 29HBUF3 EQU 2AHBUF4 EQU 2BHBUF5 EQU 2CHBUF6 EQU 2DHBUF7 EQU 2EHBUF8 EQU 2FHBUF9 EQU 30HBUF10 EQU 31HBUF11 EQU 32HSEC0 EQU 47H ;存放旧的秒数CHH_D EQU 48H ;倒数时间小时数CMM_D EQU 49HCSS_D EQU 4AHSTOP_S EQU 4BH ;秒表STOP_M EQU 4CHSTOP_MS EQU 4DHSEG1 EQU 50H ;数码管SEG2 EQU 51HSEG3 EQU 52HSEG4 EQU 53HSEG5 EQU 54HSEG6 EQU 55HSEG7 EQU 56HSEG8 EQU 57HTEMP EQU 58H;***************************************主程序区****************************** INITALL:CLR CEKCLR CLKMOV N,#0MOV S EC,#55 ;时刻MOV M IN,#19MOV H OUR,#02MOV CHH,#2 ;闹钟MOV CMM,#20MOV CSS,#0MOV CHH_D,#0 ;倒计时MOV CMM_D,#0MOV CSS_D,#0MOV DAY,#06 ;日期MOV MONTH,#03MOV YEARL,#11MOV YEARH,#20MOV TEMP,#033HRETMAIN:ACALL INITALLACALL INIT_TIMERMAINLOOP: ;循环区ACALL CONVACALL CLK_ONACALL SEG_DISP;设置时刻ACALL KEYBOARD ;DU DI 1 JIAN CJNE A,#00H,M1ACALL SET_TIMEJMP MAINLOOP ;设置闹铃时间M1:CJNE A,#01H,M2ACALL SET_CLKJMP MAINLOOPM2: ;闹钟开关CJNE A,#0DH,M3CPL CLKJNB CLK,M2_1 ;闹铃启动LCALL BZLCALL BZJMP MAINLOOPM2_1:LCALL BZ ;闹铃停止JMP MAINLOOPM3: ;设置倒计时CJNE A,#0BH,M4ACALL SET_DOWNJMP MAINLOOPM4: ;滚动日期CJNE A,#0EH,M5ACALL DATE_DISPJMP MAINLOOP ;调整日期M5:CJNE A,#02H,M6ACALL DATA_SETJMP MAINLOOP ;秒表M6:CJNE A,#03H,M7ACALL STOPJMP MAINLOOPM7: CJNE A,#0AH,M8ACALL MUSICJMP MAINLOOPM8:JMP MAINLOOP;-------------------------按时器T0模式0计时---------------------------INIT_TIMER:;初始化按时器,有效按时器T0模式0计时MOV TMOD,#00H ;设置按时器T0模式0MOV IE,#82H ;启用按时器T0中断产生MOV TL0,#00H ;加载初始化数据MOV TH0,#70HSETB TR0 ;启动按时器0开始计时RETT0_SRV: ;定时器T0中断程序每隔5ms中断一次PUSH ACCMOV TL0,#00H;重加载初始化数据MOV TH0,#70HINC N ;加1;秒输出MOV A,NCJNE A,#200,TT1MOV N,#0INC SEC ;秒计数加1MOV A,SECCJNE A,#60,TT1 ;是不是1min到了;分输出INC MIN ;分计数加1MOV SEC,#0MOV A,MINCJNE A,#60,TT1 ;是不是1h到了;时输出INC HOURMOV MIN,#0MOV A,HOURCJNE A,#24,TT1 ;是否1天到了;天输出INC DAYMOV HOUR,#0MOV DPTR,#MONTHTABMOV A,MONTHMOVC A,@A+DPTRMOV B,DAYCJNE A,B,TT1;月输出;是否1月到了INC MONTHMOV DAY,#1MOV A,MONTHCJNE A,#13,TT1 ;是否1年到了;年输出INC YEARLMOV MONTH,#1MOV A,YEARLCJNE A,#100,TT1INC YEARHMOV YEARL,#0MOV A,YEARHCJNE A,#100,TT1MOV SEC,#0HMOV MIN,#0HMOV HOUR,#0HMOV DAY,#1HMOV MONTH,#1HMOV YEARL,#0HMOV YEARH,#0HTT1: POP ACCRETICONV:MOV D PTR,#SEGTABMOV A,SECMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG2,AMOV A,BMOVC A,@A+DPTRMOV S EG1,AMOV A,MINMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG5,AMOV A,BMOVC A,@A+DPTRMOV S EG4,AMOV A,HOURMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG8,AMOV A,BMOVC A,@A+DPTRMOV S EG7,AJNB CEK,CLKOFFMOV SEG3,#80HMOV SEG6,#80HJMP ENDINGJNB CLK,CLKOFFMOV S EG3,#0C0HMOV S EG6,#0C0HRETCLKOFF:MOV S EG3,#40HMOV S EG6,#40HENDING: RET;-----------------------------数码管扫描显示-------------------------------- SEG_DISP:PUSH 00HPUSH 06HMOV R0,#SEG1MOV R6,#08HMOV A,#00HMOV R2,#01HSEG_LOOP:MOV D PTR,#9FFFHMOV A,@R0INC R0MOVX @DPTR,AMOV D PTR,#8FFFHMOV A,R2MOVX @DPTR,ARL AMOV R2,ALCALL DLY400USMOV A,#00HMOVX @DPTR,ADJNZ R6,SEG_LOOPPOP 06HPOP 00HRET;---------------------4*4键盘区------------------------- KEYBOARD:MOV D PTR,#9FFFHMOV A,#00HMOVX @DPTR,ALCALL KEY_SCANJNZ CHUDOU ;除抖LJMP END_KEYBOARD CHUDOU:LCALL DLY10MSLCALL KEY_SCANJNZ KEY_READ ;扫描LJMP END_KEYBOARDKEY_READ:MOV R3,#01HMOV B,#00HMOV A,R3KP4: MOVX @DPTR,AMOVX A,@DPTRJNB ACC.0,K1MOV A,#00HLJMP KP5K1: JNB ACC.1,K2MOV A,#04HLJMP KP5K2: JNB ACC.2,K3MOV A,#08HLJMP KP5K3: JNB ACC.3,NEXTMOV A,#0CHPUSH ACCKP3: LCALL DLY10MSLCALL KEY_SCANJNZ KP3POP ACCRETNEXT: INC BMOV A,R3JB ACC.3,END_KEYBOARDRL AMOV R3,ALJMP KP4END_KEYBOARD:MOV A,#0FFHRETKEY_SCAN:MOV D PTR,#8FFFHMOV A,#0FHMOVX @DPTR,AMOVX A,@DPTRANL A,#0FHRET;--------------调整时刻子程序-----------------------------------SET_TIME:SETB CEKCLR TR0 ;定时器工作暂停ACALL CONVACALL SEG_DISPKEY0:LCALL SEG_DISP ;扫描显示LCALL KEYBOARDCJNE A,#04H,KEY1 ;未按下S1键,那么继续扫描;S1小时调整INC HOURMOV A,HOURCJNE A,#24,L11 ;是否24小时到了MOV HOUR,#0H ;小时变量清零L11:ACALL CONV ;转换显示数据ACALL SEG_DISP ;扫描显示JMP KEY0KEY1:CJNE A,#08H,KEY3 ;未按下S2键,则继续扫描INC MINMOV A,MINCJNE A,#60,L21 ;是否60min到了MOV MIN,#0H ;分钟变量清零L21:ACALL CONVACALL SEG_DISPJMP KEY0KEY3:CJNE A,#0CH,KEY2 ;未按下S2键,则继续扫描;MIAO调整INC SECMOV A,SECCJNE A,#60,L31 ;是否60MIAO到了MOV SEC,#0H ;变量清零L31:ACALL CONVACALL SEG_DISPJMP KEY0KEY2:CJNE A,#00H,KEY0 ;未按下S3键,那么继续扫描SETB TR0 ;启动按时器CLR CEKRET;----------------设置闹铃时刻-----------------------------------;设置闹铃时刻SET_CLK:ACALL CONVA ;加载闹铃时刻数据N0:ACALL SEG_DISPACALL KEYBOARDCJNE A,#04H,N1 ;未按下S1键那么继续扫描;S1调整小时INC CHHMOV A,CHHCJNE A,#24,N11MOV CHH,#0N11:ACALL CONVAACALL SEG_DISPJMP N0N1:CJNE A,#08H,N2 ;未按下S2键则继续扫描;S2调整分钟MOV A,CMMCJNE A,#60,N21MOV CMM,#0N21:ACALL CONVAACALL SEG_DISPJMP N0N2:CJNE A,#01H,N0 ;未按下S3键则继续扫描;S3设置完成ACALL CONVRET;-------------------------加载闹铃时刻数据----------------------- CONVA:;转换数据MOV DPTR,#SEGTABMOV A,CSSMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG2,AMOV A,BMOVC A,@A+DPTRMOV S EG1,AMOV S EG3,#80HMOV A,CMMMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG5,AMOV A,BMOVC A,@A+DPTRMOV S EG4,AMOV S EG6,#80HMOV A,CHHMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG8,AMOV A,BMOVC A,@A+DPTRMOV S EG7,ARET;-------------------检查闹铃时刻处置--------------------------CLK_ON:JB CLK,TI3RETTI3:MOV A,HOURMOV B,CHHCJNE A,B,BK ;检查闹铃小不时刻MOV A,MINMOV B,CMMCJNE A,B,BK ;检查闹铃分钟时间MOV A,SECMOV B,CSSCJNE A,B,BK ;检查闹铃秒钟时刻ACALL TIME_OUT ;调用执行检查闹铃时间处理子程序BK:RET;---------------------执行闹铃时刻处置----------------------TIME_OUT: ;闹铃时间到了LCALL MUSIC ;蜂鸣器发声MOV TMOD,#00HMOV IE,#82HACALL CONVACALL SEG_DISPRET;********************倒计时程序;设置倒计不时刻SET_DOWN:ACALL DOWN_CONVACALL SEG_DISPS0:ACALL SEG_DISPACALL KEYBOARDCJNE A,#0CH,S12INC CSS_DMOV A,CSS_DCJNE A,#60,S11MOV CSS_D,#0INC CMM_DS11:ACALL DOWN_CONVACALL SEG_DISPJMP S0S12:CJNE A,#0DH,S2DEC CSS_DMOV A,CSS_DCJNE A,#0,S21MOV CSS_D,#60S21:ACALL DOWN_CONVACALL SEG_DISPJMP S0S2:CJNE A,#0FH,S4;按S3设置完成LCALL BZLCALL BZJMP S3S4: CJNE A,#08H,S5INC CMM_DMOV A,CMM_DCJNE A,#60,S111MOV CMM_D,#0S111:ACALL DOWN_CONVACALL SEG_DISPJMP S0S5: CJNE A,#0BH,S0RETS3:ACALL DOWN_TIMEACALL DOWN_CONVACALL SEG_DISPACALL KEYBOARDCJNE A,#0BH,S3MOV CMM_D,#00HMOV CSS_D,#00HRET;-------------------------加载倒计不时刻--------------------- ;显示倒数时刻DOWN_CONV:MOV D PTR,#SEGTABMOV A,CSS_DMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG2,AMOV A,BMOVC A,@A+DPTRMOV S EG1,AMOV A,CMM_DMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG5,AMOV A,BMOVC A,@A+DPTRMOV S EG4,AMOV A,#40HMOV S EG8,AMOV A,#40HMOV S EG7,AMOV S EG3,#80HMOV S EG6,#40HRET;---------检查倒计时-------------------------- ;检查倒计时DOWN_TIME:MOV A,SECMOV B,SEC0CJNE A,B,D01RETD01:MOV SEC0,SECDEC CSS_DMOV A,CSS_DCJNE A,#0,D11MOV A,CMM_DCJNE A,#0,D12;秒钟数为0且分钟数为0,那么倒数终止ACALL TIME_OUTJMP MAINLOOPRETD12:MOV CSS_D,#59DEC CMM_DD11:ACALL DOWN_CONVRET;**************************日期显示******************************** DATE_CONV:MOV D PTR,#SEGTABMOV A,DAYMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG2,AMOV A,BMOVC A,@A+DPTRMOV S EG1,AMOV A,MONTHMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG4,AMOV A,BMOVC A,@A+DPTRORL A,#80HMOV S EG3,AMOV A,YEARLMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG6,AMOV A,BMOVC A,@A+DPTRORL A,#80HMOV S EG5,AMOV A,YEARHMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG8,AMOV A,BMOVC A,@A+DPTRMOV S EG7,ARET;------------------------日期扫描显示-----------------------------DATE_DISP:MOV D PTR,#SEGTABMOV A,YEARHMOV B,#10DIV ABMOVC A,@A+DPTRMOV B UF1,AMOV A,BMOVC A,@A+DPTRMOV B UF2,AMOV A,YEARLMOV B,#10DIV ABMOVC A,@A+DPTRMOV B UF3,AMOV A,BMOVC A,@A+DPTRMOV B UF4,AMOV B UF5,#40HMOV A,MONTHMOV B,#10DIV ABMOVC A,@A+DPTRMOV B UF6,AMOV A,BMOVC A,@A+DPTRMOV B UF7,AMOV B UF8,#40HMOV A,DAYMOV B,#10DIV ABMOVC A,@A+DPTRMOV B UF9,AMOV A,BMOVC A,@A+DPTRMOV B UF10,AMOV B UF11,#80HMOV S EG1,#80HMOV S EG2,#00HMOV S EG3,#00HMOV S EG4,#00HMOV S EG5,#00HMOV S EG6,#00HMOV R6,#05HDATE_L3:MOV R0,#BUF1MOV R7,#11DATE_L2:MOV R3,#42HMOV S EG8,SEG7MOV S EG7,SEG6MOV S EG6,SEG5MOV S EG5,SEG4MOV S EG4,SEG3MOV S EG3,SEG2MOV S EG2,SEG1MOV S EG1,@R0DATE_L1:ACALL SEG_DISPLCALL KEYBOARDCJNE A,#0EH,JIXUJMP DATE_QUITJIXU: DJNZ R3,DATE_L1INC R0DJNZ R7,DATE_L2DJNZ R6,DATE_L3DATE_QUIT:AJMP CONVAJMP SEG_DISPRET;----------------------调整日期子程序----------------------------- DATA_SET:DA0:LCALL DATE_CONV ;扫描显示LCALL SEG_DISPLCALL KEYBOARDCJNE A,#04H,DA2 ;未按下S7键,则继续扫描;年调整INC YEARLMOV A,YEARLCJNE A,#100,DA21MOV YEARL,#0 ;变量清零INC YEARHMOV A,YEARHCJNE A,#100,DA21DA21:ACALL DATE_CONVACALL SEG_DISPJMP DA0DA2:CJNE A,#08H,DA3 ;未按下S9键,则继续扫描;月调整INC MONTHMOV A,MONTHCJNE A,#13,DA21MOV MONTH,#1 ;变量循环DA3:CJNE A,#0CH,DA4 ;未按下SA键,则继续扫描;日调整INC DAYACALL RUNNIANMOV A,RUNJZ DA30JMP DA31DA30:MOV DPTR,#MONTHTABJMP DA32DA31:MOV DPTR,#RUNTABJMP DA32DA32:MOV A,MONTHMOVC A,@A+DPTRMOV B,DAYCJNE A,B,DA21MOV DAY,#1 ;变量清零DA4:CJNE A,#02H,DA0 ;未按下SB键,那么继续扫描RETRUNNIAN:MOV RUN,#00HMOV B,#04H ;B中置为04H用来测试MOV A ,YEARL ;年的后两位送AJZ TJ2 ;假设后两位能被100整除那么转向条件2 DIV AB ;检测年的后两位是不是能被4整除MOV A ,B ;假假设B中的余数为零那么说明是闰年JZ LEAPJMP OVERTJ2:MOV A ,YEARH ;符合条件2(第一能被100整除)DIV AB ;假假设高位能被4整除那么说明能被400整除MOV A ,BJZ LEAP ;是闰年跳转SJMP OVERLEAP:MOV RUN,#01HOVER:RET;秒表功能程序STOP_CONV:MOV D PTR,#SEGTABMOV A,STOP_MSMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG2,AMOV A,BMOVC A,@A+DPTRMOV S EG1,AMOV A,STOP_SMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG5,AMOV A,BMOVC A,@A+DPTRMOV S EG4,AMOV A,STOP_MMOV B,#10DIV ABMOVC A,@A+DPTRMOV S EG8,AMOV A,BMOVC A,@A+DPTRMOV S EG7,AMOV S EG3,#40HMOV S EG6,#40HRETSTOP:MOV STOP_MS,#0MOV STOP_S,#0MOV STOP_M,#0ACALL STOP_CONVACALL SEG_DISPACALL KEYBOARDCJNE A,#07H,STOPJMP LOOP2LOOP2:ACALL KEYBOARDCJNE A,#07H,LOOP3JMP PAUSE1LOOP3: ACALL STOP_CONVACALL SEG_DISPLCALL DLY10MSINC STOP_MSMOV A,STOP_MSCJNE A,#100,LOOP2 ;是否1s到了MOV STOP_MS,#0 ;里秒数清零INC STOP_S ;秒计数加1MOV A,STOP_SCJNE A,#60,LOOP2 ;是不是1min到了INC STOP_M ;分计数加1MOV STOP_S,#0MOV A,STOP_MCJNE A,#60,LOOP2 ;是不是1h到了MOV STOP_M,#0PAUSE1:ACALL STOP_CONVACALL SEG_DISPACALL KEYBOARDCJNE A,#03H,PP1JMP DEADPP1: CJNE A,#07H,PP2JMP LOOP2PP2: CJNE A,#0FH,PAUSE1JMP STOPDEAD:ACALL CONVACALL SEG_DISPRETMUSIC:JMP STARTORG 001BHJMP EXT0START:MOV TMOD,#00010000BMOV IE,#8AHMOV R4,#0MOV DPTR,#9FFFHMOVX @DPTR,AMOV DPTR,#MUSICTABLOOOP:MOV A,R4MOVC A,@A+DPTRMOV R1,AINC R4ACALL WATERMOV A,R4MOVC A,@A+DPTRMOV R0,AORL A,R1JZ NEXT0 ;全0为休止符MOV A,R0ANL A,R1CJNE A,#0FFH,NNEXT ;全1表示乐曲结束JMP LO1 ;循环演奏NNEXT:MOV TH1,R1MOV TL1,R0SETB TR1JMP NEXT1NEXT0: ;关闭定时器,停止发音CLR TR1SETB FMQNEXT1:INC R4MOV A,R4MOVC A,@A+DPTRMOV R2,ALOOP1:ACALL DELAY_1DJNZ R2,LOOP1INC R4JMP LOOOPEXT0:MOV TH1,R1MOV TL1,R0RETIDELAY_1:MOV R7,#02DD3:MOV R5,#248DJNZ R5,$DJNZ R6,DD3DJNZ R7,DD2RETMUSICTAB: ;DB 0FDH,0C6H,02H,0FEH,02H,02HDB 0FEH,2AH,04H,0FEH,02H,02HDB 0FEH,2AH,04H,0FEH,84H,04HDB 0FEH,02H,02HDB 00H,00H,04HDB 0FDH,08H,02H,0FDH,08H,02HDB 0FDH,0C6H,03H,0FDH,80H,02HDB 0FDH,0C6H,04H,0FEH,2AH,04HDB 0FDH,80H,04DB 00H,00H,04HDB 0FDH,08H,02H,0FDH,08H,02HDB 0FDH,30H,03H,0FDH,08H,02HDB 0FDH,30H,02H,0FEH,2AH,03HDB 0FDH,08H,04HDB 00H,00H,04HDB 0FEH,2AH,02H,0FEH,2AH,02HDB 0FEH,2AH,03H,0FEH,02H,03HDB 0FDH,30H,02H,0FDH,30H,04HDB 0FEH,02H,04H,0FEH,02H,04HDB 0FFH,0FFHLO1:CLR TR1SETB FMQ ;停止闹铃RETWATER:MOV A,TEMPMOV DPTR,#8FFFHMOVX @DPTR,ARL AMOV TEMP,AMOV DPTR,#MUSICTABRETDLY400US:MOV R5,#2D100:DJNZ R4,$DJNZ R5,D100RETDLY10MS:MOV R5,#30DD100: MOV R4,#150DJNZ R4,$DJNZ R5,DD100RETBZ:MOV R6,#250B1:ACALL DEXCPL FMQDJNZ R6,B1MOV R5,#30ACALL DELAYRETDELAY:MOV R4,#04HDL0: MOV R5,#0E9HDL1: NOPDJNZ R5,DL1DJNZ R4,DL0RETDEX:MOV R4,#200DJNZ R4,$RETSEGTAB: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH MONTHTAB:DB 0,32,29,32,31,32,31DB 32,32,31,32,31,32 RUNTAB:DB 0,32,30,32,31,32,31DB 32,32,31,32,31,32END。

结 题 报 告(时钟)

结 题 报 告(时钟)

结题报告通过本学期对单片机与嵌入式系统的学习,我们学到了许多有用的知识,让我们印象更深的是单片机的无所不能,其功能之强大,更值得我们学习。

通过单片机课程的学习,我们可以做“数字电子时钟”,其基本功能是:可以显示时、分、秒,并且可以通过按键来调校时间。

在该实验中:1.主要是运用到数码管的显示,能够清晰的显示;2.按键模块的使用,用来调校时间,主要用到矩阵键盘;3.定时器的使用,主要学会定时的计算过程;4.中断系统的使用,这部分比较重要。

最后的步骤就是编写C语言程序,编译执行,加载程序,最终可以在ME850单片机实验箱上运行。

本次设计时钟电路,使用了AT89C51单片机芯片控制电路,使用键盘键上的按键来调整时钟的时、分、秒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:独立键盘、芯片、LED显示器、时钟,可以满足需求。

其中主要相关的知识点有:一、LED 数码管的显示LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。

这些段分别由字母a,b,c,d,e,f,g,dp来表示。

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。

2个8数码管如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。

常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

在该实验中,主要是显示数字。

数码管中0~9的显示形式为:0X03,0X9F、0X25、0X0D、0X99、0X49、0X41、0X01、0X09。

二、按键模块主要使用ME850单片机实验箱中的矩阵键盘,来进行时、分、秒的调整,其中:K1---时调整 K2---分调整 K3---秒调整K4---时间暂停实验原理:1.键盘的工作原理:.键盘的工作原理:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。

行线通过上拉电阻接到+5V 电源上。

单片机课设结题报告2

单片机课设结题报告2

单片机课设结题报告——歌曲演奏姓名: 花贞班级: 机械107班指导教师: 陈继荣完成时间: 2013年10月12日一.硬件设计根据音乐播放器系统的功能与组成,进行系统分析,系统除单片机核心部分外还需要与按键连接以接收输入指令,连接LED显示器将要要演奏的乐曲序号显示出来,通过连接扬声器使其发出音乐。

如果使用石英晶体,我们推荐电容使用30PF-10PF,而如果使用陶瓷振荡器议选择40PF-10PF。

用户也可以采用外部时钟。

这种情况下,外部时钟脉冲接到XTAL1端,钟生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。

在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由蜂鸣器发出声音。

乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。

音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。

便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。

其它节拍与时间的对应关系也可以从两者关系表中得到。

定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。

要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。

主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。

本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

单片机的p3.4引脚通过限流电阻R与三极管基极相连,三极管的集电极接有蜂鸣器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课题结题分析报告课题名称:LED旋转时钟二O一一年十二月LED旋转时钟【摘要】本实验利用单片机的特性,将各种廉价的原材料自制成可用于室内装饰和便利生活的LED 旋转时钟。

其制作方法简单、整体结构紧凑、材料环保、成品便于移动、外形美观而且成本低廉。

【关键词】发光二极管单片机系统旋转视觉停留编码显示时间一、课题背景:课题构思背景在课题构思初期,本组计划用51单片机来实现变色光纤花篮的控制(本组大二期间物理课题,计划将其改进)。

之后通过查阅资料,本组认为制作旋转时钟与变色光纤花篮大体原理相同,但在技术知识上比变色光纤花篮更进一步,所以将课题目标定为“旋转时钟”。

课题技术背景“单片机原理及应用”是我们大学本科学习期间的重要课程之一。

它注重培养同学们的实践动手能力,使我们在自学与实际操作中将知识融汇贯通。

单片机的应用大到卫星、导弹,小到洗衣机、微波炉,都有他们的踪影。

旋转时钟的主要特点就是结构新颖,效果奇特。

加入了现代科技的元素,利用人眼的视觉暂留特性,用单片机作为主控芯片,采用电机带动发光二极管高速旋转,霍尔传感器进行定位,利用刷屏显示原理呈现时钟画面及DS18B20温度显示。

造型及显示效果个性、新颖,解决了传统时钟结构单一,显示效果固定的缺陷,更好了满足了人们对美的追求。

现今人们家庭用的时钟主要还是传统意义上的时钟,固定的表盘与表针,显示效果单一,不能满足时钟不但用来看时间还是一件很好的装饰品的要求。

随着科技的发展网络上出现了以DIY为主要形式的旋转时钟作品。

但是随着单片机技术、高亮发光二极管制造技术和高速稳定电机制造技术的发展,这种千奇百怪、创意无限的电子旋转时钟必将走进千家万户。

二、原理介绍(一)、发光二极管发光原理发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。

PN 结加反向电压,少数载流子难以注入,故不发光。

这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。

当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

LED发光二极管内部结构如图1所示。

图1 发光二极管构造图(二)、红外对管原理红外对管是一种常用的光电器件。

所谓对管就是由一只红外线发射管和红外线接收管组成。

根据发射和接收的频率不同,红外对管有不同的型号。

当发射管与接收管的发射与接收窗靠近对齐时,即红外线照射到接收管上,则接收管导通,其中导通特性与普通二极管相似,例如图1所示,一般红外对管的有效距离为数米。

如果想扩大感应距离可加装透镜。

把接收管连接成如图2所示的电路。

就可以组成一个光电触发系统。

发射管接收管图2 红外对管的使用(三)、视觉暂留原理人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

是光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,其具体应用是电影的拍摄和放映。

原因是由视神经的反应速度造成的.其时值是二十四分之一秒。

是动画、电影等视觉媒体形成和传播的根据。

视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换为神经电流,传回大脑引起人体视觉。

感光细胞的感光是靠一些感光色素,感光色素的形成是需要一定时间的,这就形成了视觉暂停的机理。

视觉暂留现象首先被中国人发现,走马灯便是据历史记载中最早的视觉暂留运用。

宋时已有走马灯,当时称“马骑灯”。

随后法国人保罗·罗盖在1828年发明了留影盘,它是一个被绳子在两面穿过的圆盘。

盘的一个面画了一只鸟,另一面画了一个空笼子。

当圆盘旋转时,鸟在笼子里出现了。

这证明了当眼睛看到一系列图像时,它一次保留一个图像。

物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。

是人眼具有的一种性质。

人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。

但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。

(四)、AT89C2051单片机原理51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。

目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。

51单片机是基础入门的一个单片机,还是应用最广泛的一种。

(1)内部结构AT89C2051是一带有2K字节闪速可编程可擦除只读存储器(EEPROM)的低电压,高性能8位CMOS微处理器。

它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容。

通过在单块芯片上组合通用的CPLI和闪速存储器,ATMEL的AT89C2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。

AT89C2051提供以下标准功能:2K字节闪速存储器,128字节RAM,15根I/O口,两个16位定时器,一个五向量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选的软件节电工作方式。

空闲方停止CPU工作但允许RAM、定时器/计数器、串行工作口和中断系统继续工作。

掉电方式保存RAM内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。

(2)软硬件的开发AT89C2051可以采用下面两种方法开发应用系统。

1、由于89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。

调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-51程序员来说,这种调试方法并不十分困难。

但是做这种调试不能够了解片内RAM的内容和程序的走向等有关信息。

2、将普通8031/80C31仿真器的仿真插头中P1.0~P1.7和P3.0~P3.6引出来仿真2051,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,P1口、P3口的增强下拉能力等等3、引脚说明AT89C2051芯片引脚如图3所示。

图3 AT89C2051引脚图1、VCC:电源电压。

2、GND:地。

3、P1口:P1口是一个8位双向I/O口。

口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。

P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。

P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。

当P!口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。

当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。

4、P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。

P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。

P3口缓冲器可吸收20mA电流。

当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。

用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。

P3口还用于实现AT89C2051的各种第二功能,如表1所列:表1 AT89C2051的第二功能引脚功能口P3.0 RXD串行输入端口P3.1 TXD串行输出端口P3.2 INT0 外中断0P3.3 INT1 外中断1P3.4 T0定时器0外部输入P3.5 T1定时器1外部输入P3口还接收一些用于闪速存储器编程和程序校验的控制信号。

5、RST:复位输入。

RST一旦变成高电平所有的I/O引脚就复位到“1”。

当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。

每一个机器周期需12个振荡器或时钟周期。

6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。

7、XTAL2:作为振荡器反相放大器的输出。

(五)、小马达原理motor的译音即电机、电动机。

电子启动器就是现在人们通常所指的马达,又称启动机。

它通过电磁感应带动启动机转子旋转,转子上的小齿轮带动发动机飞轮旋转,从而带动曲轴转动而着车。

具有瓷芯底座的新型低成本火花塞和启动器这两项零部件创新,奠定了汽车发展的技术基础。

(六)、旋转时钟旋转时钟,利用了视觉暂留的原理,有8只发光二极管排成一列,图中以圆圈代表发光二极管,最内侧的发光二极管为圆心,它们绕着圆心旋转,最外侧的发光二极管显示时间刻度,如图所示,当时针在12点时我们假设角度为0度,则每个小时时针之间的角度为360/12=30度,于是,当这一列发光二极管每旋转30度,,最外侧的发光二极管就点亮一个瞬间以呈现出时间刻度。

这样,如果在0,1秒之内,这列发光二极管能旋转完一圈,则人眼就会产生错觉,而把先后产生的时间刻度连成12个完整的时间刻度。

显示时针、分针的方法与显示刻度的原理相似。

实际中,分针较时针长,所以在图中我们假设分针用7只发光二极管来显示,时针用5只发光二极管来显示,例如,要显示3点整,在时间刻度的显示基础上,控制在0度上点亮7只发光二极管以显示分针指在12点位置上;然而当发光二极管转过90度时再显示5只以显示时针指在3点位置上,如图所示,由于发光二极管在不断的旋转,在0.1秒内重复点亮12点位置上的7只和3点位置上的5只发光二极管,直到1分钟以后在6度的位置上点亮7只发光二极管表示3点01分。

三、课题材料课题材料如表2所示。

表2 LED旋转时钟电路元件清单原件名称规格或型号数量图例稳压直流电源 1.5V~12V 1 纽扣电池3V 2 单片机AT89C2051 1电机1200rmp 1 万用板9cm*15cm 1无源晶振12MHz 1电容20pF 2 10uF 1 100uF 1 0.01uF 1二极管发光二极管白发红 1发光二极管白发蓝7 红外对管1对电阻470Ω8 4.7kΩ 1 560Ω 1四、方案设计旋转时钟主要有两个部分组成:电机部分和单片机控制发光二极管显示部分。

在单片机控制发光二极管显示部分,为了制作的方便,把单片机。

电池。

发光二极管等器件焊接到一个电路板上,这样可以使旋转的电路板成为一个独立的系统,如图所示,电路板的中心有一个电机轴插孔电机轴插入其中带动电路板旋转旋转。

相关文档
最新文档