【《基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例》3900字】_第1页
【《基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例》3900字】_第2页
【《基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例》3900字】_第3页
【《基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例》3900字】_第4页
【《基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例》3900字】_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

X基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例目录TOC\o"1-3"\h\u9220基于单片机的磁诊疗仪系统主控芯片单片机STC89C52分析案例 1150111.1单片机的发展 2303711.1.1单片机的环境结构 2325051.1.2单片机的起源 2156541.2单片机的应用 262711.3单片机的开发需求 3129321.1.151系列单片机 3223231.1.2编程语言 5276781.1.3开发软件KeilC51 5212191.4单片机的程序固化 6252691.4.1功能介绍 622561.4.2使用方法 6286671.5单片机程序分析 7244341.5.1关键字定义部分 7199271.5.2LCD初始化设定 823621.5.3设定延时函数 8195991.5.4主函数 8180531.5.5温度读取指令 111.1单片机的发展1.1.1单片机的环境结构单片机称做单片微控制器(Single-chip-microcomputer),它是一种主要是用于超大型模组集成电路控制技术的数字电路集成芯片,把具有强大数据处理能力控制芯片的微中央处理器(CPU)、随机访问存储器(RAM)、程序存储器(ROM)、外部设备接口、单片机中断系统、定时器/计数器,总线等集成到单块硅片表面,来构成的一个小且完整的微型计算机系统。它的优点有:体积小、质量轻、价格便宜等,为我们学习单片机、应用开发单片机提供了很好的实践条件。图1.1单片机的基本结构图1.1.2单片机的起源1970年,人类成功研制出了单片机(称作单片微型计算机),他是基于同期的微型计算机而来的衍生产品。美国一家名为Intel的公司,在1976年生产了型号为MCS-48的单片机,这家公司在二十几年间,通过四次换代,将性能、集成度做到初代的一倍,功能也就近乎翻了一番。随着移动信息时代的不断进步与现代信息电子科技的不断进步发展,目前该系统相关信息技术的研究开发应用实践以及实际应用日渐成熟,它已经渗透到生产和生活的各个领域。1.2单片机的应用如今社会,人们开始关注单片机在电子电器的开发和智能化,比如自动测量、智能仪表、多功能家用电器,都能看到单片机技术的应用。(1)在智能仪器仪表上的应用单片机在各类测量仪器仪表中,凭借它小巧、智能、功能众多的优点,应用于各种精密测量仪表中,想要实现电压、功率、频率等物理量的测量可以通过结合不同类型的传感器来实现完成。(2)在工业控制中的应用用单片机可以组成各种不同类别的控制系统、数据采集系统(SCADA),像智能芯片,智能电梯控制、预警型的报警系统等等。(3)在家用电器中的应用目前我们的家用电器基本都使用单片机控制,比如电视机、智能洗衣机、光波炉、电动马桶、智能音箱、电动窗帘等等。(4)在计算机网络和通信领域中的应用单片机存在通信接口,这就意味着我们可以和计算机进行信息交互,我们可以实现网络通信和设备通信,目前用单片机来控制的通信设备有,比如手机、程序控制交换机、小区的呼叫系统、列车无线电通信、对讲机等。(5)其他领域单片机在金融、医疗、教育、汽车、科研、、国防、航空航天等领域都有着十分广泛的用途。1.3单片机的开发需求2014年Keil公司推出一款集成开发环境软件,名为μVision5,它是依托Windows操作系统(32位/64位)的开发平台。单片机的种类不仅繁杂,单片机品种还在不断推陈出新,更加智能化、微型化、性能化。从使用情况上来看,MCS-51系列单片机的应用最为广泛,这个系列的单片机芯片就有十几种。此时,我们就需要一种强大、兼容性强的软件,最好可以使用简练的语言来完成程序编写,KeilμVision5就是一款这样的软件。1.1.151系列单片机首先我们介绍下51单片机,Intel公司于1980年制造的8051单片机系列被称为IntelMCS-51架构单片机,在当时市场受到一致好评。8051单片机是使用N-MOS技术开发的,但是使用电池供电的设备及其低功耗导致使用CMOS技术(以其低功耗而闻名)。尽管8051单片机在2007年走下生产线,但依然有20多家半导体制造商仍在生产8051兼容单片机,这些单片机仍是基于MSC-51架构的处理器。不同制造商生产了不同名称的单片机,有Atmel(AT89C51,AT89S51),Phillips(S87C654),STCMicro(STC89C52),Infineon(SAB-C515,XC800),西门子(SAB-C501),SiliconLabs(C8051),ENROO(EN8F5113),恩智浦(NXP700,NXP900)等。STC公司生产的STC89C52特点是高性能、低功耗、具有8位微控制器、8KFlash存储器,采用MCS-51内核,在原有基础上做了提升,丰富了更多的功能。图1.2单片机STC89C52对于系统我使用的是新型STC89C52系列单片机的D版本芯片,STC89C52系列单片机的特点见表1.1。表1.1单片机功能特性STC89C52主要功能特性兼容MCS51指令3个16位定时器/计数器双向通用I/O口32个ISP(在系统可编程)/IAP(在应用可编程)工作电压:5.5V~1.4V省去外部复位电路,采用集成MAX810专用复位电路时钟工作频率:24MHz4路外部中断,下降沿中断或低电平触发中断3级加密位PowerDown模式可由外部中断低电平触发中断方式唤醒串行中断2个可反复擦写的FLASHROM(8K)外部中断源2个软件设置睡眠功能、唤醒功能低功耗、掉电模式可编程异步串行口(URAT)图1.3单片机引脚图芯片说明:主电源引脚VCC(Pin40):电源输入+5VGND(Pin20):接地外接晶振引脚XTAL(Pin18):片内振荡电路的输入端XTAL(Pin19):片内振荡电路的输出端控制引脚RST/VPP:复位引脚,2个机器周期高电平单片机复位ALE/PROG;地址锁存允许信号PSEN:外部存储器读选通信号EA/VPP:程序存储器分为内外部,收到低电平从外部读取指令,收到高电平则从内部读取指令。可编程输入/输出引脚STC89C52单片机拥有P0、P1、P2、P3这4个可编程I/O口,而每个I/O口又有8位。1.1.2编程语言最早使用的编程语言是汇编语言,存在的缺点是程序复杂难上手、灵活性很差、耗费大量时间精力,在调试、纠错方面也要花费大量时间和精力。为了提高程序编写的速度,选择用C语言(高级计算机程序语言)编写计算机的系统程序和应用程序。C语言它的语言表达和综合运算能力较强,可以对计算机硬件进行直接操作,于是本次程序的编写和调试,我们选用C语言来完成。1.1.3开发软件KeilC51KeilC51是由美国KeilSoftware公司设计开发的51系列产品单片机编程软件开发软件,C语言环境比起汇编代码具有高效的特点。KeilC51提供了C51编译器、A51宏汇编器、BL51/L51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器,所有这些功能均可在μVision5提供的灵活的开发环境中极为简便地进行操作。KeilC51生成目标代码的效率非常高,汇编代码紧凑、简单、容易理解。尤其在大型软件开发时,它能比汇编语言体现更大的优点。与汇编相比,C语言的优势体现在功能上、结构性、可读性、可维护性上,更加容易学习和使用。综上所述,本系统采用KeilC51作为开发工具图1.4单片机编程软件KEIL首先在开始编写代码前,先了解硬件性能、需要实现的功能并绘制流程图。然后创建一个工程,在创建工程下载中编写一个汇编/c语言应用程序代码,定位器将每个目标程序模块进行组合后成为一个可执行程序,解析外部和共同的文件引用,为每个可重构和定位的应用程序模块分配绝对地址,目标HEX文件转换器通过定位器插入转换器十六进制工程文件表示,然后将单片机通过USB接口在ISP软件上调试,最后将程序烧录到单片机内,完成封装。1.4单片机的程序固化1.4.1功能介绍在系统编程(InSystemProgramming—ISP)是一种在本地固化程序的方式。当集成软件开发技术人员通过使用Keil集成开发软件的开发系统环境,完成软件开发代码的初始编写和运行调试后,就需要通过使用STC公司软件提供的STC-ISP软件固化工具将最终得到的程序进行固化写入到8051单片机内部的程序存储器。STC-ISP就是一个用来给所有STC单片机用户下载烧录程序的一个软件。1.4.2使用方法首先我们打开STC-ISP软件,在软件界面找到单片机型号并选择自己的单片机型号。然后点击串口号,找到我们电脑对应的串口号(COM的编号是随机变化的),它是我们在通信时使用的端口。然后依次选择“波特率”,默认输入数值为9600,默认为校验位,就不需要再检验。如果串口显示关闭串口,就代表打开完成了。图1.6ISP软件截图最后是界面的设置,主要是主机串口数据接收和主机发送文件的设置,设置的模式是“文本”或“HEX”两种。1.5单片机程序分析主程序包含的主要函数定义及功能,不同功能的实现需要我们使用不同类型的函数程序,我们对重要函数进行说明。1.5.1关键字定义部分我们定义了数据接口、寄存器选择输入、液晶读写控制、液晶使能控制接口、串/并控制方式、蜂鸣器、延迟输入、按键的端口设置,定义了这些功能的端口,赋予它们实现功能的引脚。#defineLCD_dataP0//数据口 sbitLCD_RS=P3^5;//寄存器选择输入sbitLCD_RW=P3^6;//液晶读/写控制sbitLCD_EN=P3^4;//液晶使能控制sbitLCD_PSB=P3^7;//串/并方式控制sbitrelay=P1^0;sbitbeep=P2^3;sbitDUA=P2^6;sbitWEI=P2^7;sbitK1=P3^0;sbitK2=P3^1;sbitK3=P3^2;sbitK4=P3^3;1.5.2LCD初始化设定想要完成我们的系统显示功能,首先要对液晶显示屏的初始化定义,定义并行接口方式,将我们的指令操作扩充附上地址,再将基本指令的地址添加上去,关闭我们的显示屏光标,对清除指令的操作地址加以命名。voidlcd_init(){LCD_PSB=1;//并口方式lcd_wcmd(0x34);//扩充指令操作delay(5);lcd_wcmd(0x30);//基本指令操作delay(5);lcd_wcmd(0x0C);//显示开,关光标delay(5);lcd_wcmd(0x01);//清除LCD的显示内容delay(5);}1.5.3设定延时函数延时函数为了使单片机CPU的时序而采用的机制,比如蜂鸣器报警、按键按下、LED灯闪烁等,单片机内部电路时钟信号应保持一致,才能使系统的同步工作。我们设定了4个nop指令,即为空操作,执行一个nop,占用一个机器周期,也就是12个时钟周期。voiddelay(intms){while(ms--) {uchari; for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } }}1.5.4主函数主函数是我们整个程序的核心,涉及到温度传感器的工作程序、LCD屏幕的设置、定时计数器的计数、按键程序的执行,构成我们的主函数,实现设定、定时、温度测量、温度报警的功能实现。voidmain(){ inti,ttt; floattp; DUA=0; WEI=0; tp=Ds18b20ReadTemp(); Delay10ms(100); lcd_init();//初始化LCD lcd_wcmd(0x01); lcd_pos(0,1); i=0; while(dis1[i]!='\0') {//显示字符 lcd_wdat(dis1[i]); i++; } lcd_pos(2,0); i=0; while(dis2[i]!='\0') { lcd_wdat(dis2[i]);//显示字符 i++; } tp=Ds18b20ReadTemp(); TMOD=0x01; //定时器0方式1 TH0=(65536-50000)/256; //定时器0:50ms TL0=(65536-50000)%256; EA=1; ET0=1;TR0=1; while(1) { if(ttt>=100) { ttt=0; LcdDisplay(Ds18b20ReadTemp()); } ttt++; lcd_pos(3,0); lcd_wdat('0'+min/10%10); lcd_wdat('0'+min%10); lcd_wdat(':'); lcd_wdat('0'+sec/10%10); lcd_wdat('0'+sec%10); if(state==0) { if(K1==0)//按键按下 { Delay10ms(1);//延时消抖 if(K1==0)//按键按下 { Time=0; sec=0; min=min+10; if(min>20) min=30; whil

温馨提示

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

评论

0/150

提交评论