pic18实验指导书
PIC18F452单片机原理及编程实践(第二章)PIC结构体与汇编语言编程

2017/8/29
20
―快速访问RAM区”的映射示意图
0区 (256B)
000H 0FFH
GP RAM GP RAM
000H 07FH F80H FFFH
128B 14区 (256B)
GP RAM FSR
GP RAM
F00H F7FH
F80H FFFH
128B
―快速访问”存 储区的组成 (256B)
9
2017/8/29
PIC18F452的“文件寄存器”结构示意图
4K RAM 000H 0FFH
GP RAM GP RAM
0 255
通用寄存器GPR 文件寄存器 特殊功能寄存器SFR
GP RAM
F00H F7FH F80H FFFH
3840
GP RAM SFR区域 (128B)
3967 3968 4095
2017/8/29
8
PIC文件寄存器(RAM)的空间分配
按照功能逻辑划分,文件寄存器(RAM)被分为: ① 通用寄存器 GPR:存储程序中的变量数据; ② 特殊功能寄存器 SFR:用于设定功能模块的工作 模式、工作状态等特殊信息。
GPR和SFR同在一个RAM存储阵列。 凡是没有分配给SFR的空间都可以作为通用寄存器GPR。 在18F系列中,SFR被“统一集中”在RAM的高地址空间 中(第15区的高128B)。 PIC18系列 RAM的大小随型号而不同,从32B~4KB。
―区选择寄存器”BSF的设定是可以通过指令: MOVLW k MOVWF BSR (k=0~15)
15区 (256B)
GP RAM SFR区域 (128B)
PIC18F2525 2620 4525 4620

PIC18F2525/2620/4525/4620数据手册采用10位A/D和纳瓦技术的28/40/44引脚增强型闪存单片机 2006 Microchip Technology Inc.初稿DS39626B_CNDS39626B_CN 第ii 页初稿2006 Microchip Technology Inc.提供本文档的中文版本仅为了便于理解。
请勿忽视文档中包含的英文部分,因为其中提供了有关Microchip 产品性能和使用情况的有用信息。
Microchip Technology Inc.及其分公司和相关公司、各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任。
建议参考Microchip Technology Inc.的英文原版文档。
本出版物中所述的器件应用信息及其他类似内容仅为您提供便利,它们可能由更新之信息所替代。
确保应用符合技术规范,是您自身应负的责任。
Microchip 对这些信息不作任何明示或暗示、书面或口头、法定或其他形式的声明或担保,包括但不限于针对其使用情况、质量、性能、适销性或特定用途的适用性的声明或担保。
Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任。
如果将Microchip 器件用于生命维持和/或生命安全应用,一切风险由买方自负。
买方同意在由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障Microchip 免于承担法律责任,并加以赔偿。
在Microchip 知识产权保护下,不得暗中或以其他方式转让任何许可证。
商标Microchip 的名称和徽标组合、Microchip 徽标、Accuron 、dsPIC 、K EE L OQ 、micro ID 、MPLAB 、PIC 、PICmicro 、PICSTART 、PRO MATE 、PowerSmart 、rfPIC 和SmartShunt 均为Microchip Technology Inc .在美国和其他国家或地区的注册商标。
PIC单片机实验指导书——第一次实验

序言本书以Microchip公司的PIC16F877A为例,主要介绍PIC单片机的若干个实验。
力图让非计算机专业的学生花最少的时间和精力来达到认识单片机的基本结构及其原理的目的。
名词解释本书所涉及的名词解释如下:Microchip:美国微心公司;MPLAB IDE:微心公司的PIC单片机集成开发软件;ICD2: In-Circuit Debugger在板的调试器;APP001:Microchip公司的实验板型号;Tosc: 晶振周期;Tcy: 指令周期,1Tcy=4Tosc。
I2C: 板内IC之间的通讯接口。
注意事项1.在没有安装MPLAB IDE之前请不要用USB口把ICD2连接到电脑;2.永远不要同时使用USB口的ICD2和RS-232口的ICD2;3.实验板APP001的加电过程必须按一定的顺序,否则不能顺利建立与ICD2的通讯。
4.MPLAB IDE v8.20不支持中文路径,所有项目名、文档名以及系统路径名均使用英文和数字来命名,否则将会出现“系统无法找到路径”的错误提示。
目录第一章实验系统简介 (2)一、实验板的组成 (2)二、ICD 2的功能介绍 (4)第二章软、硬件的安装使用简介 (5)软件的安装和使用 (5)硬件安装 (9)第三章基本件实验 (10)实验一熟悉MPLAB IDE软件 (10)实验二数据排序实验 ..............................................................................................错误!未定义书签。
实验三PD口输出亮灯实验 ..................................................................................错误!未定义书签。
实验四定时器中断显示实验................................................................................错误!未定义书签。
MikroElektronika PIC18FK 4K 系列开发板说明书

