PIC单片机万年历设计报告_第1页
PIC单片机万年历设计报告_第2页
PIC单片机万年历设计报告_第3页
PIC单片机万年历设计报告_第4页
PIC单片机万年历设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

基于PIC片的万年的计1设计目的通过本课程设计,进一步了解课程设计的要求和写作过程,了解课程设计的研究方法,培养文献检索能力、创新能力、文字表达能力等。本设计主电路都采用目前流行的简单的典型电路接法单实用定廉价。本设计可起到一个很好的教学目的和实验目的,对于认识IC片机也有一定的好处,能更加熟悉单片机和其它芯片之间的通信。2设计的主要内容和要求主PIC16F87X系列单片机是美国微芯公司(推出的单片机系列,采用精简指令集结构(RISC)的高性价比嵌入式控制器,其总线结构采取数据总线和指令线分离独立的哈佛(Harvard)结构。所以我们要先掌握精简指令集结构和哈佛结构的特点和用法。实时时钟芯片DS1302和温度传感芯片都是DALLAS公司出产的,都采用单总线数据传送方式,所以我们先要弄懂单总线传送方式是一个什么样的传送方式。1602液晶芯片是一款常见的LCD,对它的读写我们要注意读写时序,还有PIC单片机速度比8051单片机要快,以前1602写操作前不会检查忙否,但PIC一定要确认1602不忙才进行写操作。PIC16F87X系列单片机资源很丰富,故控制寄存器较多,要注意运用,还PIC16F87X系列单片机有些引角在开出厂时输入输出的是模拟信号,要对其控制寄存器进行设置。主1)设计要做到操作简单实用廉价;要能显示秒、分、时、天、月、周、年、农历以及闹钟等信息,并能调整以上信息;键盘控制调整时钟信息和显示要灵敏不能出现较大的延时,灵活,可移植性强,能够随时对电路进行改进。3整体设计方案为提高设计效率,本设计拟将整个系统模块化。采用的整体设计方案如图3.1所示,整个系统由[1]

、显示电路2]

,独立键盘电路3]

