版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要本设计要求以单片机为核心主体,完成最小系统板的设计与制作(通过Protel软件,对电路进行设计,调试。生成PCB板,再对元器件进行排布,焊接。)之后要进行初调试,证实电路板无误后才能进行下面的内容。电路板完成后,在总程序基础上通过编程设计家用多路定时控制器。本课程设计目标:具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。但重要的是要有一定的创新,因为此系统还有很多值得开发的功能,单纯的三路定时只是设计内容的基本要求。关键词:Protel,单片机,MCS-51目录摘要2引言31 绪论41.1系统背景41.1.1单片机技术及其发展特点41.1.2单片机
2、在电子技术中的应用71.1.3课程设计的内容与任务82 系统电路设计82.1 系统总体设计框架结构82.2 系统硬件单元电路设计92.2.1 时钟电路设计92.2.2 复位电路设计92. 2.3 按键电路设计102.3数码管电路设计112.3.1、数码管的分类112.3.2、数码管的驱动方式112.3 系统硬件总电路123 系统软件设计143.1 系统软件流程图144 实验结果和分析144.1 实验使用的仪器设备144.2 测试结果分析15结论15参考文献16附录16系统程序设计16Abstract25致 谢25引言我们在日常生活中,经常碰到一些需要定时的事情,例如:印相或放大照片,需要定在零
3、点几秒的时间,洗衣机洗涤衣物需要定在几分钟到几十分钟的时间,电风扇需要定在数十分钟的时间。完成这种定时的定时器有多种多样,在家用电器中采用机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大的缩减了它的使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的今天,电子定时器一定会逐步取而代之,这是不言而喻的。本文是基于51系列单片机设计的一种用于控制家用电器的设计方案。1 绪论1.1系统背景1.1.1单片机技术及其发展特点早期的单片机(Single Chip Microcomputer单片微计算机)只是将CPU及计算机外围功能
4、单元(如I/O口、定时/计时器、UART、RAM、ROM等)集成在一块芯片上。随着单片机技术的发展以及微处理器(MPU)技术及超大规模集成电路技术的发展,单片机集成了更多的用于控制目的的功能单元(如高速I/O口、ADC、PWM、WATCHDOG、 I2CBus - Inter IC Bus、CAN Bus Controller Area Network Bus等),从而成为严格意义上的单片微控制器(Single Chip Microcontroller)。图1-1所示的为MCS51单片机片内总体结构框图。 单片机系统以单片机为核心部件,可分为单机应用和多机应用。单机应用是指一个应用系统中只使用
5、一个单片机,这是目前应用最多的方式;多机应用是单片机在高科技领域应用的主要模式。单片机的高可靠性、高控制功能及高运行速度的“三高”特点必然使得未来的高科技工程系统将采用da单片机多机系统作为主要的发展方向。图1-2所示的为典型的单片机系统原理框图。图1-1 MCS51单片机片内总体结构框图 单片机的生存周期相对于普通CPU而言非常之长,如MCS8051已超过15年。以某类单片机(如8051/52)为核心,集成不同I/O功能模块的新单片机系列层出不穷;而某些单片机更是突出了以功能分类的特点(如Microchip 公司的 PIC单片机)。8位、16位、32位单片机共同发展也是当前单片机技术发展的另
6、一特点。单片机运算速度越来越快,为提高单片机抗干扰能力和降低噪声,尽量不采用提高时钟频率单一措施,而是通过调整单片机的内部时序、使用琐相环技术或内部倍频技术等技术,在不提高时钟频率的条件下,使运算速度提高了很多。 图1-2 典型单片机系统原理框图低电压与低功耗是单片机技术的发展的另一个特点。采用最新的集成电路制造技术,全静态设计使时钟频率从直流到数十兆任选,使功耗不断下降。PIC单片机、Motorola的某些单片机等在这方面具有很强的优势。为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片机商家尽量采用低噪声与高可靠性技术,在单片机内部电路中
7、采取了一些新的技术措施,如增加了抗EMI电路、增强了WATCHDOG的性能等。为降低单片机产品的成本,广泛采用掩膜(Mask ROM)、一次编程(OTP-One Time Programmable)和多次编程(MTP-Multi Time Programmable)单片机。过去成熟的单片机产品一般采用掩膜型单片机,由于掩膜需要一定的生产周期,而一次编程型单片机价格不断下降,使得近年来直接使用一次编程完成最终产品制造更为流行。近年来,一次编程型单片机需量大幅度上扬,为适应这种需求许多单片机都采用了在片编程技术(In System Programming)。未编程的一次编程芯片先焊在印刷板上,然后
8、再其进行编程,解决了批量写一次编程芯片时容易出现的芯片与写入器接触不好的问题。编程线与I/O线共用,不增加单片机的额外引脚。而多次编程向一次编程提出了挑战,一些单片机厂商采用FLASH存储器作为程序存储器(如ATMEL 公司的单片机),可多次编程。1.1.2单片机在电子技术中的应用单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离
9、不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密
10、的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机
11、、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。1.1.3课程设计的内容与任务本课程设计是基于ATMEL公司生产的AT89CS51单片机为主而设计的,本课程设计主要内容和任务是完成单片机最小系统板设计与制作,在此基础上通过编程设计家用多路定时控制器。使其具有正常数字钟功能,包括时间校正,具有至少三路定时开关控制功能,每路定时时间可以任意设置。当然,该定时器依然可以通过编程设计出多种功能,例如:电子日历,交通指示灯等等。2 系统电路设计时钟电路单元2.1 系统总体设计框架结构按键电路数码管显示控制中心单片机复位电路图2-1系统总体设计框架结构
12、复位电路:通过复位电路使所有的状态都恢复原始状态。时钟电路:通过该电路产生单片机工作所需要的时钟信号。按键电路:通过该电路改变单片机控制的功能。单片机 :控制整个电路。数码管 : 显示时间或者其它。2.2 系统硬件单元电路设计2.2.1 时钟电路设计图2-2 时钟电路设计该时钟电路是由晶体振荡器和两个微调电容组成的。在单片机芯片内部有一个高增益反相放大器,其输入端为引脚XTAL1,其输出端为引脚XTAL2。只需要在片外通过XTAL1和XTAL2引脚跨接晶体振荡器或在引脚与地之间加接微调电容,形成反馈电路,振荡器即可工作。由于该晶振使用的是12MHZ的晶体,因此它的时钟周期是0.167us,机器
13、周期为1us。2.2.2 复位电路设计图2-3 复位电路设计2. 2.3 按键电路设计 RST键:复位键,按下后灯管均亮。 1 键:其功能是当该键按下时,进入时间调整功能。 2 键:其功能是对被调整位加一。 3 键:其功能是对被调整位减一。 4 键:其功能是对定时进行设置。 5 键:其功能是对被定时位加一。 6 键:其功能是对被定时位减一。 7 键:其功能是切换定时状态和时钟状态。 8 键:其功能是切换星期、秒和时钟状态。图2-4按键电路设计2.3数码管电路设计数码管是一种半导体发光器件,其基本单元是发光二极管。2.3.1、数码管的分类数码管按段数分为七段数码管和八段数码管,八段数码管比七段数
14、码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮
15、。2.3.2、数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分
16、时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3 系统软件设计3.1 系统软件流程图开 始执行子函数主程序流程图:定时器0启动定时器1启动1>0 ?键盘扫描LED显示子程序刷新缓冲区子程序比较函数红绿灯子程序图2-5 主程序流程图说明:程序开始执行,启动定时器0和定时器1,然后执行whi
17、le语句,但条件一直成立,因此while语句中的子函数一直在执行。If语句也一直在判断有没有shift键有没有按下,是否进入了调时调分的阶段,一段进入,通过键盘扫描和键值判断,使得按键处理子程序进入新的状态,从而数码管显示新的内容。4 实验结果和分析4.1 实验使用的仪器设备本实验主要用到了电源,电脑,烧程器,电烙铁,元器件若干。4.2 测试结果分析通过按shift键来改变电路状态第一次按下shift键,进入调时状态。第二次按下shift键,进入调分状态。第三次按下shift键,进入第一路定时的调时状态。第四次按下shift键,进入第一路定时的调分状态。第五次按下shift键,回归时钟状态。第
18、六次按下shift键,进入第二路定时的调时状态。第七次按下shift键,进入第二路定时的调分状态。第八次按下shift键,回归时钟状态。然后按下1键,进入交通灯提示状态。按下2键,正式进入交通灯状态。按下shift键,回归原始时钟状态。结论本次试验终于接近尾声了,通过对家用多功能定时器进行设计与制作,我了解了设计电路的程序,也让我了解了定时器的基本原理和设计理念。本次实验主要内容是完成单片机最小系统的设计与制作,再在其基础上通过编程设计多功能定时控制器。本课程设计最大的难点在于编程的创新,即在已有的基本程序上对程序进行扩充,尽可能多的实现定时的多种功能。由于本课程设计采用的是C语言编写,更是增
19、加了编写难度,只得重新看一些关于Case、Switch等相关的语句、后来发现,其实只要了解了相关语句和想要实现的效果,编程其实并不难,虽然没有什么特别的创新,但第一次系统的进行这方面的训练无疑是为以后的深入打下基础。还有就是一些关于一些问题的处理,如:(1)软件程序的调试应该分模块进行,使每个模块趋于完整,正确,最后将各个模块整合起来进行统调。(2)充分利用电路板上其他空余硬件资源来协助调试程序,即:用指示灯来指示有没有调用键盘扫描子程序,有没有扫描到键值,有没有指示中断,定时器0和定时器有没有工作等。接近两个星期的坚持,累,但却快乐着。我的创新:1时钟的设置和定时的设置分别采用独立键控制,即
20、:键1和键4。键2、3和键5、6为辅助调节按钮。 2单独的键7用于显示定时的开启和关闭状态。即:当按下7键,相应的定时开启状态会出现,再按一下,定时关闭状态出现。 3单独的键8用于显示星期和秒的走动情况。即:当按下八键,数码管此时显示的为星期和秒的走动情况,秒的走动显示与仿真显示一致。参考文献1张俊谟.单片机中级教程.北京:北京航空航天大学出版社,2006.102谭浩强.C程序设计教程.北京:清华大学出版社,2007.73康华光,陈大钦.电子技术基础.北京:高等教育出版社,1999.64沈卫红.单片机应用系统实例与分析.北京:北京航空航天大学出版社,20025 Tyson Chandler.
21、Protel 99 SE multi-function timer schematic and PCB design 5 Tyson Chandler. Protel 99 SE multi-function timer schematic and PCB design Board .Compilation of microcomputer and interface techniques,2005附录系统硬件总电路图3-1系统硬件总电路系统程序设计#include<reg51.h>#define uchar unsigned char#define uint unsigned i
22、nt/*定义管脚*/sbit RELAY=P10;sbit LED1=P11;sbit LED2=P12;sbit LED3=P13;sbit LED4=P14;sbit LED5=P15;sbit LED6=P16;sbit LED7=P17;sbit Line1=P21;sbit Line2=P20;/*定义缓冲区及初始化*/uchar data TimeTab6=0x06,0x5b,0x4f,0x66;uchar data Tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; uchar data TimeTab14,TimeTab
23、24;/*定义参数及初始化*/char hour=12,minute=34,second=0,h=0,m=0,h1=0,m1=0;char second1;char flag=0,flag1=0,flag2=0;uchar Keyno=0;uchar num=0,count=0;uchar STATE=0;/*延时子函数*/void Delay( uint x) /自定义延时约0.1ms uint t; while(-x)for(t=0;t<120;t+) ; /*/* 刷新缓冲区子程序 */*/void RefreshTab(void)if(flag=0)TimeTab0=Tabhou
24、r/10; TimeTab1=Tabhour%10; TimeTab2=Tabminute/10; TimeTab3=Tabminute%10;if(flag=1) TimeTab10=Tabh/10; TimeTab11=Tabh%10; TimeTab12=Tabm/10; TimeTab13=Tabm%10; if(flag=2)TimeTab20=Tabh1/10; TimeTab21=Tabh1%10; TimeTab22=Tabm1/10; TimeTab23=Tabm1%10; if(flag=4)TimeTab0=0x00; TimeTab1=0x00; TimeTab2=Ta
25、b(50-second1)/10; TimeTab3=Tab(50-second1)%10;/*/* 按键处理子程序 */*/void Key_Process(void)switch(STATE)case 0: if(Keyno=1)STATE=1;break;case 1: if(Keyno=2)hour+;if(hour=24)hour=0;if(Keyno=3)hour-;if(hour=-1)hour=23;if(Keyno=1)STATE=2;break;case 2: if(Keyno=2)minute+;if(minute=60)minute=0;if(Keyno=3)minut
26、e-;if(minute=-1)minute=59;if(Keyno=1)STATE=3;flag=1;break;case 3: if(Keyno=2)h+;if(h=24)h=0;if(Keyno=3)h-;if(h=-1)h=23;if(Keyno=1)STATE=4;break;case 4: if(Keyno=2)m+;if(m=60)m=0;if(Keyno=3)m-;if(m=-1)m=59;if(Keyno=1)STATE=5;flag=0;break;case 5: if(Keyno=1)STATE=6;flag=2;break;case 6:if(Keyno=2)h1+;i
27、f(h1=24)h1=0;if(Keyno=3)h1-;if(h1=-1)h1=23;if(Keyno=1)STATE=7;break;case 7: if(Keyno=2)m1+;if(m1=60)m1=0;if(Keyno=3)m1-;if(m1=-1)m1=59;if(Keyno=1)STATE=8;flag=0;break;case 8:if(Keyno=4)STATE=9;flag=3; break;case 9:if(Keyno=5)STATE=10;second1=20;flag=4;if(Keyno=1)STATE=0;flag=0;break;case 10:if(Keyno
28、=1)STATE=0;flag=0;break;case 11:if(Keyno=1)STATE=0;flag=0;break;case 12:if(Keyno=1)STATE=0;flag=0;break;default:break;/*/* 数码管显示子程序 */*/void SEG_Display(void) if(flag=0) P0=TimeTabnum; if(flag=1) P0=TimeTab1num; if(flag=2) P0=TimeTab2num; if(flag=3) P0=0x49; if(flag=4) P0=TimeTabnum; /*红绿灯*/void hlh
29、d(void)if(second1=50&&STATE=10) STATE=11;second1=45;if(second1=50&&STATE=11) STATE=12;second1=30;if(second1=50&&STATE=12) STATE=10;second1=20; /*/ /* 比较函数 */*/void compare(void)if(h=hour)if(m=minute)STATE=4;if(minute=m+2)STATE=0; if(h1=hour)if(m1=minute)STATE=6;if(minute=m1+2
30、)STATE=0;/*/* LED显示子程序 */*/void LED_Display(void)switch(STATE) case 0: LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break;case 1: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break;case 2: LED3=1;LED2=0;LED4=0;LED5=0;LED6=0;LED7=0;break;case 3: LED4=1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break;case 4: LED4=
31、1;LED2=0;LED3=0;LED5=0;LED6=0;LED7=0;break;case 6: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break;case 7: LED5=1;LED2=0;LED3=0;LED4=0;LED6=0;LED7=0;break;case 8: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break;case 9: LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=0;break;case 10: LED2=0;LED3=1;LED4=0;LED
32、5=0;LED6=0;LED7=0;break;case 11: LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;break;case 12: LED2=0;LED3=0;LED4=1;LED5=0;LED6=0;LED7=0;break;default: break; /*/* 主程序 */*/void main(void)P1=0x00;EA=1;TMOD |=0x01;/定时器0计时50ms in 12M crystal TH0=0x3C; /初值TL0=0xB0;ET0=1;TR0=1;TMOD |=0x10; /定时器1用于动态扫描TH1=0xFa
33、; /初值TL1=0xF0;ET1=1;TR1=1; while(1)RefreshTab();LED_Display();compare();hlhd(); if(!Line1|!Line2)Delay(200);Key_Process();/*/* 定时器0中断用于计时 */*/void Timer0(void) interrupt 1TH0=0x3C; /重新赋值50ms溢出TL0=0xB0;count+;if(count=10) LED1=LED1; if (count=20) count=0; second+;if(flag=4)second1+; /秒加1 if(second=60
34、) second=0; minute+; /分加1 if(minute=60) minute=0; hour+; /时加1 if(hour=24) hour=0; /*/* 定时器1中断扫描显示+键值判断 */*/void Timer1(void) interrupt 3 TH1=0xFa; /定时2ms显示下一个数码管TL1=0xF0;switch(num)case 0: P2=0x0f;if(!Line1)Keyno=1;if(!Line2)Keyno=6;SEG_Display();break;case 1: P2=0x1f;if(!Line1)Keyno=4;if(!Line2)Keyno=5;SEG_Display();break;case 2: P2=0x2f;if(!Line1)Keyno=3;if(!Line2)Keyno=12;SEG_Display();br
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 放假前安全教育内容课件
- 地下室混凝土结构自防水性能提升全案课件内容
- 2025-2026学年上学期高一生物沪科版(2020)期末必刷常考题之细胞通过分化形成多细胞生物体
- 2025年度山东继续教育公需科目考试题(含答案)
- 山东省预防医学理论考试试题及答案
- 煤矿安全管理培训课件
- 公共基础知识测试题集(含答案)
- 2025年平安校园杯校园安全知识竞赛题库
- 【题库】有限空间作业完整版题库(含标准答案)
- 2021年保育员(高级)考试模拟试题(一四七八)
- 2024年《广西壮族自治区建筑装饰装修工程消耗量定额》(上册)
- 小学六年级全册体育教案(已整理)
- 2 试验二 系统相频特性对信号传输的影响试验 2
- 建筑装饰设计收费标准(完整版)资料
- GB/T 12970.1-2009电工软铜绞线第1部分:一般规定
- 湖南省邵阳市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 危险源辨识风险评价记录表格范例范例
- 阀门维修要求及验收标准
- 劳动防护用品规范使用培训课件
- 钢模板加工合同
- ICS国际标准分类号
评论
0/150
提交评论