Compact development system rich with on-board peripherals for all-round multimedia development on PIC18F67K40 device.for PIC18FKmikromediaNebojsa MaticGeneral ManagerThe PIC®, dsPIC®, PIC24®, PIC32® and Windows® logos and product names are trademarks of Microchip Technology® and Microsoft® in the U.S.A. and other countries.Introduction to mikromedia for PIC18FK4 Package Contains 5 Key Features 6 System Specification 7 1. Power supply 8Battery power supply 8 USB power supply 8 2. PIC18F67K40 microcontroller 9Key microcontroller features 9 3. Programming the microcontroller 10 Programming with mikroBootloader 11 step 1 – Connecting mikromedia 11 step 2 – Browsing for .HEX file 12 step 3 – Selecting .HEX file 12 step 4 – Uploading .HEX file 13 step 5 – Finish upload 14 Programing with mikroProg programmer15 mikroProg Suite for PIC® Software 16 Programing with ICD2® or ICD3® programmer 174. Reset Button 185. microSD Card Slot 196. Crystal oscillator 207. Audio Module 218. Touch Screen 229. Accelerometer 2310. USB connection 2411. Flash Memory 2512. Pinouts 2613. Dimensions 2714. Schematic 2815. Mikromedia accessories 32 What’s next? 33Table of Contentsit convenient platform for mobile devices.0916010203040506070809101112131415Connection Pads TFT 320x240 display Micro USB connector CHARGE indication LED LI-Polymer battery connector 3.5mm headphone connector Power supply regulator Serial Flash memory RESET buttonVS1053 Stereo mp3 coder/decoder PIC18F87J50 microcontroller Accelerometer Crystal oscillator Power indication LED microSD Card Slot ICD2/3 connector mikroProg connector170306070811101213141516040517System Specificationpower supplyVia USB cable (5V DC)board dimensions81.2 x 60.5 mm (3.19 x 2.38 inch)weight~45.5g (0.10lbs)power consumption52 mA with erased MCU (when back-light is ON)CAUTION: Electrostatic Sensitive DevicePermanent damage may occur on devices subjected to high energy electrostatic discharges which readily accumulate on the human body or test equipment and can discharge without detection.class B productProduct complies with the Class B limit of EN 55022 and can be used in the domestic, residential, commercial and industrial environments.USB power supply - You can apply power supply to the board using micro USB cable provided with the board. On-board voltage regulators provide the appropriate voltage levels to each component on the board. Power LED (green) will indicate the presence of power supply.You can also power the board using Li-Polymer battery, via on-board battery connector. On-board battery charger circuit MCP73832 enables you to charge the battery over USB connection. LED diode (RED) will indicate when battery is charging. Charging current is ~250mA and charging voltage is 4.2V DC.Battery power supplyUSB power supplyFigure 1-1: Connecting USB power supplyFigure 1-2: Connecting Li-Polymer batteryKey MCU features- 128K bytes Program Flash - 3568 Bytes Data SRAM - 1024 Bytes Data EEPROMSleep mode: Lowest Power ConsumptionPIC18F67K40 is a 64-Pin, low-power, high performance microcontroller with XLP technology. equipped with a 10-bit ADC with Computation (ADCC) automating Capacitive Voltage Divider (CVD) techniques for advanced touch sensing, averaging, filtering, oversampling and performing automatic threshold comparisons.The microcontroller can be programmed in three ways:01 02 03Via USB UART mikroBootloader Using mikroProg external programmer Using ICD2/3® external programmerPIC18F67K40 microcontrollerYou can program the microcontroller with a bootloader which is preprogrammed by default. To transfer .hex file from a PC to MCU you need bootloader software (mikroBootloader USB HID) which can be downloaded from:Figure 3-2: mikroBootloader windowstep 1 – Connecting clicker 2 for PIC18FK01To start, connect the USB cable, or if already connected pressthe Reset button on your clicker 2 for PIC18FK. Click the Connect button within 5s to enter the bootloader mode, otherwise existingmicrocontroller program will execute.After the mikroBootloader software is downloaded, unzip it to desired location and start it.https:///examples/starter-boards/clicker-2/pic18fk/clicker-2-pic18fk-mikrobootloader-v100.zipclicker 2 for PIC18FK Bootloader WinRAR ZIP archiveclicker 2 for PIC18FK Bootloader File folderSoftware File foldermikroBootloader USB.exeBootloader tool for mikroElektron...mikroElektronikaPIC18F67K40_Bootloader_Firmware_v100.hex HEX FileFirmware File folder01step 3 – Selecting .HEX filestep 2 – Browsing for .HEX file Figure 3-3: Browse for HEXFigure 3-4: Selecting HEX0101020101Click the Browse for HEX button and from apop-up window (Figure 3-4) choose the .HEX file which will be uploaded to MCU memory.Select .HEX file using open dialog window.Click the Open button.step 4 – Uploading .HEX fileFigure 3-5: Begin uploadingFigure 3-6: Progress bar010101To start .HEX file bootloading click theBegin uploading button.Progress bar enables you to monitor .HEX file uploading.step 5 – Finish uploadFigure 3-7: Restarting MCU Figure 3-8: mikroBootloader ready for next job010102Click OK button after the uploading process is finished.Press Reset button on clicker 2 for PIC18FK board and waitfor 5 seconds. Your program will run automatically.The microcontroller can be programmed with mikroProg programmer and mikroProg Suite for PIC ® software. The mikroProg programmer is connected to the development system via the CN6 connector, Figure 3-9.mikroProg is a fast USB 2.0 programmer with mikroICD ™ hardware In-Circuit Debugger. Smart engineering allows mikroProg ™ to support PIC10®, PIC12®, PIC16®, PIC18®, dsPIC30/33®, PIC24® and PIC32® devices in a single programmer. It supports over 570 microcontrollers from Microchip ®. Outstanding performance, easy operation and elegant design are it’s key features.Programing with mikroProg programmerFigure 3-9:Connecting mikroProg to mikromediaspecial programming softwarecalled mikroProg Suite for PIC. Thissoftware is used for programmingof ALL Microchip® microcontrollerfamilies, including PIC10®, PIC12®,PIC16®, PIC18®, dsPIC30/33®, PIC24®and PIC32®. Software has intuitiveinterface and SingleClick™ programmingtechnology. Just by downloading thelatest version of mikroProg Suite yourprogrammer is ready to program newdevices. mikroProg Suite is updatedregularly, at least four times a year, soyour programmer will be more and morepowerful with each new release.Figure 3-10: Main window of mikroProg Suite for PIC® programming softwarePrograming with ICD2® or ICD3® programmerThe microcontroller can be also programmedwith ICD2® or ICD3® programmer. Theseprogrammers connects with mikromediaboard via ICD2 CONNECTOR BOARD.In order to enable the ICD2® and ICD3®programmers to be connected to thedevelopment system, it is necessary to providethe appropriate connector such as the ICD2CONNECTOR BOARD. This connector should befirst soldered on the CN5 connector. Then youshould plug the ICD2® or ICD3® programmerinto it, Figure 3-11.Figure 3-11:Connecting ICD2®or ICD3® programmerBoard is equipped with reset button, which is located at the top of the front side (Figure 4-2). If you want to reset the circuit, press the reset button. It will generate low voltage level on microcontroller reset pin (input). In addition, a reset can be externally provided through pin 27 on side headers(Figure 4-3).Figure 4-2: Frontal reset buttonFigure 4-1: Location of additional reset buttonFigure 4-1.5. microSD Card SlotFigure 6-1: microSD card slotBoard contains microSD card slot for using microSD cards in yourprojects. It enables you to store large amounts of data externally, thus savingmicrocontroller memory. microSD cards use Serial Peripheral Interface (SPI) forcommunication with the microcontroller.Figure 5-1:Crystal oscillator moduleBoard is equipped with 16MHz crystal oscillator (Y1) circuitthat provides external clock waveform to the microcontrollerCLKO and CLKI pins. This base frequency is suitable for further clockmultipliers and ideal for generation of necessary USB clock, which ensuresproper operation of bootloader and your custom USB-based applications.The use of crystal in all other schematics is implied even if it is purposely left out, because of the schematics clarity.Figure 8-2: 3.5mm headphones jackThe development system features a TFT 320x240 displaycovered with a resistive touch panel. Together they form afunctional unit called a touch screen. It enables data to beentered and displayed at the same time. The TFT display iscapable of showing graphics in 262.144 diffe r ent colors. Figure 7-1: Touch ScreenOn board ADXL345 accelerometer is used to measure accelerationin three axis: x, y and z. The accelerometer function is defined by theuser in the program loaded into the microcontroller. Communicationbetween the accelerometer and the microcontroller is performed viathe I2C interface.You can set the accelerometer address to 0 or 1 by re-soldering the SMDjumper (zero-ohm resistor) to the appropriate position. Jumper is placed inaddress 1 position by default.10. USB connectionFigure 9-1: ConnectingUSB cable to Micro USBconnectorPIC18F67K40 microcontroller has an integrated USB module, which enables you toimplement USB communication functionality to your mikromedia board. Connection withtarget USB host is done over micro USB connector which is positioned next to the battery connector.Figure 11-1: Flash memory moduleSince multimedia applications are getting increasingly demanding, it is necessary to provide additional memory spaceto be used for storing more data. The flash memory module enables the microcontroller to use additional 8Mbit flash memory. It is connected to the microcontroller via the Serial Peripheral Interface (SPI).VSYS RST GND GND RA0L RA1R RA2RC2RB4RC6RA4RC7RA5RG6RF0RA3RB0RB5RB1RB6RB2RB7RB3RH0RE0RH1RE1RD1RE2RD2RE3RD3RE4RD4RE5RA6RE6RA7RE7RG2RC3RG7RC4RD6RC5RD53.3V 3.3V GNDGNDSPI LinesInterrupt Lines Analog Lines Digital linesI2C Lines UART lines PWM lines81.1560.45 1.6 47144080LegendVCC-3V3R2610kC17100n0203BatteryBoost shieldPROTO shield0607Li-Polymer batteryWire Jumpers05mikroBUS shieldYou still don’t have an appropriate compiler? Locate PIC ® compiler that suits you best on our site:Choose between mikroC, mikroBasic and mikroPascal and download fully functional demo version, so you can begin building your first applications.Once you have chosen your compiler, and since you already got the board, you are ready to start writing your first projects. Visual TFT software for rapid development of graphical user interfaces enables you to quickly create your GUI. It will automatically create necessary code which is compatible with mikroElektronika compilers. Visual TFT is rich with examples, which are an excellent starting point for your future projects. Just load the example, read well commented code, and see how it works on hardware. Visual TFT is also available on our site:You have now completed the journey through each and every feature of mikromedia for PIC18FK board. You got to know it’s modules and organization. Now you are ready to start using your new board. We are suggesting several steps which are probably the best way to begin. We invite you to join the users of mikromedia ™ brand. You will find very useful projects and tutorials and can get help from a large ecosystem of users. Welcome!CompilerProjectsIf you want to learn more about our products, please visit our web site at If you are experiencing some problems with any of our products or just need additional information, please place your ticket at /supportIf you have any questions, comments or business proposals,do not hesitate to contact us at *****************。
pic18系列单片机-汇编语言程序例程-AD

