




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于PIC的电子表设计与实现一、概述 近年来,国际市场上的单片机性能不断增强,价格却日益下降。随着我国加入WTO以及与国际市场接轨,世界许多著名半导体公司都在积极开拓我国市场,这使得国内上市的单片机品种型号越来越多,价格也越来越低。这给单片机爱好者或初学者提供了丰富廉价的物质基础,因此,有越来越多的在校学生、电子爱好者对单片机产生浓厚的兴趣。单片机与常用的TTL、CMOS数字集成电路相比掌握起来不太容易,问题在于单片机具有智能化功能,不光要学习其硬件还要学习其软件,而且软件设计需要有一定的创造性。这虽然给学习者带来一定的难度,但这也正是它的迷人之处,我们通过各种学习方式在短暂的时间内掌握单片机应用技术也是做得到的。通过对PIC单片机的认真学习,达到掌握和运用PIC设计简单系统的方法。选择设计电子表,主要是为了进一步熟练PIC的各个模块的用法、MPLAB集成开发环境、编程方法和加强自己运用PIC编程的能力,达到学以至用的目的。电子表是我们日常用到的必不可少的电子器件,了解其组成原理也有重要意义。(一)单片机的特点1高集成度,体积小,高可靠性 单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的。芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU。单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高。 2控制功能强 为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能。 3低电压,低功耗,便于生产便携式产品 为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V3.6V,而工作电流仅为数百微安。 4易扩展 片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。 5优异的性能价格比 单片机的性能极高。为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术。单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB。由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高。(二)单片机的发展历史、趋势及用处1.单片机发展简史单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段: (1)第一阶段(1976-1978)单片机的控索阶段。以Intel公司的MCS 48为代表。MCS 48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。 (2)第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS 48 基础上推出了完善的、典型的单片机系列MCS 51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。 完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。 CPU外围功能单元的集中管理模式。 体现工控特性的位地址空间及位操作方式。 指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。 (3)第三阶段(1982-1990)8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS 96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS 51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。 (4)第四阶段(1990)微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。 2.单片机的发展趋势 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 CMOS化近年,由于CHMOS技术的进小,大大地促进了单片机的CMOS化。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺。CHMOS和HMOS工艺的结合。目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。 低功耗化:单片机的功耗已从Ma级,甚至1uA以下;使用电压在36V之间,完全适应电池工作。低电压化:几乎所有的单片机都有WAIT、STOP等省电运行方式。允许使用的电压范围越来越宽,一般在36V范围内工作。低电压供电的单片机电源下限已可达12V。 低噪声与高可靠性:为提高单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施。 大容量化:以往单片机内的ROM为1KB4KB,RAM为64128B。目前,单片机内ROM最大可达64KB,RAM最大为2KB。 高性能化:主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性。采用精简指令集(RISC)结构和流水线技术,可以大幅度提高运行速度。现指令速度最高者已达100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能。小容量、低价格化:与上述相反,以4位、8位机为中心的小容量、低价格化也是发展动向之一。这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品。 外围电路内装化:这也是单片机发展的主要方向。随着集成度的不断提高,有可能把众多的各种外围功能器件集成在片内。除了一般必须具有的CPU、ROM、RAM、定时器/计数器等以外,片内集成的部件还有模/数转换器、DMA控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 串行扩展技术:在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。3.单片机的用处单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类大多数人不怎么熟悉的计算机,。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。单片机在民用和工业测控领域得到最广泛的应用。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地溶入我们每个人的生活之中。 单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产 上也极大地提高了生产效率和产品质量。二、电子表的构成(一)电子表的构成本次设计的电子表主要选用PIC单片机为核心,结合相关的元器件如共阴极LED数码显示器等,再配以相应的软件,达到制作简易电子表的目的。(二)实验中所需的器材共阴极LED数码显示器、一只廉价的的广泛用于电子表的32.6KHz微型石英晶体。(三)方案选择与相关技术 本设计选用PIC单片机16F877的模块定时器/计数器TMR1来实现定时、计数功能。由于TMR1自带低频功耗时基振荡源,该性能适合要求有时时钟功能,并且保持不间短走时,同时要求能耗低到最低限度的应用设计中。因此在本设计中,将TMR1用作低频低功耗时基振荡源,它可以工作于异步计数器模式,即使在单片机进入睡眠状态,TMR1也可以持续运行,当TMR1溢出时将会产生中断请求。在设计中,在TMR1自带振荡器的两个外部引脚上跨接一只廉价的广泛使用于电子手表的32.768KHz微型石英晶体,作为TMR1工作的时间基准。在本实验中,由单片机控制数字I/O口A口控制点亮D口上外接的6个LED数码管 ,D口控制其外接的6个LED数码管扫描显示时钟的时、分、秒。B口高4位引脚外接4个按键,控制修改时钟的时、分数字。三、PIC16F87单片机简介目前在世界一些著名的单片机产品系列中,PIC16F87X系列单片机是芯片内部包含有外围设备模块数量最多的单片机品种之一。87X各款单片机的内部结构大同小异,以CPU为中心的核心区几乎完全相同,不同的仅是Flash容量、RAM容量、EEPROM容量、外围模块种类和数量。其中877是PIC16F87X系列单片机中的“大哥哥”,它是只有40脚封装的型号,囊括了其它6款型号的所有功能。PIC16F877的芯片内部集成了15个外围设备模块,这些外围设备模块在启用时以及在工作过程中,都或多或少地需要CPU参与控制、协调或交换数据等各种服务工作。由于CPU的运行速度非常高,而各个外围设备模块的工作速度却非常低,况且这些外围设备模块也不是频繁地要求CPU对其服务。因此,通常采取一种让众多外围设备模块共享1个CPU,并且能够及时得到CPU服务的调度方法中断。(一) PIC16F877的特性说明(1)采用高性能的RISC CPU核心(2)8位微电脑控制芯片(3)8K14Flash程序存储器(4)5组I/O端口(A,B,C,D,E)(5)368Bytes数据存储器及256Bytes的EEPROM数据存储器(6)2组8位定时器TMR0,TMR2,及1组16位定时器TMR1(7)支持14个中断处理(二)端口介绍PIC16F877总共有5个8位可独立编程的通用并行输入/输出端口(可简称I/O口)。这5个端口之间不仅存在内部结构上的差异,而且同属于一个端口的各引脚的内部结构也不尽相同.由于PIC16F877属于8位单片机,因此每个端口都由数量不超过8个引脚构成。每个端口中的每跟引脚都可以用软件的方式单独编程,设定为输出或者输入引脚。1.端口A及与之相关的寄存器端口A是一个6位双端口,它的基本输入/输出功能的基础之上,复合了模/转换器的模拟量输入功能、A/D转换器所需的外接参考电压输入功能、定时器/计数器TMR0的外部时钟输入功能、主同步串行端口MSSP的从动选项择信号输入功能等。端口数据寄存器PORTA是一个可读可写的寄存器,也是一个用户软件与单片机引脚外接电路交换的界面。由于RA端口只有6个外接引脚,所以与之对应的数据寄存器也就只有低6位有效,无效的两位读出时也将会返回0。相应的数据方向寄存器是TRISA,它也只有低6位有效,无效的两位读出时也将会返回0。将TRISA寄存器的一位置1,把相应的端口A引脚变为输入,即把相应的输出驱动器置高阻态方式。对TRISA寄存器的一位清零会把输出锁存器的内容放到所选择的引脚上。A/D转换器控制寄存器ADCON1的低4位是可读可写的。它是定义A/D转换器模块输入引脚功能分配的一个控制寄存器。与RA端口有牵连的只有低4位(PCFG3:PCFG0)。2.端口B及与之相关的寄存器RB端口是一个8位双向I/O端口。它在基本输入/输出功能的基础之上,除了每个引脚内部增加了可统一编程的弱上拉电路,另外还复合的片载Flash低电压编程所需的3个引脚、外部中断输入引脚、电平变化中断功能等。端口数据寄存器PORTB与相应的数据方向寄存器TRISB的功用与端口A的相应寄存器是类似的。选项寄存器POTION_REG是一个可读可写的寄存器,包含着与TMR0、分频器和端口RB有关的控制位。端口引脚RB0和外部中断INT共用同一引脚,与该引脚有关的两个控制位含义如下:(1)INTEDG:外部中断INT触发信号边沿选择位。1=选择RB0/INT上升沿触发有效;0=选择RB0/INT下降沿触发有效;(2) /RBPU:RB端口弱上拉电路使能控制位1=RB端口弱上拉电路禁止;0=RB端口弱上拉电路使能;图表1 选项寄存器POTION_REG的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0/RBPUINTEDGT0CST0SEPSAPS2PS1PS0中断控制寄存器INTCON是一个可读可写的寄存器,它将第一梯队的3个中断源的标志位和屏蔽位(也称使能位),以及PEIE和GIE囊括其中。不过与RB端口有关的位只有两个: RBIF:端口RB的引脚RB4RB7电平变化中断标志位。1=RB4RB7已经发生了电平变化。(必须用软件清0)0=RB4RB7尚未发生电平变化。 RBIE:端口RB的引脚RB4RB7电平变化中断屏蔽位。1=允许端口RB产生的中断;0=屏蔽端口RB产生的中断;图表2中断控制寄存器INTCON的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0GIEPEIET0IEINTERBIET0IFINTFRBIF3.端口C及与之相关的寄存器RC端口也是一个8位双向I/O端口。它在基本输入/输出功能的基础之上,复合了多项较为复杂的功能,如定时器/计数器TMR1的外接时钟功能、主同步串行端口MSSP的外接引脚等。另外每个脚内部都设置了一个施密特触发输入缓冲器,对于输入信号波形可以起到整形作用。端口数据寄存器PORTC与相应的数据方向寄存器TRISC的功用与端口A的相应寄存器是类似的。4.端口D及与之相关的寄存器RD端口是一个8位双向I/O端口,它在基本输入/输出功能的基础之上,复合了1项功能,即并行从动端口。另外,每个引脚在作为I/O脚使用时,是经过施密特触发缓冲器输入的,而在工作于并行从动端口方式时,则是经过TTL缓冲器输入的。端口方向控制寄存器TRISE不是一个完全可读可写的寄存器。与RD端口有牵连的只有一个位PSPMODE控制位。当该位置1,RD工作于并行从动端口方式,当该位清0时,RD工作于通用I/O端口方式。(三)单片机的中断 中断就是当计算机系统正在执行某程序时,出现某种特殊状况,如有按键按下、定时时间到、发生电平变化等,此时CPU需要暂时停止当前的程序,转去执行处理有按键按下、定时时间到或发生电平变化等情况的某段特定程序,待这段特定的程序执行完毕之后,再回到原先的程序去执行。中断控制方式使CPU在平时可以利用充分的时间去处理主要事件,而当外界有特殊情况需要处理时CPU也不会错过,这样的工作效率较高,对于PIC单片机来说,一次中断活动的全过程大至可以归纳为以下几个阶段:中断请求、中断屏蔽、中断响应、现场保护、调查中断源中断处理、清除标志、恢复现场、中断返回其中第1、2、3、和9阶段是由硬件自动实现的,而4、5、6、7、8阶段则是在编程中完成。1.与中断功能有关的寄存器:与中断功能有关的特殊功能寄存器共有6个:选项寄存器OPTCON-REG、中断控制寄存器INTCON、第1外围设备中断标志寄存器PIR1、第1外围设备中断屏蔽寄存器(又称中断使能寄存器)PIE1、第2外围设备中断标志寄存器PIR2和第2外围设备中断屏蔽寄存器PIE2。图表3 与各中断功能有关的寄存器的控制位寄存器名称寄存器符号寄存器地址寄存器内容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0选项寄存器OPTION-REG81H/181H/RBPUINTEDGT0CST0SEPSAPS2PS1PS0中断控制寄存器INTCON0BH/8B/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第1外设中断标志寄存器PIR10CHPSPIFADIFRCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF第1外设中断屏蔽寄存器PIE18CHPSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IE第2外设中断标志寄存器PIR20DH-REIFBCLIF-CCP2IF第2外设中断屏蔽寄存器PIE28DH-EEIEBCLIE-CCP2IE2.CPU对中断的处理: 不论各种中断屏蔽位和全局中断屏蔽位为何值,只要某一中断源的中断条件得到满足,单片机就会向CPU发出中断申请,并将响应的中断标志位置1,而该中断是否能得到CPU的响应则取决于和它相关的中断屏蔽位的值。如果该中断被一路放行,则中断申请被递交给CPU,CPU响应中断后,全局中断屏蔽位GIE自动由硬件清零,以免发生重复响应;然后由硬件自动把当前PC指针压入堆栈,并把PC指针指向中断失量地址0004H,从而进入中断服务程序开始执行;中断服务程序的开始,CPU先对有关寄存器进行保护,再检查各个中断源标志位以确定是哪儿中断源发生的申请,把对应的中断标志位清零并输对应的程序来执行。中断服务程序执行完毕后,再执行中断返回指令“RETFIE”退出中断,此时,硬件自动将保存在栈顶的断点地址弹回到PC指针中,使CPU返回继续执行被中断的主程序。3.定时器/计数器TMR1模块TMR1的主要用途:a) TMR1可以像TMR0那样,用做时间定时器和事件计数器;b) 借助于自带的低频时基振荡器,用来实现记录和计算真实的年、月、日、时、分、秒的实时时钟RTC功能;c) TMR1还可以与CCP模块配合使用,实现输入捕捉或输出比较功能。(1)定时器/计数器TMR1的结构TMR1是由2个8位宽的寄存器TMR1H和TMR1L组成的16位定时器/计数器,通过软件可读可写。TMR1H:TMR1L从0000H递增到FFFFH之后再返回到0000H时,会产生高位溢出,同时将会产生溢出中断标志位TMR1IF(PIR1的位0)为1,如果此前相关的中断使能控制位都被全能,还会引起CPU的中断响应。通过对中断使能位TMR1IE(PIE1的位0)的置1或清0,可以允许或禁止CPU响应TMR1溢出中断。TMR1有两种工作方式:定时器方式和计数器方式。其中计数器方式又同步计数器工作方式和异步计数器工作方式。TMR1的时钟信号或触发信号共有以下4种方式: 由内部系统时钟4分频后获取,即取自指令周期; 从RC0/T1OSO/T1CKI引脚获取;从RC1/T1OSI/CCP2引脚获取; 自带振荡器产生。 定时器/计数器TMR1可以工作在定时方式和计数器方式,这由它的时钟源选择位TMR1CS(TMR1控制寄存器T1CON的位1)确定。TMR1CS置0,选择定时工作方式;TMR1CS置1,选择计数工作方式。(2)定时器/计数器TMR1相关寄存器 TMR1控制寄存器T1CON是一个只用到低6位的可读/写的寄存器。最高两位未用,读出时返回0。图表4 TMR1控制寄存器T1CON的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0T1CKPS1T1CKPS0T1OSCEN/T1SYNCTMR1CSTMR1ON其余各位的含义如下:Bit5:Bit4(T1CKPS1 T1CKPS0)分频器分频比选择位。Bit3(T1OSCEN)TMR1自带振荡器使能位。1=允许TMR1振荡器起振 ; 0=禁止TMR1振荡器起振,非门的输出端呈高阻态;Bit(/T1SYNC)TMR1外部输入时钟与系统治时钟同步控制位。TMR1工作于计数器方式(T1SYNC=1时);1=TMR1外部输入时钟与系统治时钟不保持同步;0= TMR1外部输入时钟与系统治时钟保持同步; TMR1工作于定时器方式(T1SYNC=0时,该位不起作用)。Bit1(TMR1CS)时钟源选择位。1=选择外部时钟源,即时钟信号来源于外部引脚或者自带振荡器;0=选择内部时钟源(fosc/4=Tcyc指令周期);Bit0(TMR1ON)使能控制位(这点优于不能被关闭的TMR0)。1=启用TMR1;0=关闭TMR1; 与定时器/计数器TMR1相关的其它寄存器:第一外设中断标志寄存器PIR1的位0(TMR1IF)为TMR1溢出标志位。TMR1IF置1 TMR1发生溢出, TMR1未发生溢出。第一外设中断屏蔽寄存器PIE1的位0(TMR1IE)为TMR1溢出中断使能位。TMR1IE置1允许TMR1溢出后产生中断,为0屏蔽TMR1溢出后产生的中断。中断寄存器INTCON的位7(GIE)为全局中断总使能位。置1允许CPU响应所有中断源产生的中断请求,置0禁止CPU响应所有中断源产生的中断请求。INTCON的位6(PEIE)为外设中断屏蔽位,置1允许CPU响应来自第二级的中断请求(TMR1为第二级的中断),置0禁止CPU响应来自第二级的中断请求。四、硬件设计(一)硬件电路规划 为了充分利用现有演示板上的电路元器件资源,在端口RA控制点亮D口上外接的6个LED数码管,端口RD控制外接的6个LED数码管显示时间。端口RB高4位引脚外接4个按键,控制修改时钟的时间时、分的数字。由于在应用TMR1的自带振荡器时,将会占用端口RC的部分引脚RC0/T1OSO和RC1/T1OSI,因此,端口RC上原有的8个发光二级管不方便再使用,在TMR1自带振荡器两个外接引脚RC0/RC0/T1OSO和RC1/T1OSI上跨接一个廉价可以取自电子表的微型32.768KHz石英晶体和两只15PF的瓷片电容器。单片机的系统时钟采用电路板原带的RC时基振荡器外接阻容器件。要此设计中,采纳RC振荡器方式,既可以节省成本,又使得单片机具有更快的启动时间,也不会影响时钟振荡器互相独立,其计数器的递增速度完全与系统时钟无关。(二)LED数码管相关说明LED数码管内部包含8只发光二极管,其中7只发光二极管构成字型笔段(ag),1只发光二极管构成小数点(dp).对于任何一只发光二极管,只要阳极为高电平、阴极为低电平,并且电位差高于其阈值(约为1.72.1V)就会被点亮.根据各二极管公共端连接方式的不同,又有共阴极和共阳极LED数码管之分,本次设计采用6只共阴极LED数码管来显示时钟的时间.(三)振荡器的选择 单片机的系统时钟(即主时钟)采用电路板原带的RC时基振荡器外接阻容器件.在对于系统时钟精度要求不严格的项目中,采用RC振荡器方式,既可以节省成本,又使得单片机具有更快的启动时间,在此选择这种方案并不会影响电子表的走时精度,因为TMR1自带振荡器与系统时钟振荡器互相独立,其计数器的递增速度完全与系统时钟无关.RC振荡频率随着电源电压VDD,RC值及工作环境温度的变化而变化。同时由于工艺参数的差异,对不同芯片其振荡器频率将不同。另外,当外接电容CEXT值较小时,对振荡器频率的影响更大,当然,我们也应考虑电阻电容本身的容差对振荡器频率的影响。图1 RC振荡电路图1所示的是RC振荡电路,如果REXT低于2.2K,振荡器将处于不稳定工作状态,甚至停振。而REXT大于1M时,振荡器又易受噪声、湿度、漏电流的干扰。因此,电阻REXT取值最好在3K100K范围内。在不接外部电容时,振荡器仍可工作,但为了抗干扰及保证稳定性,建议接20PF以上的电容。PIC单片机片内有一4分频电路,从OSC1/CLKIN引脚输入或RC振荡器产生的振荡频率fOSC经4分频后从OSC2/CLKOUT引脚输出4分频信号,该信号可用于测试或作为其它逻辑电路的同步信号。1.晶体的选择对于一个高可靠性的系统设计,晶体的选择非常重要,尤其设计带有睡眠唤醒(往往用低电压以求低功耗)的系统。这是因为低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,原因时上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点,负载电容,激励功率,温度特性,长期稳定性。2.电容C1,C2的选择(1)因为每一种晶振都有各自的特性,所以最好按制造厂商所提供的数值选择外部元器件。 (2)在许可范围内,C1,C2值越低越好。C值偏大虽有利于振荡器的稳定,但将会增加起振时间。(3)应使C2值大于C1值,这样可使上电时,加快晶振起振。五、软件设计(一)设计思路对于TMR1的编程,既可以采用软件查询的方法,也可以采用中断的方法,本设计选用中断的方式。A口控制点亮D口上外接的6个LED数码管及D口控制LED数码管显示时间的时、分、秒是由单片机执行延时子程序循环控制的。B口上按键修改时钟由单片机执行延时程序查询按键情况控制的。在主程序的初始化阶段,以及在每次执行中断服务程序时,都需要给TMR1赋一个初始值。该值的计算方法为:TMR1初始值=1000H-32768=65536-32768=32768=0080H因此,TMR1的初始值是80H,TMR1的初始值是00H,这样就可以保证,在自带振荡器每产生32768个方波,TMR1就溢出一次。(二)设计中两种情况产生的中断1. PORTB端口最高的4个引脚(RB7RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。中断控制寄存器INTCON的位0即RBIF是端口RB的引脚RB4RB7电平变化中断标志位,当其为1时,RB4RB7引脚已经发生了电平变化,则用软件清0并执行相应的中断子程序,然后返回原先的程序去执行. 在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器 PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。三是,一般都利用PIC单片机的引脚功能来检测按键,所以必须处理好按键消抖的问題。引脚中断程序设计:(1) 在主程序里先设置有关的寄存器。设置TRISB寄存器,使RB7RB4相关的引脚处于输入状态;如果需要弱上拉,通过OPTION_REG的第7位设置;BCF INTCON ,RBIFBSF INTCON ,RBIEBSF INTCON ,GIE(2)响应状态变化后的中断服务程序。检查RBIF是否为l,为l则是引脚变化引起的中断;调用按键处理程序;清除RBIF标志。2. 由定时器/计数器TMR1产生中断。当第1外围设备中断标志寄存器PIR1的位0(TMR1IF)即定时器/计数器TMR1模块溢出中断标志位为1时,TMR1溢出。用软件清0,然后执行相应程序,最后返回。TMR1中断程序设计:(1)在程序里先设置有关的寄存器MOVLW 80H ;设置为1S溢初始值MOVWF TMR1HCLRF TMR1LCLRF INTCON(2)状态变化后的中断服务程序。检查TMR1IE是否为1,为1则是TMR1发生溢出产生的中断; BCF PIR1,TMR1IF ;软件清0MOVLW 80H ,MOVWF TMR1H ;对TMR1装载初始值(三)中断的现场保护和恢复问题:中断现场的保护是中断技术中一个很重要的环节。在进入中断服务程序期间,只有返回地址,即程序计数器PC的值被自动压入堆栈。若需要保留其他寄存器的内容,就得另想办法。由于PIC单片机的指令系统中没有像其他单片机那样的PUSH(入栈)和POP(出栈)之类的指令,所以要用1段用户程序来实现类似的功能。因为是用1段程序来实现现场保护,而程序的执行有可能会影响到W寄存器和STATUS寄存器,所以,首先应该把这2个寄存器保护起来,然后再去保存其他用户认为有必要保护的寄存器。并且在PIC单片机中,中断现场数据不是保留到芯片的堆栈存储区中,而是保留在用户自己选择的一些文件寄存器(即RAM数据存储器单元)中,当然一般应该选择通用寄存器来保护现场。;保护现场程序1MOVWF W_TEMP ;复制W到它的临时备份寄存器W_TEMP中 2SWAPF STATUS,W ;将STATUS寄存器高低半字节交换后放入W3CLRF STATUS ;不管当前处在哪个体,都设置体0作当前体 4MOVWF STATUS_TEMP ;保存STATUS到体0上的临时寄存器STATUS_TEMP 5SWAPF STATUS_TEMP,W ;将STATUS_TEMP寄存器高低半字节交换后放入W ;恢复现场程序6MOVWF STATUS ;把W内容移动到STATUS寄存器,(同时也把当前体恢复到原先的体上) 7SWAPFW_TEMP,F ;将W_TEMP内容高低半字节交换后放回 8SWAPFW_TEMP,W ;再次将W_TEMP内容高低半字节交换后放入W六、总结 本系统完成了简易电子表的制作,LED数码管能够准确无误的进行实时时间的显示,并能实现时间可调功能。在此设计中,单片机的系统时钟采用电路板原带的RC时基振荡器外接阻容器件并采纳RC振荡器方式,既节省成本,又使得单片机具有更快的启动时间,也不会影响时钟振荡器互相独立,其计数器的递增速度完全与系统时钟无关。这样就使整个系统简洁,可靠性高,性能稳定,本系统达到了设计的基本要求和发挥部分的要求。经过本次设计,我对PIC16F877单片机的应用和其芯片功能有了更深层次的理解。单片机的实践性很强,自己实际动手,实际体验其开发过程,这是至关重要的。在这次设计中还有欠缺的方面,我在今后的学习工作中会加以注意。附录一 电子表的硬件电路原理图附录二 汇编程序流程1. 主程序流程图主程序关闭TMR1向TMR1赋1S溢出初始值清出全部中断标志位及其使能位设置体1为当前体清除所有外设中断使能位设置D口、A口为输出C口为输出、RC0脚为输入定义A口所有相关引脚为普通数字I/O脚设置B口高四位为输入、低四位输出使能TMR1体0为当前体,开放全局中断和外设、RB电平变化产生的中断对A口、B口、D口赋初始值设置控制寄存器预分频比为1:1,外部时钟源、异步使能振荡器时钟清0计时子程序显示子程序2. 中断服务子程序流程图中断服务子程序SERV 保护现场W、STATUS是TMR1模块溢出中断调查中断源是RB电平变化产生的中断TMR1溢出中断处理程序清除TMR1溢出中断标志位是其他情况引起的错误操作,则不作任何处理,恢复现场子程序retfie0RB中断处理程序清除RB中断标志位关闭TMR1对TMR1装载初始值测试RB位4控制按键是否按下仪 否 是秒个位自加1调用延时子程序delay1 计时、显示转换寄存器位0置1再次测试RB位4控制按键是否按下员 否测试RB位5控制按键是否按下转分个位修改子程序RB4Serv 是 恢复现场子程序retfie1 是 否 测试RB位6控制按键是否按下调用延时子程序delay1恢复现场子程序retfie0 是 否延时子程序delay1返回再次测试RB位5控制按键是否按下 否 是再次测试RB位6控制按键是否按下 是转分十位修改子程序RB5Serv 否转时个位修改子程序RB6Serv 是测试RB位7控制按键是否按下 否 是延时子程序delay1再次测试RB位7控制按键是否按下转时十位修改子程序RB7Serv 否 是3. 时间显示子程序流程图 显示子程序LEDSCAN将秒个位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay将秒十位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay将分个位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay将分十位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay将时个位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay将时十位查表送D口显示,D口控制点亮D口上右边第一个数码管调用时间延时子程序delay测试计数、显示转换寄存器Count位0是否为0 是 否清0Count,返回到计数子程序LOOP 4. 计时子程序流图程计时子程序LOOP 测试秒个位是否满10 否 是秒十位自加1 测试秒十位是否满6 否 是分个位自加1测试分个位是否满10 否 是分十位自加1测试分十位是否满6 否十个位自加1 是测试十个位是否满4 否 是 测试十个位是否满10测试十个位是否满2 否 否 是 时钟清0显示子程序LEDSCAN 是十个位清0时十位自加1 附录三 源程序LISTP=16F877A#INCLUDEP16F877.INC N1 EQU 30H ; 定义N1 、M1 为DELAY的外循环和循环内变量 M1 EQU 31HN2 EQU 32H ;定义N2 、M2 为DELAY1的外循环和循环内变量 M2 EQU 33HCOUNT EQU 20H ;定义计数、显示转换寄存器COUNT的地址SECEND_L EQU21H ;定义秒个位存储地址SECEND_H EQU22H ;定义秒十位存储地址MINUTE_L EQU23H ;定义分个位存储地址MINUTE_H EQU24H ;定义分十位存储地址HOUR_L EQU25H ;定义时个位存储地址HOUR_H EQU26H ;定义时十位存储地址W_TEMP EQU27H ;定义W保护寄存器地址STATUS_TEMP EQU28H ;定义STATUS保护寄存器地址;*复位向量和中断向量*ORG 000H ;定义主程序存放区域的起始地址NOP ;设置一条ICD必须的空操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电梯导轨行业当前市场规模及未来五到十年发展趋势报告
- 陕西省安康市岚皋县2025年中考二模数学试题含解析
- 擀面皮基础知识培训
- 2025年保育员理论考试试题试卷(附答案)
- 2024年园林绿化风景工程知识考试题(附含答案)
- 2025年家畜饲养员及繁殖学知识考试(附含答案)
- (2025年)广东省湛江市中级会计职称经济法预测试题含答案
- 【2025年】河南省驻马店市中级会计职称经济法预测试题含答案
- 辽宁省沈阳市皇姑区2024-2025学年七年级下学期期末语文试题
- 小麦栽培技术试题及答案
- 2025-2030年中国电动轮椅行业市场现状供需分析及投资评估规划分析研究报告
- 计件工资协议书
- 美发店租工位合同协议
- 孕产妇围产保健技能竞赛题库
- 2025台州市路桥区路桥街道社区工作者考试真题
- 2025慢病管理行业市场分析报告
- GB/T 196-2025普通螺纹基本尺寸
- 供电一线员工服务规范培训
- 皮肤医美行业分析
- 安全培训课件(八大作业)
- 2025年信息技术实习生培训协议
评论
0/150
提交评论