、DS1302实时时钟电路[4]、复位电路等部分组成。图3.1整体设计框图当电源开关打开后,系统电路初始化,一从实时时钟电路中读取一串时钟信息,二从度传感电路读取一串温度信息,然后MCU系统对采集到的进行变换和处理再通过LCD显示出来完成一次显示过程独立键盘与外部中断连接,当有键盘按下时,触发中断,进入中断服务子程序,子程序将会判断哪个键被按下了,有什么作用,要进行怎样的处理;复位键按下,系统将重新初始化,并再按上面所述执行下来。4硬件电路的设计本设计中的万年历的硬件电路主要由电路实时时钟电路独立键盘电路四部分组成:MCU电主要元器件单片机振33pF电容电阻、开关。系列单片机是美国微芯公司Microchip)推出的单片机系列,采用精简指令集结构的高性价比嵌入式控制器,其总线结构采取数据总线和指令线分离独立的哈佛结构,哈佛结构是数据存储器与程序存储器独立编址也就是两种存储器位于不同的逻辑空间里使得它在执行一条指令的同时,就可以提取下一条指令,因此具有很高的流水处理速度。其高速度、低电压工作,低功耗,强大驱动能力,低价OTP技术,体积小巧等都体现了单片机工业的新趋势;其在线编程功能可以极大地满足市场的需,同时第三方开发的C语言开发具,更使得研发工程师能够快速地开发升级产品,满足市场不断变化的需求。其节约成本的最优化设计,适于用量大、档次低、价格敏感的产品[PIC16F877有40接脚,每根接脚都有其特定功能,例如与Pin32(VDD)为正电源接脚Pin12Pin31(VSS)为地线接脚而有些接脚有两种甚至三种以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接脚,在系重置(后,可自动成为模拟输入接脚,接收模拟讯号,也可经由程序规划为数字输出输入接脚。设计中以PIC16F877A片机为主芯片,、等为辅芯片,将结果在LCD上显示。具体总原理图如图4.1。图.1总原理图电路图图4.2MCU电路图实主要元器件电容5K\10K\20K电阻DS1302是ALLAS公推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节态AM,通过简单的串行接口与单片机进行通信。实时时/日历电路秒、分、时、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过示决定采用4或小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信,公需用到三个口线:RES(复位),数据线),(3)SCLK(串行时钟)。时的读数据以一个字节或多达个字节的字符组方式通信。工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302是由DS1202改进而来,Vcc1为可编程涓流充电电源,附加七个字节存储器。实时时钟具有能计算2100年之前的秒、分、时、日期、星期、月、年的能力还有闰年调整的能力这就使本来要通过复杂的算法来计算出的星期闰年的计算简单了许多。设计中我们要设计一个高稳定晶振电路,这里我们用二片电容和一个32.768MHz的晶振。具体电路连接如图4.2所示。图4.3实时时钟电路图独主要元器件:键盘10千欧和1欧电阻、电源和地等等。键盘电路一般都是让端口检测低电平有用扫描的方法检测哪个键有按下也有用中断的方法检测。本设计中的独立键盘是前者,一般键盘可直接接地,但这里为了稳定起见,在挂键盘的端口用了个上拉电阻。具体电路连接如图所示。图4.5独立键盘电路图5软件设计软件设计部分可分为程序示子程序和DS1302实时时钟子程序、DS18B20温度计子程序、键盘服务子程序等。

在主程序中需要完成整体的功能构架并对各芯片的初始化另外在主程序模块中还需要设置定时器0并对它们进行初始化。主程序一次循环流程图如图所示。当打开电源开关时,各个模块初始化,然后显示固定在液晶上的用于美化显示的图形。之后读取温度信息,定时初始化,读取时间等信息,冒号闪烁,读取星期、农历信息,显示所有信息,结束一次循环。在实际运行时,显示完所有信息后,将返回到读取温度子函数前再往循环下执行。

图5.1主程序流程图在主程序中进入键盘服务程序后开始扫描键盘如果设置键没有键按下或是按下次数K则本次扫描结束设置键按下次数K=K%10=1;则可通过加减键调节秒若设置键按下次数则可通过加减键调节分;若设置键按下次数K=K%10=3则可通过加、减键调节时;若设置键按下次数K=K%10=4,则可通过加、减键调节天;若设置键按下次,则可通过加减键调节年若设置键按下次数K则可通过加减键调节星期;若设置键按下次数K,则可通过加、减键调节闹铃开关;若闹铃关,则设置键按下次数K=K%10=8,将回到初始显示界面。若闹铃,则设置键按下次数K=K%10=8,则可通过加、减键调节闹铃分;则可通过加、减键调节闹铃时;若设置键按下次数K=K%10=10,将回到初始显示面。

LCD显示

图5.2独立键盘服务流程图在LCD显示子程序中,初始化后,LCD中读状态字,判断LCD是否在忙状态,不是则可向LCD写控制命令,再写数据,即显示数据。图5.3LCD显示流程图器材:LCD(LGM12641BS1R)单片机红色法官二极管DS1302的振的容10k的电阻1k的阻Button按

一个一个一个一个个个五个四个四个目的和1.1

设计目的掌握单片机8031性能及使用方法掌握使用单片机编程的方法;3解七段数码显示数字的原理;掌握多位数字的显示技术;掌握ADC0809/数转换的应用;1.2设计的内容由于日常电压都是模拟量,要把他们的输出变为数字量就需要有/数转换器。本次实验选用的是八位模/数转换器ADC0809。其次,计算机中的数字都是十六进制数而我们习惯于十进制数的读写因此在软件设计中则要把十六进制数转换成十进制数在显示的时候也是如此本装置的输出用三位显示,因此在软件设计中还要解决数字输出与LED的接口问题。硬件则需要将输出线接到八段数码管上。原理框图1.3设计要求.可测量0~99V的模拟电压;.精确到0.1V;.结果用态显示;硬件电路设计8031单片机8031为字长8位的单片微型计算机中央处理器内部内部ROM、两个16位的定时计数器、四个8位的I/O(P0、P1、P2、P3个全双工的串行口、五个中断源以及时钟等组成。它具有速度快、功能强、功耗底、抗干扰性好、价格低廉等特点。它是标准的引脚双列直插封装()形式。八位模/数转换器ACD0809典型的8位8通道逐次逼近式转换器引脚双列直插式封装可实现8模拟信号的分时采集片内有8模拟选通开关以及相应的通道地址锁存译码电路,其转换时间为微秒左右。A/D转换用于实现模拟量到数字量的转换。按转换原理可分为四种,即:计数式A/D转换器、双积分式A/D转换器、逐次逼近A/D转换器和并行式A/D转换器。目前使用较多的为后三种。双积分A/D转换器具有高精度、抗干扰性好、价格低廉等特点,但速度较慢经常应用于对速度要求不高的仪表中逐次逼近式A/D转换器在精度速度和价格上都适中是目前最常用的A/D转换器并行式A/D转换器是一种用编码技术实现的高速A/D转换器其速度最快格也最高于要求较高的场合。综上,本设计选用逐次逼近式位A/D转换芯片ADC0809。ADC0809的主要技术特性和指标:·分辨率:8位。·转换时间:取决于芯片时钟频率。·单一电源:+5V。·模拟输入电压范围:单极性~5V,双极性+5V或+10V。·具有可控三态输出锁存器。·启动转换控制脉冲式(正脉冲升沿使内部所有寄存器清“”,下降沿使A/D转换器开始。LED显示器通常所说的LED显示器有七个发光二极管组成,因此也称之为七段LED显示器。此外,显示器中还有一个圆点型发光二极管,用于显示小数点。ae3.软件电路设计3.1设计思路本题要求输入的模拟电压,结果LED显示。由于计算机读入的只能是数字量因此首先要用模/转换器ADC0809采集到的数据转换成数字量送入8031行处理再者用LED显示结果时就要考虑LED的接口问题。在程序中要完成的还有输入量于输出量的对应问题。ADC0809八位的模/数转换器,数字范围为0~255,而输出要求0~100因此,模拟量与数字输出的变化比为100/255。在计算机乘法中不能给一个数直接乘以所以在处理输入值时就必须计算输入值*4/10。算得的值不必再进行其他转换便可通过LED显示。3.2程序流程图显示程序led:;位控口部分acc.1,b1;否有小数点jmpb1:movdptr,#outsegshow:movx@dptr,ar6,#01hacalldelayincrlajbacc.3,ld1leddptr,#outbit#0ald1:starttable:incamovcretdb06h4fh6dhdb7dh6fhtable1:amovcretdb86h0cfhdb0edh0fdh87h0ffh0efh#0djnzr7,DelayLoopdjnzr6,DelayLoopret3.3程序清单outbit9002h

;关所有八段管;返回;延时子程序outsegstart:movdptr,#outbit#0a;关所有八段管a;起动A/Djisuan:movx@dptr;把ADC的输出赋给b,mulaba,#0ffhdivabmulabmulaba,30hdivaba,32ha,bdivaba,32hdivab

;积的高位存入30h单元;积的低位存入31h单元;15-51是进制转换问题;商存入32元;余数存入33h单元;高位的总商;b中放总后的余数;把数位存入缓存区cjne

;

把十位存入缓存区70h,#09h;出处理部分71h,#09h72h,#09hjmpxianshia1:mov;xianshi:movr0,#70hr3,#01hled:

把个位数存入缓存区;位控口部分acc.1,b1;是有小数点jmpb1:movdptr,#outsegshow:movx@dptr,ar6,#01hacalldelayincrlajbacc.3,ld1leddptr,#outbit#0a;关所有八段管ld1:start;返回table:incamovcretdb3fh06h66hdb7dh7f

温馨提示

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

评论

0/150

提交评论