;程序实现A/D转换功能,A/D采用中断方式。
该程序通过单片机的RA2模拟通道送入;一直流电压,当送入的直流电压大于2.5V时,8个LED闪动,当直流电压恢复到2.5V以下;时,LED停止闪动。
为了防止干扰,本程序对直流电压采样10次后再作判断,中间的采样结;果用间接寻址的方式存取。
LIST P=18F458INCLUDE "P18F458.INC"TIMES EQU 0X20DEY EQU TIMES+1ACCALO EQU TIMES+2 ;ACCA为双精度加数寄存器ACCAHI EQU TIMES+3ACCBLO EQU TIMES+4 ;ACCB为双精度加法的结果寄存器ACCBHI EQU TIMES+5FLAG EQU TIMES+6DEYH EQU TIMES+7DEYL EQU TIMES+9BEGFSR EQU 0X30 ;间接寻址FSR的起始值(宏定义方式给出)ORG 0X0000GOTO MAINORG 0X0008GOTO INTSERVE ;转向中断服务子程序ORG 0X30;***双字节减法子程序,入口地址ACCB-ACCA,出口地址ACCB***D_SUBCALL NEG_A ;求ACCA的补码;***双字节加法子程序,入口地址ACCB+ACCA,出口地址ACCB***D_ADDMOVF ACCALO,0 ;ACCB和ACCA低半字节相加ADDWF ACCBLOBTFSC STA TUS,C ;有进位否?INCF ACCBHI ;有,ACCB高字节加1,再加ACCAHIMOVF ACCAHI,0 ;ACCA、ACCB高半字节相加ADDWF ACCBHIRETURN ;子程序返回;************** ACCA取补子程序*****************NEG_ACOMF ACCALO ;ACCALO取反加1INCF ACCALOBTFSC STA TUS,Z ;低8位有进位吗?DECF ACCAHI ;有,ACCAHI减1,再取反COMF ACCAHI ;否则ACCAHI直接取反RETURN ;子程序返回;*********初始化子程序***************INITIALCLRF INTCON ;禁止总中断和外围中断MOVLW 0X51MOVWF ADCON0 ;选择AD通道为RA2,且打开A/D转换器;在工作状态,且使AD转换时钟为8Tosc MOVLW 0X80MOVWF ADCON1 ;转换结果右移,即ADRESH寄存器的高6;位为"0",且把RA2口设置为模拟量输入式;(注意后面要把RA5改成数据I/O方式,以;输出显示琐存信号)BCF PIR1,ADIF ;清除A/D转换标志BSF PIE1,ADIE ;A/D转换中断允许BSF INTCON,PEIE ;外围中断允许BSF IPR1,ADIP ;B口变位中断高优先级BSF RCON,7 ;使能中断优先级BSF TRIS A,2 ;设置RA2为输入方式BCF TRIS A,5 ;置RA5为输出方式,以输出锁存信号BCF TRISC,5BCF TRISC,3 ;设置SCK与SDO为输出方式MOVLW 0XC0MOVWF SSPSTA T ;设置SSPSTA T寄存器MOVLW 0X30MOVWF SSPCON1 ;设置S PI的控制方式,允许SSP方式,并;且时钟下降沿发送,与"74HC595当其;SCLK从低到高电平跳变时,串行输入数据;(DI)移入寄存器"的特点相应CLRF FLAGRETURN;*********软件延时子程序****************DELAYMOVLW 0XFFMOVWF DEYHAGAIN1 MOVLW 0XFFMOVWF DEYLAGAIN2 NOPDECFS Z DEYLGOTO AGAIN2DECFS Z DEYHGOTO AGAIN1RETURN;*************** A/D中断服务子程序*****************INTSERVEBCF PIR1,ADIF ;清除A/D转换标志MOVF ADRES H,WMOVWF INDF0 ;读取并存储A/D转换结果的高两位INCF FSR0LMOVF ADRESL,WMOVWF INDF0INCF FSR0L ;读取并存储A/D转换结果的低8位DECF TIMES,1 ;A/D转换次数减1MOVLW 0X02MOVWF DEYLOOP13 DECFS Z DEY,1GOTO LOOP13 ;给予一定的延时,保证两次A/D转换期间;2Tad的间隔时间和电容的采样时间BSF ADCON0,2 ;启动下一次A/D转换RETFIE ;中断返回;********** LED闪烁报警子程序*************ALARMMOVLW 0X01XORWF FLAG,1BTFSS FLAG,0CALL DISPLAY0 ;调用显“0”子程序NOPBTFSC FLAG,0CALL DISPDARK ;调用显“DARK”子程序RETURN;**********显全0子程序*************DISPLAY0TRANS MIT ;SPI发送显示子模块CLRF POR TA ;LACK送低电平,为锁存做准备MOVLW 0X08MOVWF TIMESLOOP80 MOVLW 0XC0 ;显示值为0,C0H为0的段码MOVWF SSPBUF ;启动发送WAITBTFSS PIR1,SSPIFGOTO WAIT ;等待发送结束BCF PIR1,SSPIF ;清除中断标志DECFS Z TIMESGOTO LOOP80 ;一次要发送完8个数据BSF POR TA,5 ;最后给一个锁存信号,代表一次显示任务完成RETURN;**********显示全DARK子程序*************DISPDARKTRANS MIT1 ;SPI发送显示子模块CLRF POR TA ;LACK送低电平,为锁存做准备MOVLW 0X08MOVWF TIMESLOOP8D MOVLW 0XFF ;显示值为0,FFH为DARK的段码MOVWF SSPBUF ;启动发送WAIT1BTFSS PIR1,SSPIFGOTO WAIT1 ;等待发送结束BCF PIR1,SSPIF ;清除中断标志DECFS Z TIMESGOTO LOOP8D ;一次要发送完8个数据BSF POR TA,5 ;最后给一个锁存信号,代表一次显示任务完成RETURN;***************主程序******************MAIN NOPCALL INITIAL ;初始化LOOPMOVLW 0X80 ;转换结果右移,及ADRESH寄存器的高6位为"0";且把RA2口设置为模拟量输入式(注意后面要把; RA5改成数据I/O方式,以输出显示琐存信号) MOVWF ADCON1MOVLW BEGFSRMOVWF FSR0L ;给出间接寻址时FSR的初值MOVLW 0X0AMOVWF TIMES ;每一轮A/D连续采样10次BSF INTCON,GIE ;总中断打开,及可以进行A/D转换中断BSF ADCON0,2 ;启动A/D转换LOOP1 MOVF TIMES,WBTFSS STA TUS,ZGOTO LOOP1 ;等待A/D转换中断BCF INTCON,GIE ;A/D转换次数到10次,关闭中断NOPCLRF ACCBHICLRF ACCBLO ;双精度加法的结果寄存器清0,为后面准备MOVLW 0X0AMOVWF TIMESMOVLW BEGFSRMOVWF FSR0LLOOP15 MOVF INDF0,WMOVWF ACCAHIINCF FSR0LMOVF INDF0,WMOVWF ACCALOINCF FSR0LCALL D_ADDDECFS Z TIMESGOTO LOOP15NOP ;计算得到10次A/D转换的和MOVLW 0X84MOVWF ADCON1 ;把RA5设成数字I/O,以输出显示锁存信号MOVLW 0X14MOVWF ACCAHICLRF ACCALOCALL D_SUB ;通过双精度减判断模拟量是否达到报警限;度(1400H=200H*0AH,200H与2.5V对应) BTFSS ACCBHI,7CALL ALARM ;若ACCBHI的最高位为1,则证明减法结;果为负,即直流电压值超过2.5V,则报警NOPBTFSC ACCBHI,7CALL DISPLAY0 ;若没有超过2.5V,则不报警,8个LED;同时显示0CALL DELAY;软件延时,使电压检测不要过于频繁GOTO LOOP ;重复检测输入的直流电压值END。
PIC18F4620实验指导书

