




免费预览已结束,剩余80页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手把手教你学PIC单片机先介绍一下我们所要使用的PIC单片机学习实验设备如果你想学习PIC单片机,请做好如下准备工作:一、需要准备的硬件设备有:计算机一台,仿真烧写调试器一台,单片机芯片一片,如PIC16F877A芯片(它PIC单片机家族中非常经典的一个型号,涵盖了PIC16F*子系列的所有功能,特别适合初学者使用,它在PIC家族中的地位类似51家族中的S51或者S52,不过内部包含了更多的功能,比如内部集成了AD等特殊单元),PIC实验板一块。这样需要的硬件设备就齐了。想学好单片机,肯定要多动手,多实践,当然也肯定是要适当的投入的。二、对于PIC单片机学习和开发的软、硬件大致流程介绍11 硬件部分 上面我们已有介绍,您需要准备一台仿真烧写调试器和一块PIC学习板,我们推荐您看一下本站的“ICD2 PIC仿真烧写器”和“增强型PIC实验板”,这样硬件部分可以很快搭建起来,插上相应的连接线即可,如果用户方案中有开发板所没有的特殊接口电路,或者说有其它特殊的应用,那么您可以通过实验板上扩展接口来实现外扩展,以实现自己的实际电路需求。12 软件部分 (主要由5个步骤组成)1用汇编语言或C语言编写源程序代码。2将源程序编译成目标代码(机器码),即HEX格式16进制文件。3用仿真烧写调试器完成软件的调试工作,解决程序中所存在的一些语法、语意问题,即排除所编程序中存在的各种错误。4用仿真烧写调试器将目标代码写入到单片机中,即我们平时所说的烧写芯片步骤。5单片机实验板上电,运行目标代码程序。如果您能保证您所编写的程序绝对没有问题,也可以跳过第3步。注意:“ICD2 PIC仿真烧写器”既有仿真器的功能,又有编程器的功能,也就是说:一台机器同时拥有两种功能,因此也体现了它的性价比及实际使用的方便性。下面我们先来看一看,在下面的学习过程中将要用到的硬件设备有哪些,它们分别是:“ICD2 PIC仿真烧写器”和“增强型PIC实验板”,实物如图所示,你只需要有一台电脑就可以进行学习和开发了。这两样的设备,可谓是资源足矣,学习起来够你用的了。至于一些难度较高的应用我们在此先不作介绍,说多了,反而会使问题复杂化。“ICD2 PIC仿真烧写器”是完全兼容Microchip的在线调试器MPLAB-ICD2的一个功能强大、低成本、高运行速度的开发工具。它利用Flash工艺芯片的程序区自读写功能,使用芯片来实现仿真调试功能。“ICD2 PIC仿真烧写器”使用的软件平台是Microchip的MPLAB-IDE (集成开发环境软件包)或更高版本,兼容Windows 95/98/ME、Windows NT和 Windows 2000/Windows XP/Windows 2003等操作系统。其通信接口方式为USB2.0高速接口(最高可达12Mbit/s);工作电压范围为2.05.5V。“增强型PIC实验板”是本站专为PIC单片机学习推出来的一款性价比最高的开板实验板,可与本站“ICD2 PIC仿真烧写器”配套使用,实验操作对象芯片为PIC16F87X(A)单片机以及其它PIC中高档28PIN/40PIN器件。增强型PIC实验板为16F87X系列芯片的各个功能模块提供了相应的实验电路,以便用户调试和测试。也是我们根据用户需求及市场同类产品分析后,全新设计的一款具有最高性价比的开发实验板,与同类产品相比,我们已将板载资源扩充到极限!同时选用优质PCB板材,优质元件,优良的焊接工艺。PICC 编译器的安装与使用方法 使用过汇编语言和C语言的朋友肯定会感觉到C语言的人性化与方便性,汇编语言起源的年代比较早,因此,有很多程序高手仍使用汇编语言,毕竟自己也已经习惯了,但对于一些单片机新手入门的,我们还是推荐使用C语言来写程序,相对来说比较通俗,易学。在某些特定的场合,汇编语言仍然有不可代替的优势,毕竟指令执行时间很精确,但对于目前越来越长的程序代码,考虑到软件的升级性与维护性,我们还是强烈推荐用户使用C语言作为开发语言。下面,我们来介绍一下,PIICC C编译器 for MPLAB IDE 的安装与使用方法,从此开始了我们的PIC单片机C语言时代。 运行安装程序,将出现如图1所示安装界面。 -点击下载PICC编译器和破解注册机点击“下一步”出现如图2所示: 单击“下一步”出现如图3所示 单击“是”出现如图4所示,选择安装目录(也可以建议使用默认值) 单击“下一步”出现如下安装进度界面 等待完成以后将出现如下提示 选择“是”继续安装,将显示如下提示 到此安装完成,将提示你重新启动电脑,选择确定。 下面是软件的激活过程:首先从“开始菜单”选择“激活”菜单。 出现如下所示 单击下一步,出现如图所示激活界面 启动“激活”程序,如图所示 把“Last Name”前的“”并把生成的各项依次填入激活界面的相应位置,点击“下一步”若安装成功将显示如下图所示提示信息,否则需要返回上一步重新填写激活信息。 到此“激活”过程完成。 下面介绍在mplab中如何使用刚刚安装好的PICC软件: 1:启动运行MPLAB IDE软件,这时还没有打开任何项目跟源文件,选择File -New菜单项,打开文档窗口,在此输入c语言源程序。完成后保存为:xxxxx.c文件。2:建立项目。选择Project-New打开新建项目窗口。在项目名中填入项目名称,在项目保存路径中选择好路径(注意必须跟第1步中 .c程序同路径)。 3:选择语言工具组件。选择Project-Slecete Language Toolsuite出现如下界面 在Active Toolsuite栏中选择HI-TECH PICC Toolsuite,在Toolsuite contents栏中把编译器、链接器、汇编器全部都设置为“picc.exe”,单击“确定”即可。 4,设置语言工具组件。 选择Project-Set Language Tool Laction菜单,展开HI-TECH PICC Toolsuite前的“+”后打开目录树,并展开下面的Default Search Path &Directory目录,并进行如下设置:Output Directory 跟Intermediates Directory项可以选择缺省路径;Include Search Directory 路径选择为:安装路径/include;Library Search Directory 路径选择为:安装路径/lib。 单击确定。 5,加入源程序跟选择器件,调试程序(这跟汇编语言完成相同,在此不再獒述)。手把手教你使用PIC单片机控制1602液晶屏(C语言版)站长原创,如需引用请注明出处看到这里,我们已经学完了数码管理论与应用,相信你已经可以用它来显示任何数字了吧。下面,我们再来学一下更高层的显示方式液晶屏显示,与数码管相比,它显得更为专业,漂亮。液晶显示屏以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,增强型51实验板所配带的是1602型液晶屏,它是工控系统中使用最为广泛的液晶屏之一,相信你学会了对它的控制,那你对其它的液晶屏的控制也能得心应手,毕竟基本原理都差不多。1602型液晶屏是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,常用的为2行16个字,我们也以此为例来介绍一下相应的编程方法。如表2所示,整个液晶屏采用标准的16脚接口,其中VSS为电源地,VDD接5V正电源,V0为液晶显示屏对比度调整端,直接接电源正极时对比度最弱,接地时对比度最高。RS为寄存器选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由低电平跳变成高电平时,液晶屏执行命令。D0D7为8位双向数据线。编号符号引脚说明与单片机接口编号符号引脚说明与单片机接口1VSS电源地9D2数据I/OP1.22VDD电源正极10D3数据I/OP1.33V0液晶显示偏压信号11D4数据I/OP1.44RS数据/命令选择端P3.512D5数据I/OP1.55RW读写选择端P3.613D6数据I/OP1.66E使能信号P3.714D7数据I/OP1.77D0数据I/OP1.015BLA背光源正极8D1数据I/OP1.116BLK背光源负极表2液晶屏内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表3所示,表3这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”,如图6所示。图61602型液晶屏内部的控制器共有11条控制指令,如表4所示,序号指令RSRWD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储器地址0001字符发生存储器地址(AGG)8置数据存储器地址001显示数据存储器地址(ADD)9读忙标志或地址01BF计数器地址(AC)10写数到CGRAM或DDRAM10要写的数11从CGRAM或DDRAM读数11读出的数据表4它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。由于液晶显示屏是个慢显示器件,所以在执行每条指令之前一定要确认液晶屏的“忙标志”为低电平,表示不忙,否则指令失效。要显示字符时要先输入显示字符地址,也就是告诉液晶屏在哪里显示字符,表5是1602型显示屏的内部显示地址.000102030405060708090A0B0C0D0E0F1027404142434445464748494A4B4C4D4E4F5067表5比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?答案是不可以这样,因为从指令表中我们可以看到,写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)以下是在液晶屏的第二行第一个字符的位置显示字母“A”的程序,效果如图6所示:#includevoid _delay_ms(char a) /毫秒级延时子函数 unsigned char i,j;for(i=0;ia;i+)for(j=0;j点击此处下载RM视频文件 2007年02月21日 制作加入错误!嵌入对象无效。增强型PIC实验板1602LCD液晶显示实验演示录像之二点击此处下载RM视频文件 2007年02月21日 制作加入手把手教你使用PIC单片机实现按钮控制(C语言版)站长原创,如需引用请注明出处从本期开始,我们将各方面着手,结合实例,如:按键、继电器、蜂鸣器、数码管、串口通信、液晶屏、红外线、步进电机、IIC通信等原理及使用方法,一步一步地伴您走向单片机大门。在前一期中,我们已对发光二极管的使用进行了学习,如怎么编写流水灯程序,相信大家都已经有了一个感性的认识。在这一期中,我们首先将一起来学习一下单片机应用电路中键盘、蜂鸣器和继电器的工作原理及使用方法,这也是单片机开发中,最为常用的。按键是单片机系统中常用的信息输入部件,同时也是人机对话中不可缺少的输入设备,其外形如图1所示。在和单片机构成系统的时候,按键通常有两种接法,一种叫做独立式按键,另外一种叫做行列式或者是扫描式按键,我们在这里只学习独立式的按键电路。在这个实验里,我们需要用RB0、RB1、RB2、RB3、RB4来控制数码管的亮和灭。 图1、某种按键外形这是我们最新研制的增强型PIC实验板,功能更强大,性能更稳定,板上的资源非常丰富,足矣使你从PIC单片机入门转为PIC单片机高手。 首先,我们先来学习一下键盘的使用方法。单片机对键盘信息的读取可以分为静态扫描法和动态扫描法,动态的稍微复杂一些,故在此我们介绍一下静态扫描法,看看单片机是如何获得按钮的状态信息,然后再作出相应的控制。如图所示,在我们的增强型PIC实验板上,共有6个按键,第一个是用来做系统复位使用“K1”,其余5个按键是供用户使用的,从原理图上可以看到,它们分别接在单片机的RB0、RB1、RB2、RB3、RB4口上。我们在前一期中曾经讲到点亮一个发光管的实例,那时程序执行的效果是:实验板上电后,马上点亮发光管。而现在,我们如果想要通过按键来控制数码管的点亮,如:按下第一个接RB0口的那个“K2”按钮,板上所有数码管显示数字“0”,按K3按键显示数字“1”,按K4按键显示数字“2”.,按K6按键显示数字“4”,那该怎么办呢?其实想做到这一点是非常容易的,使数码管显示数字的程序我们已在前面讲过了,那么我们现在要做的就是当读取按键状态为按下时,执行相应的数码管显示语句即可,以下是此功能的程序代码。“TRISC=0x00; TRISA=0x00”语句的作用是,设置单片机RA口和RC口为输出状态,因为我们用RC口来控制数码管的字形,用RA口来片选数码管点亮作显示。TRISB=0xFF; 语句的作用是,设置RB口为输入状态,因为我们的增强型PIC实验板上的按键都接在RB口上。PORTA=0x00; 语句的作用是打开板上所有位的数码管来作显示。OPTION=0x7F; 语句的作用是开启RB口的内部上拉。细心的用户已经从上面的原理图中发现我们实验板的硬件结构,RB1RB4这四个按键使用内部上拉。while(1)死循环体内的语句为判断按键及数码管显示的程序代码。分别用if 语句来对实验板上的K2K6按键来进行判断,按下相应的键,则由数码管显示相应的数字,我们已在程序首部定义了display_numb10这个数组,即要显示的数字“0-9”的字形码,在此,我们只要将其赋给RC口即可。最后,通过“ICD2 PIC仿真烧写器”执行仿真或烧写操作即可。当程序执行仿真或将文件烧入单片机芯片插在增强型PIC实验板上运行时,你会发现,当你按下板上RB0RB4那几个按键,即可通过数码管显示相应有尽有数值了。呵呵,有点意思吧:)以下是程序运行时的效果图。这是一个最简单的,用按键控制数码管的实例,当然,你也可以去控制其它的东西,只要在while(1)循环体内填写相应的程序代码就可以了,如控制液晶屏、蜂鸣器或继电器等等。当你看到这里,相信你对按键的使用已有了一定的了解了吧。说到单片机,它在很多方面的应用就是用来做控制的,当然控制方式有多种,如通过可控硅,继电器等等。就我个人认为,作为初学者来说,还是用继电器来的好,也比较安全。那接下来,我们就来介绍一下继电器的原理及使用方法。手把手教你使用PIC单片机做DS1302数字钟实验(C语言版)站长原创,如需引用请注明出处在很多单片机系统中都要求带有实时时钟电路,如最常见的数字钟、钟控设备、数据记录仪表,这些仪表往往需要采集带时标的数据,同时一般它们也会有一些需要保存起来的重要数据,有了这些数据,便于用户后期对数据进行观察、分析。本小节就介绍市面上常见的时钟芯片DS1302的应用。DS1302是美国DALLAS公司推出的一款高性能、低功耗、带内部RAM的实时时钟芯片(RTC),也就是一种能够为单片机系统提供日期和时间的芯片。通过本小节的学习,我们将会把RTC相关的一些技术粗略介绍一下,然后介绍DS1302与单片机之间的软硬件应用。1、实时时钟(RTC)简介 实时时钟芯片的主要功能是完成年、月、周、日、时、分、秒的计时,通过外部接口为单片机系统提供日历和时钟,所以一个最基本的实时时钟芯片通常会具有如下的一些部件:电源电路、时钟信号产生电路、实时时钟、数据存储器、通讯接口电路、控制逻辑电路等,同时大部分的RTC还会提供一些额外的RAM。9-35 RTC的基本组成 如果直接利用单片机的定时器,是不是也可以用软件自己来写时钟、日历程序?是的,但是会有几个问题,首先为了使时钟不至于停走,就得在停电时给单片机供电,而相对RTC来说,单片机的功耗大很多,电池往往无法长时间工作;其次单片机计时的准确度比较差,通常很难达到需要的精度,因此目前RTC的使用已经十分广泛。由于在需要RTC的场合一般不允许时钟停走,所以即使在单片机系统停电的时候,RTC也必须能正常工作,因此一般都需要电池供电,同时考虑到电池使用寿命,所以有不少RTC把电源电路设计成能够根据主电源电压自动切换的形式,自动切换RTC使用主电源或备用电池,即当断电的时候,后备电池能够自动给RTC供电,而像DS1302还增加了电池充电电路,用来对可充锂电池充电。综上所述,RTC电路的主要特点是功耗低,精度高。那么,RTC在使用过程中是如何控制精度的呢?一般,RTC都使用32768Hz的晶振,本身误差小(5PPM20PPM),同时很多设备在生产过程中对这个频率进行过校准,主要方法就是改变两个从晶振引脚到地的电容值的大小,通过测试RTC输出的秒信号的频率,然后把电容改成合适的数值,使精度控制在合理的范围里,当然目前也有些时钟芯片在片内内置了电容阵列,可以自动调整。影响精度还有另外一个原因,就是温度,因此有很多产品在采用无内置温补电路的时候,会使用软件对计时进行温度补偿。当然,现在也有些RTC内置了温度补偿,甚至还可以为系统提供环境温度值。我们最多见到的RTC可能是DS1302和DS12887了,当然其实还有很多其它的同类产品,下面按功能不同对几个也比较常见的RTC予以简单的比较。一些常用RTC的功能比较 RTC型号 生产商接口方式晶振内置补偿方式温度补偿电池内置充电电路报警输出DS12887DALLAS并行是无无是有有DS1302DALLAS串行否无无否有无DS3231DALLAS串行是硬件有否无有RX8025EPSON串行是软件无否无有PCF8563PHILIPS串行否无无否无有2、DS1302时钟芯片简介 DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。DS1302主要性能如下:实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力及闰年调整的能力。31*8位暂存数据存储RAM。串行I/O口方式,管脚数量少。宽电压工作范围:2.0V5.5V。工作电流:2.0V时小于300nA。读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送。8脚DIP封装或SOIC封装3、DS1302的内部结构 DS1302的外部引脚功能说明如下:9-36 DS1302封装图 X1,X232.768kHz晶振引脚GND地RST复位I/O数据输入/输出SCLK串行时钟VCC1电池引脚VCC2主电源引脚DS1302的内部结构如图9-37所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。9-37 DS1302的内部结构图 DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。不过对我们目前而言,最需要熟悉的是和时钟相关部分的功能,对于其它参数请参阅数据手册。 4、DS1302的工作原理 DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。 5、DS1302的寄存器和控制命令 对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如下表所示: 日历、时钟寄存器与控制字对照表 寄存器名称 765432101RAM/CKA4A3A2A1A0RD/W秒寄存器 1000000 分寄存器 1000001 小时寄存器 1000010 日寄存器 1000011 月寄存器 1000100 星期寄存器 1000101 年寄存器 1000110 写保护寄存器 1000111 慢充电寄存器 1001000 时钟突发寄存器 1011111 最后一位RD/W为“0”时表示进行写操作,为“1”时表示读操作。 DS1302内部寄存器列表如下所示: DS14302内部主要寄存器分布表 寄存器名称 命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEARDS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 我们现在已经知道了控制寄存器和RAM的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向DS1302写入一个命令帧,这个帧的格式如表X-X所示,最高位BIT7固定为1,BIT6决定操作是针对RAM还是时钟寄存器,接着的5个BIT是RAM或时钟寄存器在DS1302的内部地址,最后一个BIT表示这次操作是读操作抑或是写操作。物理上,DS1302的通讯接口由3个口线组成,即RST,SCLK,I/O。其中RST从低电平变成高电平启动一次数据传输过程,SCLK是时钟线,I/O是数据线。具体的读写时序参考图4,但是请注意,无论是哪种同步通讯类型的串行接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效是在下降沿(DS1302正是如此的,但是在芯片手册里没有明确说明),如果不是特别确定,则把程序设计成这样:平时SCLK保持低电平,在时钟变动前设置数据,在时钟变动后读取数据,即数据操作总是在SCLK保持为低电平的时候,相邻的操作之间间隔有一个上升沿和一个下降沿。9-38 DS1302的命令字结构6、DS1302的软硬件设计实例 本例将实现对DS1302的读写操作,将时钟数据在LED数码管上显示出来。调试时将功能选择开关调到DS1302的状态上。上图为 增强型PIC实验板DS1302接口部分原理图增强型PIC实验板上电后开始计时,数字电子钟开始运行了。当前时间为:12:30:45当前时间为:12:30:52当前时间为:12:31:02手把手教你搭建PIC单片机软硬件学习环境一、安装 “MPLAB IDE” PC机端软件环境 MPLAB 集成开发环境(IDE)是一个综合性的设计平台界面,适用于使用Microchip PICmicro 和dsPIC 单片机进行嵌入式设计的应用开发。 MPLAB 集成开发环境(IDE)完成的功能是: 1提供用户完成源程序代码的编写工作。 2将写好的源程序编译成目标代码HEX文件。 3配合硬件调试器、开发板完成软件程序的调试工作。 4配合编程器将调试成功,即最终定型的目标代码写入到开发板的单片机芯片中去。 MPLAB IDE安装的具体步骤如下: 先不要连接“ICD2 PIC仿真烧写器”,在赠送光盘中找到MPLAB IDE安装文件, 该文件也可以从Microchip网站下载,下载地址为: /downloads/en/DeviceDoc/MP741.zip 选择该文件然后将它拷贝到电脑的硬盘中(一般拷贝到D:E:F:盘比较合适), 然后双击已拷到电脑硬盘中的“MP741.zip”,将该文件解压缩,双击解压缩后的的 文件MP741_setup.exe进行安装,安装完成后按系统提示重新启动计算机。注意: Windows xp操作系统,需要管理员权限才能安装该软件。二、安装USB驱动程序(USB通信的速率要远远高于RS232串口通信,如果你实际使用一下,相信会有比较深刻的感受。 下面以目前最常用、流行的WINDOWS XP操作系统为例,来说明安装方法: 用随机配套的USB连接线连接“ICD2 PIC仿真烧写器”至电脑任何一个USB口,系统会提示找到了一个新硬件设备,如下图: 选择“自动安装软件”,点击“下一步”按钮,系统会自动安装所需的驱动。 Windows系统发现“Microchip MPLAB ICD 2 Firmware Client”设备。出现以上提示信息,我们选择“仍然继续”按钮,继续安装。屏幕提示要求用户选择MPLAB 驱动程序也在路径,这时我们选择:“C:Program FilesMicrochipMPLAB IDEICD2Drivers”,点击确定即可。 开始复制驱动程序所需文件。完成USB驱动程序的安装。我们可以通过设备管理器来查看是否正确安装了USB驱动程序,从“开始”菜单“设置”“控制面板”“系统”,进入“系统属性”“硬件”“设备管理器”。安装成功后,我们在“通用串行总线控制器”结点下,可以发现已出现“Microchip MPLAB ICD2 Firmware Client”项,则表示我们已将USB驱动程序安装正确,同时Windows也检测到了“ICD2 PIC仿真烧写器”。至此,USB驱动程序安装完成。三、设置开发板 对开发板的相关跳线进行设置,一般来说,使用出厂默认设置即可,因此,无需改变跳线位置。 注意:对开发板进行任何硬件操作之前,请先将左下角的开关置于“关”状态。跳线含义定义如下:J6:晶振选择 J10:液晶屏背光开关 J12:PIC16F877A AD模数转换输入通道选择开关 J4:步进电机智能电压选择跳线四、 硬件连接1“ICD2 PIC仿真烧写器”和PC机之间用USB电缆连接,这一步前面已经完成了,由于USB电缆自带5V的电源供电,因此“ICD2 PIC仿真烧写器”无须再接上电源适配器,使用方便,尤其对笔记本用户更为方便。2“ICD2 PIC仿真烧写器”和实验板之间使用我们配送的专用电缆连接。3实验板可以由“ICD2 PIC仿真烧写器”供电,也可以用外接电源适配器供电,USB提供的电流最大为500mA,我们推荐用户使用外接电源供电,这样有足够的电源余量,也有利于硬件平台的稳定工作。 特别注意:1、 在MPLAB IDE运行时,请不要断开USB电缆,否则可能会有错误出现。2、当插入USB电缆后,不要立即启动MPLAB IDE(否则可能会导致一些错误的产生),插上USB线后,你可以等待几秒种时间,因为系统对USB设备的自动识别需要一段时间,当然也可以在听到Windows系统发出的“叮咚”声后再打开软件。 操作技巧:在开发过程中,USB电缆一般是始终连着的,但在线编程调试电缆可以根据需要断开和接上。 手把手教你使用PIC单片机点亮LED发光管(C语言版)站长原创,如需引用请注明出处 发光二极管,也叫做LED,是种非常常用的指示器件,比如电源指示、工作指示等,即便你不怎么留心,恐怕还是在不少场合见到过的,比如各种充电器,它们用亮或者灭告诉你电源是否已经接通,用颜色的变化告诉你电池是否已经充满,再比如有不少设备,往往采用发光二极管的闪烁来表示系统正在正常工作。同时,因为它的控制比较简单有趣,所以我们的实验就选择从这里开始。 首先我们需要知道如何让一个发光二极管工作。发光二极管有很多类,如图1-1所示的是几种直径3mm的普通亮度发光二极管,电器原理图则如图1-2所示,当在它的A和K两个电极加上合适的电压的时候,它就会亮起来。说“合适的电压”,是因为不同的发光二极管工作电压并不相同,一般是在1.6V到2.8V之间,而工作电流则一般在2到30mA之间,但是实际工作的选择范围一般是4到10mA之间。图1-1、发光二极管实物图图1-2、发光二极管原理图这里之所以要说这些参数,实际是为了解释LED上串接电阻大小的选择。图1-4是跟增强型PIC实验板上跟LED控制相关部分的电路,我们可以看到LED上串接的电阻是470欧姆,如果此时LED上的电压是2.0V,那么此时通过LED的电流则为(5V-2V)/470=6.38mA,如果需要提高亮度,一般会电流控制在10mA左右,则此时电阻应该选择(5V-2V)/10mA=300,所以可以就近选择330。电路已经确定,然后就是连接到单片机的I/O口上,见图1-4,我们可以看到LED的A极通过限流电阻连接到PIC单片机的I/O口,K极连接到了GND地线,因此要使LED发光,也就是使电流流过LED,只需要把I/O口置成高电平即可,所以最终我们对LED的控制变成了对一个I/O口的控制,比如要点亮标号为“D10”的LED,就是把RC0口设置成高电平而已,这就是实现方法。图1-3、增强型PIC实验板实物照片图1-4、单片机控制LED显示的原理图先把“ICD2 PIC仿真烧写器”与“增强型PIC实验板相连”,插上所需要的连接线缆并与PC机相连,前面部分我们已经学会了搭建PIC学习和开发的硬件与软件环境。现在,我们只要在这些环境基础上编写程序代码实施验证即可,注:在以后的系列教程中,我们仍将以这些软硬件环境为基础进行讲述。我们创建完工程后,编写第一个点亮LED发光管的程序代码如下:#include main()TRISC=0X00; /*TRISC寄存器被赋值,PORTC每一位都为输出*/while(1) /*循环执行点亮发光二极管的语句*/PORTC=0X02; /*向PORTC送数据,点亮第二个LED发光管*/ 这是一个最简单的PIC点LED的C程序代码,也希望能给初学者朋友们一个感性的认识,我已把能省略的语句尽量都省去了,能把每句话都看懂了,PIC的C程序最小框架你也就明白了。第一行 #include 用于加载标准库函数,如51单片机中的 reg51.h 库文件一样。main()是C语言中的主函数,一个C程序代码中,也只有一个main()主函数,程序就是从这里开始执行的。语句“TRISC=0X00;”用来设置RC口的输入、输出状态。while(1)是死循环语句,即周而复始地执行 内的语句体,如我们现在的程序中的作用即是不停地执行PORTC=0X02; 这条语句。语句“PORTC=0X02;”的功能则是给RC口赋值,即第二个引脚RC1为高电平,用“1”来表示。 说明:PIC系列单片机各类数据存储器都是以寄存器方式工作和寻址的。专用寄存器包括了定时寄存器TMRO、选择寄存器OPTION(又称为项选寄存器)、程序计数器PCL、状态寄存器STATUS、间接寻址寄存器INDF和FSR、端口I/O寄存器(如PORTA、PORTB)和相对应的端口I/O控制寄存器(又称为端口I/O数据方向寄存器,如TRIAS、TRISB)、保持寄存器PCLATH和中断控制寄存器INTCON等。我们现在暂时只用到了TRISC和PORTC口寄存器。该程序实验效果如下:现在我们知道了,可以通过改变PORTC口的数据来得到不同的花样灯效果,因此,我们只要按自己的意想来改变程序代码即可,下面是一些改制实例:点亮第八个LED发光管的程序花样流水灯运行瞬间截图之一花样流水灯运行瞬间截图之二花样流水灯运行瞬间截图之三以下是一段让实验板上第一个LED发光管闪亮的C程序,大家可以实际编译运行一下看看最终效果:#include void delay()unsigned int k;for(k=0;k点击此处下载RM视频文件 2007年02月21日 制作加入错误!嵌入对象无效。增强型PIC实验板点亮LED发光管实验演示录像之二 点击此处下载RM视频文件 2007年02月21日 制作加入手把手教你使用PIC单片机驱动蜂鸣器(C语言版)站长原创,如需引用请注明出处我们来回顾一下,什么是声音?记得在中学的物理课上,老师就教导我们,声音是由震动所产生的。一定频率的震动就产生了一定频率的声音。在我们的增强型PIC实验板中,实验板的RD7口接了一个蜂鸣器,如果我们往
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院员工演讲稿
- 国家能源神农架林区2025秋招交通运输类面试追问及参考回答
- 2025年福建省中国民主促进会福州市委员会招聘1人模拟试卷及一套完整答案详解
- 2025年安徽建工集团第一批招聘414人考前自测高频考点模拟试题及答案详解1套
- 2025年宁波市中医院公开招聘派遣制护士20人模拟试卷及答案详解(夺冠系列)
- 2025年嘉兴市级机关公开遴选公务员8人模拟试卷附答案详解(典型题)
- 2025年三亚市直属学校赴高校面向2025年应届毕业生招聘81人考前自测高频考点模拟试题及完整答案详解
- 2025年福建省莆田华侨职业中专学校校聘教师招聘1人模拟试卷有答案详解
- 2025年台州温岭市卫生事业单位公开招聘医学卫生类高层次人才8人模拟试卷及参考答案详解一套
- 2025年绿色建筑认证体系在城市综合体项目中的应用与发展分析报告
- 易能EDS800变频器说明书
- 发育生物学实验教案
- 仁爱版九年级英语上册unit2topic1复习课市公开课一等奖省课获奖课件
- 北京市国内旅游合同书
- 公司品牌建设五年规划
- 第二单元 三国两晋南北朝的民族交融与隋唐统一多民族封建国家的发展 知识清单 高中历史统编版(2019)必修中外历史纲要上册
- 居室环境的清洁与消毒
- GB/T 39766-2021人类生物样本库管理规范
- GB/T 2900.50-2008电工术语发电、输电及配电通用术语
- GB/T 2518-2008连续热镀锌钢板及钢带
- GB/T 1689-2014硫化橡胶耐磨性能的测定(用阿克隆磨耗试验机)
评论
0/150
提交评论