PIC18F4620单片机实验指导书PIC18F4620单片机实验指导书 (1)一、系统概述 (7)二、系统环境配置 (8)1.Microchip介绍 (8)2.Microchip安装 (8)3.MPLAB IDE 使用 (15)三、核心板硬件电路 (21)1、核心板原理图 (21)2、核心板丝印图 (22)四、引脚对照表 (23)五、软件实验 (24)实验一 IO开关量输入实验 (24)一、实验目的 (24)二、实验设备和器件 (24)三、实验内容 (24)四、实验要求 (25)五、实验步骤 (25)六、实验预习要求 (26)七、参考程序 (26)八、实验思考题 (26)实验二 IO驱动实验 (27)一、实验目的 (27)二、实验设备和器件 (27)三、实验内容 (27)四、实验要求 (28)五、实验步骤 (28)六、实验预习要求 (28)七、参考程序 (28)八、实验思考题 (28)实验三外部中断计数实验 (29)一、实验目的 (29)二、实验设备和器件 (29)三、实验内容 (29)四、实验要求 (30)五、实验步骤 (30)六、实验预习要求 (31)七、参考程序 (31)八、实验思考题 (31)实验四计数器实验 (32)一、实验目的 (32)五、实验步骤 (33)六、实验预习要求 (33)七、参考程序 (33)八、实验思考题 (33)实验五定时器实验 (34)一、实验目的 (34)二、实验设备和器件 (34)三、实验内容 (34)四、实验要求 (35)五、实验步骤 (35)六、实验预习要求 (35)七、参考程序 (35)八、实验思考题 (35)实验六 PWM发生器实验 (36)一、实验目的 (36)二、实验设备和器件 (36)三、实验内容 (36)四、实验要求 (36)五、实验步骤 (36)六、实验预习要求 (37)七、参考程序 (37)八、实验思考题 (37)实验七蜂鸣器实验 (38)一、实验目的 (38)二、实验设备和器件 (38)三、实验内容 (38)四、实验要求 (38)五、实验步骤 (39)六、实验预习要求 (39)七、参考程序 (39)八、实验思考题 (39)实验八外扩WDT看门狗实验 (40)一、实验目的 (40)二、实验设备和器件 (40)三、实验内容 (40)四、实验要求 (41)五、实验步骤 (41)六、实验预习要求 (41)七、参考程序 (41)八、实验思考题 (41)实验九 PIC18片内WDT看门狗实验 (42)一、实验目的 (42)二、实验设备和器件 (42)六、实验预习要求 (43)七、参考程序 (43)八、实验思考题 (43)实验十 24C02读写实验 (44)一、实验目的 (44)二、实验设备和器件 (44)三、实验内容 (44)四、实验要求 (45)五、实验步骤 (45)六、实验预习要求 (46)七、参考程序 (46)八、实验思考题 (46)实验十一 DS1302时钟实验 (47)一、实验目的 (47)二、实验设备和器件 (47)三、实验内容 (47)四、实验要求 (48)五、实验步骤 (48)六、实验预习要求 (49)七、参考程序 (49)八、实验思考题 (49)实验十二 74LS164串入并出移位实验 (50)一、实验目的 (50)二、实验设备和器件 (50)三、实验内容 (50)四、实验要求 (51)五、实验步骤 (51)六、实验预习要求 (52)七、参考程序 (52)八、实验思考题 (52)实验十三74LS165并入串出移位实验 (53)一、实验目的 (53)二、实验设备和器件 (53)三、实验内容 (53)四、实验要求 (55)五、实验步骤 (55)六、实验预习要求 (55)七、参考程序 (55)八、实验思考题 (55)实验十四 ADC0809模数转换实验 (56)一、实验目的 (56)二、实验设备和器件 (56)三、实验内容 (56)七、参考程序 (58)八、实验思考题 (58)实验十五 PIC18片内10位AD模数转换实验 (59)一、实验目的 (59)二、实验设备和器件 (59)三、实验内容 (59)四、实验要求 (59)五、实验步骤 (59)六、实验预习要求 (60)七、参考程序 (60)八、实验思考题 (60)实验十六 DAC0832数模转换实验 (61)一、实验目的 (61)二、实验设备和器件 (61)三、实验内容 (61)四、实验要求 (62)五、实验步骤 (62)六、实验预习要求 (63)七、参考程序 (63)八、实验思考题 (63)实验十七 PC机串口通信实验 (64)一、实验目的 (64)二、实验设备和器件 (64)三、实验内容 (64)四、实验要求 (65)五、实验步骤 (65)六、实验预习要求 (65)七、参考程序 (65)八、实验思考题 (65)实验十八温度传感器DS18B20实验 (66)一、实验目的 (66)二、实验设备和器件 (66)三、实验内容 (66)四、实验要求 (67)五、实验步骤 (67)六、实验预习要求 (68)七、参考程序 (68)八、实验思考题 (68)实验十九 HS1011湿度传感器实验 (69)一、实验目的 (69)二、实验设备和器件 (69)三、实验内容 (69)四、实验要求 (70)八、实验思考题 (71)实验二十红外遥控解码实验 (72)一、实验目的 (72)二、实验设备和器件 (72)三、实验内容 (72)四、实验要求 (73)五、实验步骤 (73)六、实验预习要求 (74)七、参考程序 (74)八、实验思考题 (74)实验二十一光耦隔离继电器控制实验 (75)一、实验目的 (75)二、实验设备和器件 (75)三、实验内容 (75)四、实验要求 (76)五、实验步骤 (76)六、实验预习要求 (77)七、参考程序 (77)八、实验思考题 (77)实验二十二直流电机控制实验 (78)一、实验目的 (78)二、实验设备和器件 (78)三、实验内容 (78)四、实验要求 (80)五、实验步骤 (80)六、实验预习要求 (81)七、参考程序 (81)八、实验思考题 (81)实验二十三步进电机控制实验 (82)一、实验目的 (82)二、实验设备和器件 (82)三、实验内容 (82)四、实验要求 (82)五、实验步骤 (83)六、实验预习要求 (83)七、参考程序 (83)八、实验思考题 (83)实验二十四数码管驱动显示实验 (84)一、实验目的 (84)二、实验设备和器件 (84)三、实验内容 (84)四、实验要求 (85)五、实验步骤 (85)实验二十五 16X16点阵汉字显示实验 (86)一、实验目的 (86)二、实验设备和器件 (86)三、实验内容 (86)四、实验要求 (87)五、实验步骤 (87)六、实验预习要求 (87)七、参考程序 (88)八、实验思考题 (88)实验二十六 LCD1602 显示实验 (89)一、实验目的 (89)二、实验设备和器件 (89)三、实验内容 (89)四、实验要求 (90)五、实验步骤 (90)六、实验预习要求 (90)七、参考程序 (90)八、实验思考题 (90)实验二十七 LCD12864显示实验 (91)一、实验目的 (91)二、实验设备和器件 (91)三、实验内容 (91)四、实验要求 (92)五、实验步骤 (92)六、实验预习要求 (92)七、参考程序 (92)八、实验思考题 (92)实验二十八矩阵键盘扫描实验 (93)一、实验目的 (93)二、实验设备和器件 (93)三、实验内容 (93)四、实验要求 (94)五、实验步骤 (94)六、实验预习要求 (95)七、参考程序 (95)八、实验思考题 (95)实验二十九 BCD译码显示实验 (96)一、实验目的 (96)二、实验设备和器件 (96)三、实验内容 (96)四、实验要求 (97)五、实验步骤 (97)六、实验预习要求 (98)一、系统概述微控制器仿真实验实训箱包含丰富的硬件资源与接口电路、多种处理器模块。
PIC18系列单片机原理及实践

PIC18系列单片机是一种非常常用的微控制器,本课程将通过理论与实践相 结合的方式,详细介绍该系列单片机的原理和应用。
PIC18单片机系列概述
PIC18单片机系列广泛应用于嵌入式系统,具有强大的处理能力和丰富的外设功能。本节课将介绍其特 点、应用领域和优势。
强大的处理能力
2
对电流、电压和功率的控制。
PIC18单片机可以通过PWM输出来控
制LED的亮度,实现动态调节效果。
3
电机速度控制
利用PWM输出可以控制电机的转速, 实现精确的速度控制。
定时器与中断的应用
定时器和中断是PIC18单片机重要的功能模块。本节课将介绍定时器的原理和中断的应用方法。
定时器 中断ቤተ መጻሕፍቲ ባይዱ
通过定时器模块可以实现精确的时间计量和延 时控制。
1
需求分析
明确系统的功能需求和性能指标。
硬件设计
2
选择适合的单片机和外围电路,并进
行电路设计。
3
软件设计
编写单片机的程序代码,实现系统的
系统集成
4
功能。
将硬件和软件部分进行整合,并进行 调试和测试。
开发工具的选择与环境配置
选择合适的开发工具和环境对于单片机开发非常重要。本节课将介绍开发工具的选择准则和环境配置的 步骤。
2 汇编语言
更接近硬件,可以对单片机进行更细致的控制,适合对性能要求较高的应用。
I/O口及外设的应用方法
通过I/O口和外围设备,PIC18单片机可以与外部世界进行信息交互。本节课将介绍I/O口的基本原理和 外设的应用方法。
I/O口基本原理
外设的应用方法
I/O口用于输入和输出数字信号, 通过设置和读取I/O口寄存器来 实现。
PIC单片机实验指导书

实验一MPLAB IDE系统使用向导一、启动MPLAB IDE启动MPLAB IDE有两种方式:(1)Start>Programs>Microchip>MPLAB IDE 7.41>MPLAB IDE。
(不同版本的MPLAB IDE软件可能路径名称会略有不同。
)(2)双击桌面上的MPLAB IDE 图标二、创建源文件选择File(文件)>new…(新建),出现一个文本编辑窗口,在该窗口中输入以下汇编语言源程序先创建文件夹F:\myprj,然后将上面输入的源程序保存该文件夹,注意文件的扩展名为asm,这里我们将它保存为exam1.asm:文件保存后,我们发现源程序编辑窗口中的程序被着上了各种颜色,这些颜色能帮助我们更好地阅读源程序,快速发现输入有误的指令:三、创建项目项目是将文件组织起来以便进行编译和汇编的方式。
选择Project(项目)>new…(新建),出现New Project(新项目)对话框:在New Project(新项目)对话框中,我们将这个示例项目命名为MyPrj,使用Browse 按钮,将项目放在名为D:\myprj的文件夹中。
单击OK按钮,在MPLAB IDE 界面上我们会看到已创建项目的的项目窗口,如下图:四、给项目节点添加文件源文件是必须添加的。
其他文件,如头文件、库文件、链接描述文件,视项目的具体情况可加可不加。
在本实例中,只添加一个源文件exam1.asm,在左边的项目窗口中找到Source Files节点,在其上点鼠标右键,在弹出的快捷菜单中选Add Files(如上图所示)。
双击要添加的文件exam1.asm,或单击要添加的文件exam1.asm,然后点“打开”按纽:文件添加成功后的项目窗口如下,Source Files节点下已经添加了文件 exam1.asm五、编译文件选择Project>Build All 或在项目窗口中的项目名称上点击右键,并从弹出菜单中选择“Build All”。
PIC18F452单片机原理及编程实践(第十章)PIC 18串行接口的汇编和C编程

计算机内部的数据是按字节存储、运算的; 计算机与外部设备之间的数据传输从理论上讲:采用并 行方式是效率最高的,因为并行传输数据的速度快; 如果两套设备之间距离变长,则不得不考虑下列因素: 数据传输设备的成本:并行设备至少要8条以上的线; 随着距离的加长,信号幅值将要衰减、干扰信号的影响 将显著增加。 因此长距离通信采用串行传输方式必然结果。
第十章 PIC 18串行接口的汇编和C编程
1. 2. 3. 4. 5. 6. 7. 8. 9.
本章内容: 串行通信和并行通信,串行通信的优点; 串行通信的协议; 同步串行和异步串行; 半双工和全双工传输; 数据帧格式; 串行数据传输速度和波特率,PIC18的波特率; RS-232标准及MAX232芯片的应用; PIC18串行通信的特征以及相关的寄存器; 使用汇编和C语言对PIC18串行口的编程。
RS232 电平
TX RX
MAX232
MAX232
RX TX
PIC18甲乙两地之间远距离通讯(RS-232电平)
TX RX MAX232 PC机 COM1,COM2
PIC18与PC机之间的数据通讯(RS-232电平)
2017/8/29 14
10.2.1 PIC18的串行接口模块
1. 2.
具备同步、异步的全双工的功能模块; 在PIC18单片机中有两个引脚是用于串行通信的: RX --- 串行数据接收端(RC7); TX --- 串行数据发送端(RC6)。 当使能串口模块时要通过TRISC的相关位的引脚方向进 行设置(BCF TRISC,6 和 BSF TRISC,7)。 主要的相关SFR寄存器: SPBGR:波特率寄存器); TXSTA、 RCSTA:发送状态、接收状态寄存器; TXREG、RCREG:发送数据、接收数据缓冲器。
超经典!PIC单片机原理及应用实验(含代码)

《单片机原理及应用》实验指导书适用年级:08 物电信编制人:彭晓珊编制时间:2010.3实验室:嵌入式工程师实训室1《单片机原理及应用》第一次实验实验名:开发环境认识实验主要内容:认识MPLAB 开发软件,熟悉QL200B 实验箱目的要求:熟练掌握MPLAB 开发软件的开发流程,熟悉QL200B 实验箱的组成。
主要仪器:QL200B 实验箱+PC+万用表《单片机原理及应用》第二次实验实验名:跑马灯实验主要内容:进一步认识MPLAB 开发软件,熟悉QL200B 实验箱硬件,熟悉软件延时的设计。
目的要求:实现一个简单的流水灯程序,即轮流点亮 C 口的8 个灯(先点亮RC0,再熄灭RCO 点亮RC1……)。
硬件要求:拨码开关S11 全部置ON,其余全部为OFF。
主要仪器:QL200B 实验箱+PC参考程序如下:#include<p16f877A.inc> ;调用头文件__CONFIG_DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_ WDT_OFF&_HS_OSC;**********************用户寄存器定义********************count equ 20h ;移位次数寄存器2del_va1 equ 0ffh ;外层延时参数del_va2 equ 0afh ;内层延时参数org 00h ;程序人口地址;**********************主程序开始***********************mainnop ;ICD 所需要的一条空指令clrf PORTC ;先清楚C 口所有显示banksel TRISC ;选择I/O 口方向寄存器所在的体clrf TRISC ;设置C 口全为输出clrf STATUS ;返回体0movlw .8movwf count ;装载循环次数8(C 口共8 位)bsf STATUS,C ;置进位标志位为1,因循环移位是带进位循环的looprlf PORTC,1 ;C 口左移1 位call delay3call delayCALL delay ;调用三次延时程序(保证亮度,以及流水灯闪烁速度)bcf STATUS,C ;清0 进位标志位(永远只有一只LED 亮)DECFSZ count,1 ;判断是否一轮循环结束goto loop ;否,继续循环移位GOTO main ;是,程序重头开始;***********************延时程序*************************delaymovlw del_va1 ;延时程序外层参数movwf 30hmovlw del_va2 ;延时程序内层参数movwf 31hdecfsz 31h,1goto $-1decfsz 30h,1goto $-4return;********************程序结束****************************end4《单片机原理及应用》第三次实验实验名:LED 显示控制实验主要内容:进一步认识MPLAB 开发软件,熟悉QL200B 实验箱硬件,熟悉静态和动态显示LED 的设计。
nanoWatt XLP PIC18F1XK22 闪存微控制器说明书

nanoWatt XLP™ PIC18F1XK22 Flash MCUM i c r o ch i p T e c h n o l o g y I n c o r p o r a t e dFlexible Oscillator Structure■Precision 16 MHz internal oscillator block:– Factory calibrated to ± 1%– Software selectable frequencies range of 31 kHzto 16 MHz– 64 MHz performance available using PLL– No external components required■Four crystal modes up to 64 MHz■Fail-Safe Clock Monitor – Allows for safe shutdown ifperipheral clock stops■Two-Speed Oscillator Start-upSpecial Microcontroller Features■Operating voltage 1.8V- 5.5V (with low voltage option1.8V-3.6V)■Self-reprogrammable under software control■Power-on Reset (POR), Power-up Timer (PWRT) andOscillator Start-up Timer (OST)■Programmable Brown-out Reset (BOR)■Extended Watchdog Timer (WDT) with on-chip oscillatorand software enable■In-Circuit Serial Programming™ (ICSP™) via two pins■In-Circuit Debug via two pinsSummaryIntroducing the nanoWatt XLP PIC18F1XK22 Flash microcontroller: not too big, not too small… just right! This new family of devices offer all of the advantages of the well recognized PIC18F High Performance MCUs; 8-bit,C compiler optimized architecture and an industry leading peripheral set now available in a low pin-count option. These new 20-pin products include a 16 MHz precision Internal Oscillator which can be used with the standard 4X PLL to produce 16 MIPS of performance (64 MHz @ 3V). Standard analog peripherals include 12 channels of10-bit A/D, Dual Rail-Rail Comparators with improvedinput/output multiplexing and an on-chip selectable Fixed Voltage Reference. Digital peripherals include an Enhanced Capture/Compare/PWM (ECCP+) module with PWM steering and a Master Synchronous Serial Port (MI2C,SPI) module with software controllable address masking. These devices also feature the SR Latch mode which supports capacitive sensing applications.In addition to these peripherals, the devices feature several microcontroller monitors that provide for reliable operation including BOR (Brown Out Reset) with software enable, POR (Power On Reset) and an Extended WDT. The addition of nanoWatt XLP technology make these devices ideally suited for battery powered applications or designs where power consumption is constrained.Features■ C Compiler optimized architecture■256 bytes data EEPROM■Linear program memory addressing to 16 Kbytes■Linear data memory addressing to 512 bytesExtreme Low-Power ManagementPIC18LF1XK22 with nanoWatt XLP™ Technology■Sleep mode: 50 nA, typical■Watchdog Timer: 600 nA, typical■Timer1 Oscillator: 800 nA @ 32 kHz, typicalInformation subject to change. The Microchip name and logo, the Microchip logo, MPLAB and PIC are registered trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. In-Circuit Serial Programming, ICSP , MPASM, MPLIB, MPLINK, mTouch and nanoWatt XLP are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. All other trademarks mentioned herein are property of their respective companies. © 2009, Microchip Technology Incorporated. All Rights Reserved. Printed in the U.S.A. 6/09 DS41387B*DS41387B*Visit our web site for additional product information and to locate your local sales office.Microchip Technology Inc. • 2355 W. Chandler Blvd. • Chandler, AZ 85224-6199/PIC18K /XLPPart Number Development ToolDescriptionSW007002MPLAB® IDE – includes: MPASM™ Assembler, MPLINK™Linker/MPLIB™ Librarian and MPLAB SIM Software Simulator Integrated Development Environment (download free of charge at )DM183032PIC18 Explorer Low-cost Development Board for PIC18 MCUs DM24000116-bit ExplorerLow-cost Development Board for 16-bit PIC MCUs DV164131PICkit™ 3 Debug ExpressIn-Circuit Debugger/Programmer DV164035MPLAB ICD 3 In-Circuit Debugger Kit In-Circuit Debugger/Programmer DV007004MPLAB PM3 Universal Device Programmer Full-featured Modular Device Programmer DV244005MPLAB REAL ICE™ In-Circuit EmulatorHigh Speed Emulation SystemPeripheral Highlights■ 12 Ch. 10-bit Analog-to-Digital (A/D) Converter module:■ 2 rail-to-rail Analog Comparators module with:■ Voltage Reference module with:– Programmable on-chip voltage reference (CV REF ) module (% of V DD )– Selectable Fixed voltage reference (FVR) with multiple reference voltages■ 17 I/O pins and 1 input only pin:– High current sink/source 25 mA/25 mA – Three external interrupt pins ■ Four Timer modules:– 3 16-bit timers/counters with prescaler– 1 8-bit timer/counter with 8-bit period register, prescaler and postscaler■ Enhanced Capture/Compare/PWM (ECCP) module with PWM output steering:– Programmable dead time– Auto-shutdown and Auto-restart■ Master Synchronous Serial Port (MSSP) module with t wo modes of operation:– 3-wire SPI (supports all 4 SPI modes) – I 2C™ Master and Slave modes (Slave mode with address masking)■ Enhanced Universal Synchronous Asynchronous Receiver Transmitter module (EUSART)– Supports RS-232, RS-485 and LIN 2.0 – Auto-Baud Detect■ SR Latch (555 Timer) module with: – Confi gurable inputs and outputs– Supports mTouch™ capacitive sensing applicationsAdditional Information■ 8-bit PIC® Microcontroller Solutions Brochure , DS39630■ Low-Cost Development Tools Guide , DS51560■ Corporate Product Line Card, DS00890Sample/Purchasing Information■ On-line Sampling: ■ On-line Purchasing: Product Program Memory (Bytes)Data EEPROM (Bytes)DataRAM(Bytes)I/O Pins(Total)ADC ComparatorsECCP/CCP Communication Timers/WDT SR Latch Standard Operating Voltage Packages PIC18F14K2216K 2565121812 x 10b 21/0MI 2C, SPI, EUSART 3-16b, 1-8b, EWDT Yes 1.8V-5.5V PDIP , SSOP , SOIC, QFN PIC18LF14K2216K 2565121812 x 10b 21/0MI 2C, SPI, EUSART 3-16b, 1-8b, EWDT Yes 1.8V-3.6V PDIP , SSOP , SOIC, QFN PIC18F13K228K 2562561812 x 10b 21/0MI 2C, SPI, EUSART 3-16b, 1-8b, EWDT Yes 1.8V-5.5V PDIP , SSOP , SOIC, QFN PIC18LF13K228K2562561812 x 10b21/0MI 2C, SPI, EUSART3-16b, 1-8b, EWDTYes1.8V-3.6VPDIP , SSOP , SOIC, QFN。
PIC18F452单片机原理及编程实践(第八章)PIC 18F的硬件连接与ROM载入

功能描述 芯片振荡器选择 掉电 看门狗启用控制 背景调试模式和ISCP 代码保护选择 EEPROM和启用空间保护 写保护 写保护 读保护 引导程序块的度保护 设备ID和修正 设备ID
15
8.2.1 CONFIG1H 寄存器和震荡时钟源
–
MSB
–
/OSCSEN
–
–
FOSC2
FOSC1
FOSC0
LSB
2017/8/29
PIC 18F458 microchip
FLASH型
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 V dd V ss RD7 RD6 RD5 RD4 RC7 RC6 RC5 RC4 RD3 RD2
端口A:RA(6线) 端口B:RB(8线) 端口C:RC(8线) 端口D:RD(8线) 端口E:RE(3线)
25
2017/8/29
8.2.2 CONFIG2L 寄存器和复位电压
用于设定系统的复位参数; 复位电路确保系统在上电时,能够从一个稳定的电压和 稳定的系统震荡周期条件下开始工作; 在PIC18的复位系统中,设计有两个计数器: 上电定时器PWRT:确保电源由0V~5V的建立; 振荡器启动定时器:确保震荡波形的稳定输出。
注:①只列出引脚的基本功能;
②28脚芯片只有RA、 RB 和RC端口。
3
(一)Vdd 引脚链接
两个Vdd引脚作为电源电压的输入; 典型芯片的Vdd=5V。为了降低系统的噪声和功耗在一些 产品中,Vdd采用了更低的电压; 在PIC18系统中,可以通过CONGIG寄存器来配置Vdd的 等级(在下一节中探讨)。 Vdd引脚的+5V直流电压可以通过7805或其他的稳压电路 提供稳定的5V直流电压。
PIC18汇编程序学习

PIC18汇编程序学习
© 2004 Microchip Technology Incorporated. All Rights Reserved.
804 P18
Learning to Program in Assembler on the PIC18
1
议题
架构概述 休息 Lab 1: USART 硬件操作 Lab 2: 读取表格 Lab 3: FSR 寄存器操作 Lab 4: 字符串比较 (增强部分) (增强部分)
Special 0xFFF Registers 0xF80
Bank 15
ADDWF f,d,a a=0
0010 01dr ffff ffff
© 2004 Microchip Technology Incorporated. All Rights Reserved.
804 P18
Learning to Program in Assembler on the PIC18
© 2004 Microchip Technology Incorporated. All Rights Reserved.
数据存储器: 数据存储器: 间接寻址
5 种模式来控制FSRxH ,FSRxL 的修改 种模式来控制FSRxH ,FSRxL FSR 修改基于指令对模式寄存器的寻址
Register INDF0 POSTINC1 POSTDEC0 PREINC2 PLUSW0 C-equiv C-equiv *FSR0 *FSR1++ *FSR0-*FSR0-*(++FSR2) *(W+FSR0) Function 间接寻址指针不变 间接寻址指针自动后增 间接寻址指针自动后减 间接寻址指针自动预增 将W用作间接寻址索引 将W用作间接寻址索引
PIC18系列单片机原理和实践

2019/1/4
大连理工大学 电工电子实验中心 陈育斌
5
1.2 PIC18系列单片机的特性
与其它PIC系列单片机一样,采用精简指令集RISC、流 水作业、丰富的内部模块、低功耗大电流驱动等。为了 更适合单片机的C语言开发,18系列设计成较大的信息 存储空间。如: 2M的程序存储器空间; 4K的数据存储空间; 这种设计极大的方便了C语言的设计与编程。
2019/1/4
目
录
第一章 PIC微控制器的历史和特征 1.1 PIC微控制器的产品系列 1.2 PIC18系列微控制器的特性 1.3 PIC微控制器的产品局限性 1.4 PIC微控制器的程序ROM 1.5 PIC微控制器的数据RAM和E2PROM
1.6 PIC微控制器的I/O引脚
1.7 PIC微控制器的外围设备
PIC18系列单片机原理及实践 (第一章)
参考资料:《PIC技术宝典》 PIC Microcontroller and Embedded Systems [美] Rolin D.Mckinlay 著 课件编写:大连理工大学 电工电子实验中心 2009年12月
2019/1/4
大连理工大学 电工电子实验中心 陈育斌
—在3V、32KHz下典型值25uA;
—待机电流典型值0.2uA。
2019/1/4
大连理工大学 电工电子实验中心 陈育斌
12
1.3 PIC微控制器的产品局限性
由于历史原因:PIC单片机的产品是逐渐从低向高发展。 其中最明显的特征是:随着产品性能的提高其内部的硬 件结构也在变化。如程序存储器ROM的宽度会随着产品 性能的升级而加宽,且指令系统也在扩充。
16FXXX:具有丰富的内部模块、完整的指令系统和良 好的向下兼容性。适合初学入门的系列; 18FXXX:高效的16位指令系统、大容量的ROM和RAM 结构使其更适合C语言编程。更为丰富的内部某块和8位 的硬件乘法器使其具备DSP的性能。学习的高级阶段。
PIC18F452单片机原理及编程实践(第十四章)PIC18的EEPROM模块编程

2017/8/29
12
14.2.3 NV-RAM存储器
一种具备普通RAM的读、写特性,有具备非易失行的优 点,这就是NV-RAM存储器; NV-RAM有下列几部分组成: 使用CMOS低功耗的SRAM阵列; 使用内部锂电池做备用电源; 使用智能控制系统,对供电进行监控,当外部电源下降 带一个极限值时,自动切换电源、由内部锂电池供电。
在PIC18系列单片机中程序存储器就是使用flash EPROM装载用户程序的。
2017/8/29
8
14.1.6 掩模 ROM
由芯片制造厂商编程的一种ROM工艺,程序设计员将调 试好的程序发给ROM厂家,IC的生产厂家在制造ROM芯 片的同时,将用户程序一起烧写进去; 由于烧写过程非常复杂,所以只有大批量的投产(几十万 片)才会使用这种工艺; 芯片一旦制造出来,程序不能再改变。这种工艺的芯片是 与控制对象“对号入座”、其他产品是无法使用的。
1. 2. 3.
上述三个模块被集成在一个IC芯片中。因此NV-RAM的 价格是非常高的。
在芯片断点的情况下,RAM中数据可以保持十年之久。
13
2017/8/29
14.3 PIC18的存储器配置及 flash存储器
在PIC18中存储器有三种类型: SRAM。作为文件寄存器使用; flash ROM。作为用户程序、常数和常数表格存储; EEPROM。作为非易失行的数据存储器使用。 本节将探讨flash ROM和EEPROM的读写原理以及编程 方法。
2017/8/29
4
14.1.3 EPROM 和 UV-EPROM
EPROM为程序员提供了一种可多次擦除、编程的ROM; 一个EPROM芯片可擦除几千次,这为开发一个系统非常 重要,因为一个好的用户程序是要经过反复调试、不断改 进才能完成; 常用的EPROM是UV-EPROM,即使用紫外线的照射来擦 除芯片中的旧程序 ------ 光化学反映。照射时间一般为 15~30分钟(擦除次数越多、擦除时间就会变长)。; 因UV-EPROM擦除时间长、使用不方便而逐渐被淘汰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6、 键盘控制 LED 显示程序
要使用 SW2 和 SW3 两个按键,必须先将其对应的端口用下面的代码初始化为输入:
TRISBbits.TRISB0=1; //sw2 input pin TRISAbits.TRISA4=1; //sw3 input pin
然后通过下面的代码读取按键:
if(PORTAbits.RA4==0){ //开发板上已有硬件去抖动处理 //这里执行 SW3 按下时的动作
// Set b0 of LED is On // Enable Interrupt Priority bit,中断优先级位 // Timer2 设为高优先级,对应的中断向量地址地址为 0x08H // Enable High Priority Interrupt,允许高优先级中断
OpenTimer2 (TIMER_INT_ON&T2_PS_1_16 &T2_POST_1_10);
while(1);
// Loop Here!
}
#pragma code isrhighcode = 0x0008 void isr_high_direct(void) {
_asm goto isr_high _endasm } #pragma code
//伪指令告诉编译器中断函数的入口地址是 0x008h
TD7=0;
};
}
将顶部图标工具栏中的编译选项选择为 Debug,
,
再用 Project->Build All 来编译这个程序,Output 窗口应该显示编译成功。
连接硬件,将 App001 开发板和 ICD2 仿真器用 6 芯电缆连接起来,将 ICD2 和 PC
机用 USB 电缆连接起来,再为 App001 开发板上电。
Dir_Count=0; // Yes, set flag of right shift
Direct_LED=0x1;
}
}
else{
PORTD>>=1;
// LED right shift
Dir_Count++;
if (Dir_Count==7){
Dir_Count=0; Direct_LED=0x00; } } } } #pragma code //结束伪指令 该部分的实验要求为调试成功这里所列的程序,分析其工作流程,用 Debug 方式设置断点并结合单步 运行,观察程序运行的过程,引证其工作流程。
4、 编程点亮 LED
将下面的代码键入到 main.c 文件中:
#include <p18cxxx.h>
//包含 pic18 单片机的通用头文件,建立工程时
void main(void)
//指定了 pic18f452,编译器会自动去找 pic18f452.h
{
LATD=0x00;
//PORTD 输出 0
从 MPLAB 顶部菜单中的 Debugger 选项中选 Select Tool->Mplab ICD2,如果连接成
ቤተ መጻሕፍቲ ባይዱ
功,Output 窗口会提示连接成功,出错时会以红色字符显示出错信息。
选择 Debug->Program,将含有调试信息的程序烧写到 App001 开发板上的 PIC18F452
单片机中,如果烧写成功,则自动进入调试状态。在调试状态下可以通过工具栏上的调
//头文件包含 //函数声明 //全局变量声明 //主函数
{ TRISD=0x00;
// Set output port for LED driver,输出
PORTD=0b00000001; RCONbits.IPEN=1; IPR1bits.TMR2IP=1; INTCONbits.GIEH=1;
和寄存器的值。在这里我们用 单步执行,同时观察开发板上的 LED1 到 LED8 的亮
灭情况。在 Debugger 菜单中还有 Reset,Halt,Stop 等功能菜单项,可以控制程序的运行。
这种方式是调试运行方式,程序编译时,编译选项必须选择为
,编
译完成后,必须通过 Debugger->Program 菜单将程序烧写到单片机中才能运行。每修改 一次程序,都要重新编译,重新 Program,然后才能对修改后的程序进行调试。
2、 建立工程文件
运行 MPLAB IDE 程序,从顶部菜单中点击 Project→Project Wizard 下一步,Device 选择 PIC18F452 后再点击下一步, 开发工具 Active Toolsuite 选择 Microchip C18 Toolsuite 后在下面的 Toolsuite Contents 中选择 MPLAB C18 C Compiler, 同时将 Store tool location in project 的选项也选 上,点击下一步,为工程文件选择一个文件夹,然后输入工程文件名如 hello,然后点击下一步,新 工程项目没有文件要添加,点击下一步,然后点击完成。在弹出的项目窗口中点击保存按钮保存 工程文件。Tips:尽量不要使用中文作为路径和文件名,也不要在桌面上建立工程文件夹。
表示编译成功,至此,软件开发环境已经建立起来。
在 MCC18\h\p18f452.h 中定义了在 C18 种访问 PIC18F452 单片机的所有特殊功 能寄存器的变量名。MPLAB C18 C 编译器入门定义了 C18 针对 PIC 单片机开发的一 些增强特性。
3、 APP001 开发板实物图及原理图
} if(PORTBbits.RB0==0){
//这里执行 SW2 按下时的动作 }
这里要编写的程序是一个用键盘控制的 LED 显示程序,SW2 按下时执行第 6 节中 的显示程序 a),SW3 按下时执行显示程序 b),SW2 和 SW3 同时按下时,执行显示程 序 c)。
7、 定时器中断编程
参考程序如下:
试按钮来设置断点,单步运行程序
。我们在
LATD=0x00;这行代码上点击红色的按钮 B,这行代码前便出现了一个红色的 B,表示这
里是一个断点,点击运行图标 ,程序运行到断点时便停住,这时可以通过顶部菜单
中的 View->Watch 窗口来观察程序中的变量和单片机的寄存器值,通过工具栏上的单步 运行按钮可以控制程序一步一步地运行,每运行一步都可以通过 Watch 窗口来观察变量
直到 LED7 LED8 c) 偶数编号和奇数编号的 LED 交替闪烁 延 时 函 数 可 以 自 己 编 写 或 者 参 考 MPLAB C18 库 函 数 参 考 , 对 应 的 头 文 件 为 MCC18/h/delays.h。程序要求编译为 Release 模式,烧写到单片机中脱离仿真器运行。
//伪指令告诉编译器 isr_high 是一个中断函数 //编译器会处理寄存器保护和使用中断返回指令
{ PIR1bits.TMR2IF=0;
// Clear Timer2 interrupt Flag,清中断标志
if (Long_Count <= 12) Long_Count++;
// 8mS * 12 = 96mS
点击 File->new,在新文件窗口中输入如下内容: #include <p18cxxx.h> void main(void) {
printf(“hello,world!\n”); while(1); } 将此文件保存到工程文件目录中,然后 hello.mcp 列表中的 source file 选项上点 击右键,选择 Add Files 将 main.c 添加到工程文件中。 从顶部菜单的 Project 中选 Build All,如果在底部的 Output 窗口中出现如下信息: MPLINK 4.33, Linker Copyright (c) 2009 Microchip Technology Inc. Error - could not find file 'c018i.o'. Errors : 1 这个错误是由于 MPLAB 找不到 C18 的头文件、库文件和连接文件引起的,从 Projects 选 Build Options 再选 project,会弹出一个配置窗口,选中 Directories,从 Show directories for 选 项 列 表 中 依 次 将 Include Search Path, Library Search Path, Linker-Script Search Path 配置为 C:\MCC18\h, C:\MCC18\lib,C:\MCC18\bin\LKR。 再次点击,Project ->Build All, 如果 Output 窗口中出现:BUILD SUCCEEDED,
PIC 单片机原理与应用 – 实验指导书
1、 建立开发环境
Microchip 公司为 PIC18 单片机提供了 IDE 集成开发环境 MPLAB.exe 和 C 编译 器 MPLAB-C18.exe。本实验所涉及的软件和资料均可以从 网站 上下载到。
运行 MPLAB.exe 和 MPLAB-C18.exe 后,即可安装好软件开发环境,安装过程 所有的问题全部回答是。
else{
Long_Count=0;
// Time is 96mS, do the function
if (Direct_LED==0x00){ // Right or Left shift
PORTD<<=1;
// LED left shift
Dir_Count++;
if (Dir_Count==7){ // End of LED position?
#include <p18f452.h> #include <timers.h> #include <delays.h> void isr_high(void); volatile unsigned char Long_Count,Direct_LED ,Dir_Count ; void main(void)