pic单片机实验报告
PIC单片机课程设计报告

.目录一、课程设计目的 ............................................................................................................................. - 1 -二、设计题目及要求 ......................................................................................................................... - 1 -2.1 设计题目:.................................................................................................................................. - 1 - 2.2 功能实现:.................................................................................................................................. - 1 -2.3 设计要求:.................................................................................................................................. - 1 -三、设计原理说明 ............................................................................................................................. - 1 -3.1 时钟模块...................................................................................................................................... - 1 - 3.2 显示模块...................................................................................................................................... - 2 - 3.3 按键模块...................................................................................................................................... - 2 -3.4 温度采集模块.............................................................................................................................. - 2 -四、硬件原理图 ................................................................................................................................. - 2 -五、软件设计 ..................................................................................................................................... - 4 -六、设计总结 ................................................................................................................................... - 19 -一、课程设计目的本课程设计是在《PIC单片机原理及应用》及《单片机C语言编程》课程的基础上,通过硬件设计、软件编程及仿真调试的实践,进一步掌握PIC单片机的应用方法,熟练掌握PICC C语言程序的编写与调试,是毕业设计前的一次重要实践,为今后走上工作岗位打下坚实的单片机应用基础。
单片机实验报告

PIC单片机原理与应用实验报告学校:学院:班级:姓名:学号:指导教师:实验一I/O端口实验一、实验目的(1)掌握MPLAP IDE集成开发环境的基本操作。
(2)掌握单片机的I/O端口的设计方法。
(3)掌握在线调试器的使用方法。
(4)学会查阅相关数据手册。
二、实验仪器设备(1)PC机一台;(2)MPLAP IDE开发软件一套;(3)PICkit3在线调试器一套;(4)APP009实验板一块;三、实验要求(1)设计发光LED灯闪烁程序,下载调试,验证功能。
(2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。
(3)设计按按键加1计数程序,下载调试,验证功能。
四、实验步骤(1)连接在线调试器PICkit3、APP009实验板和计算机;(2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具;(3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电;(4)完成实现发光LED灯闪烁实验;程序代码:#include <p30f4011.h>void delay(void);int main(){while(1){TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出);TE0 =1; //RE0=1输出高电平+5V,亮灯delay(); //延时TE0 =0; //RE0=0输出低电平0V,灭灯delay(); //延时}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。
(5)完成实现流水灯或花样彩灯实验;程序代码:#include <p30f4011.h>void delay(void);int main(void){int i;int ledcode[6]={0x01,0x02, 0x04, 0x08, 0x10, 0x20};TRISE =0x00; //RE0-RE5配置为输出while(1){for (i=0;i<6;i++){LATE=ledcode[i]; //按状态循环点灯delay(); //延时}}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED按照设定的规律循环点亮和熄灭,通过改变数组ledcode的元素,可以方面地实现流水灯或花样彩灯的效果。
单片机实验报告--基于PIC单片机的电子密码锁

2016年小学期单片机设计实验报告题目:基于PIC单片机的电子密码锁班级:班内序号:实验组号:学生姓名:指导教师:基于PIC单片机的电子密码锁——xx班 xx实验摘要在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
设计本课题时构思的方案是用以PIC16F877为核心的单片机控制方案。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
本系统由16F877单片机系统(美国微芯Microchip 公司推出的高性能单片机)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改四位用户密码、输入提示、密码错误报警等功能。
本系统成本低廉,功能实用。
A b s t r a c tR e p l a c e t h e l o c k o n t h e p r e s e r v a t i o n o f t h e s a f e t y p r e c a u t i o n s i n t h e i r d a i l y l i f e a n d w o r k,h o u s i n g a n d d e p a r t m e n t,u n i t f i l e s,f i n a n c i a l s t a t e m e n t s,a n d s o m e p e r s o n a l i n f o r m a t i o n t o l o c k a p p r o a c h t o s o l v e.I f t h e u s e o f t r a d i t i o n a l m e c h a n i c a l k e y i n t h e l o c k,p e o p l e o f t e n n e e d t o c a r r y m u l t i p l e k e y s,u s e v e r y i n c o n v e n i e n t, a n d t h e l o s s o f k e y s e c u r i t y t h a t i s g r e a t l y r e d u c e d.A l o n g w i t h t h e s c i e n c e a n d t e c h n o l o g y u n c e a s i n g d e v e l o p m e n t,p e o p l e d a i l y l i f e s a f e t y i n s u r a n c e d e v i c e r e q u i r e m e n t s m o r e a n d m o r e h i g h.I n o r d e r t o m e e t t h e p e o p l e o n t h e r e q u i r e m e n t s a n d i n c r e a s e t h e s e c u r i t y o f p a s s w o r d k e y p a s s w o r d l o c k s h i p p e d.P a s s w o r d l o c k i s s a f e,l o w c o s t a n d p o w e r c o n s u m p t i o n i s l o w,e a s y t o o p e r a t e a n d W h e n t h e a d v e n t o f t h e s h o r t c o m i n g s o f l e s s t y p e.I n t h e s e c u r i t y t e c h n o l o g y t o g u a r d a g a i n s t,w i t h a n t i-t h e f t a l a r m f u n c t i o n e l e c t r o n i c p a s s w o r d l o c k g r a d u a l l y r e p l a c e t h e t r a d i t i o n a l m e c h a n i c a l c i p h e r l o c k,o v e r c o m e t h e m e c h a n i c a l p a s s w o r d l o c k,s a f e t y p e r f o r m a n c e i s p o o r,t h e p a s s w o r d l o c k b o t h i n t e c h n o l o g y a n d i n p e r f o r m a n c e a r e g r e a t l y i m p r o v e d s t e p.W i t h l a r g e s c a l e i n t e g r a t e d c i r c u i t t e c h n o l o g y d e v e l o p m e n t, i n p a r t i c u l a r,i s a s i n g l e c h i p,t h e m i c r o p r o c e s s o r i n t e l l i g e n t p a s s w o r d l o c k,w h i c h i s i n a d d i t i o n t o t h e e l e c t r o n i c p a s s w o r d l o c k f u n c t i o n,b u t a l s o i n t r o d u c e d t h e i n t e l l i g e n t m a n a g e m e n t,e x p e r t a n a l y s i s s y s t e m a n d o t h e r f u n c t i o n s,w h i c h e n a b l e p a s s w o r d l o c k h a s a h i g h s a f e t y a n d r e l i a b i l i t y,i s a p p l i e d m o r e a n d m o r e w i d e l y. T h i s d e s i g n t o p i c c o n c e p t i o n s c h e m e I s u s e d t o P I C16F877a s t h e c o r e o f t h e m i c r o c o n t r o l l e r c o n t r o l p r o g r a m.A t p r e s e n t,m o s t o f t h e e l e c t r o n i c p a s s w o r d l o c k i s b a s e d o n S C M t e c h n o l o g y, w i t h t h e s i n g l e c h i p m i c r o c o m p u t e r a s t h e m a i n d e v i c e,t h e e n c o d e r a n d d e c o d e r a r eg e n e r a t e d a s t h e s o f t w a r e.T h e f u n c t i o n s o f t h i s s y s t e m b y16F877m i c r o c o n t r o l l e r s y s t e m(A m e r i c a n m i c r o c h i p m i c r o c h i p c o m p a n y l a u n c h e d h i g h p e r f o r m a n c e m i c r o c o n t r o l l e r),4*4m a t r i x k e y b o a r d,L C D1602d i s p l a y a n d a l a r m s y s t e m,h a s s e t u p,m o d i f y t h e f o u r u s e r p a s s w o r d, i n p u t p r o m p t,w r o n g p a s s w o r d a l a r m e t c..T h e s y s t e m i n t o t h e l o w,f u n c t i o n a l a n d p r a c t i c a l.关键字单片机——microcontroller 密码锁——Password lockLCD1602——LCD1602 4*4矩阵键盘——4*4 matrix keyboard一.实验论证与比较1.实验总体方案的确定本系统电子密码锁的设计主要由4部分组成:PIC16F877单片机,4×4 矩阵键盘接口电路,LCD1602液晶显示以及LED提示灯。
北邮小学期PIC单片机-蓝牙电子琴-实验报告

2013年小学期PIC单片机实验报告题目:蓝牙电子琴组号:班级:学号:姓名:老师:目录一摘要二论证与比较三原理1 蓝牙控制原理…………………………………………………..2 发音原理………………………………………………………3 中断控制………………………………………………………四硬件1 框图…………………………………………………………………………………2 原理图…………………………………………………………………………………五软件1 流程图………………………………………………………………………………2 程序…………………………………………………………………………………六实验总结七参考文献一摘要Microcontroller is known as the single chip microcomputer and single chip microcomputer. It is the central processing unit (CPU), random access memory (RAM), read-only memory (ROM), input/output port (I/O), etc. The main function of computer components are integrated on a chip microcomputer. Experiments using PIC16F877 single-chip microcomputer with a serial communication port (USART port), through the USART port with bluetooth module connection, you can through the mobile phone bluetooth bluetooth device to control the single-chip computer, also can realize the serial communication with other modules. PIC16F877 single chip microcomputer to control the corresponding port produce a certain frequency of square wave, amplification and then sent to the speakers can emit a certain frequency of sound. Interrupt to use bluetooth to real-time control MCU, thus realize the electric .单片机被称为单片微电脑或单片微型计算机。
北京理工大学PIC单片机实验一PIC单片机集成开发环境MPLAB IDE的使用

实验一 PIC单片机集成开发环境MPLAB IDE的使用一、实验目的:1、学习使用PIC单片机集成开发环境MPLAB IDE2、学习使用在线调试和编程器MPLAB ICD2二、实验方法:1、通过运行例程来初步认识单片机的开发环境;2、利用在线调试和编程器MPLAB ICD2在集成开发环境MPLAB IDE中建立工程文件夹以及程序文本的编辑、编译连接、下载和调试,实现一组由PIC18F452控制的LED灯的点亮过程。
三.程序设计内容:1、通过改变例程1,训练对PIC18F452的编程能力。
2、参照电路板图,将例程1中的输出口作适当改变,使计数结果能够用电路板上的LED 显示出来。
四、实验步骤:1、编辑源文件并将源文件存于mcc18目录下建立的文件夹中#include <p18f452.h> /*引用p18f452的库函数*/#pragma config WDT = OFF/*关闭看门狗(watchdog timer)*/#pragma config OSC = HS/*振荡器工作模式为高速晶体/谐振器*/#pragma config LVP = OFF/*关闭低电压ICSP编程*/int counter;void main (void){counter = 1;TRISB = 0; /* configure PORTB for output */while (counter <= 15){PORTB = counter; /* display value of 'counter'on the LEDs */counter++;}}2、选择目标处理器Device:PIC18F4523、建立项目(项目名与源文件同名)4、选择项目设置选择语言工具套件:MPLAB c18c Toolsuite (mcc18.exe), 选择MPLAB C18 安装目录中头文件和函数库子目录的路径。
实验4 PIC单片机对外设的控制

实验四 PIC单片机对外设的控制1.实验目的1)学习继电器开关及步进电机的控制方法;2)学习如何使用红外遥控器对外设进行控制。
2. 实验要求1) 掌握MPLAB IDE软件的使用;2) 掌握GL7-877A单片机开发板的功能及编程器软件的使用;3) 掌握PIC单片机程序设计基本方法。
3.实验设备1)GL7-877A单片机开发板2)IBMPC/XT微计算机4.实验内容一) P1键控制继电器开关1)实验内容通过P1 键控制继电器的启停动作;2)实验原理根据判断RC口上电平变化,判断出按键P1是否被按下,如按下,将继电器状态改变为相反;3)开发板上硬件连线使用2条8P杜邦线,跨接于CN8-CN20和CN10-CN19间,如下图所示:4)参考程序#include <pic.h> //调用PIC16F87XA单片机的头文件__CONFIG(HS&WDTDIS&LVPDIS); // 配置字#define P1 RC0 //定义独立按键P1为RC0#define P2 RC1 //定义独立按键P2为RC1#define P3 RC2 //定义独立按键P3为RC2#define P4 RC3 //定义独立按键P4为RC3#define P5 RC4 //定义独立按键P5为RC4#define P6 RC5 //定义独立按键P6为RC5#define P7 RC6 //定义独立按键P7为RC6#define P8 RC7 //定义独立按键P8为RC7#define relay RD0 //继电器unsigned char keycon;bit keybit;void main(void) //主函数{TRISC=0B11111111; //初始化RC7-RC0的输入输出方向TRISD=0B11111110; //初始化RD7-RD0的输入输出方向PORTC=0B00000000; //初始化RC7-RC0的数值PORTD=0B00000000; //初始化RD7-RD0的数值while(1) //死循环,单片机初始化后,将一直运行这个死循环{if(PORTC==0XFF){if(++keycon>200) //消抖,keybit同时也起到微分的作用,即按下一次键无论多长时间,都只处理一次{keycon=0;keybit=1;}}else{if(keybit==1){keybit=0;if(P1==0) //如果是P1键按下,则进行处理{relay=!relay; //继电器端口取反,以使继电器改变状态}}}}}思考题1:结合前面实验的内容,增加红外遥控器控制继电器的功能,使按下遥控器的“+”键继电器开关闭合、按下遥控器的“-”键继电器开关断开。
pic单片机实验报告

pic单片机实验报告篇一:PIC单片机实验报告实验一循环点亮LED灯一、实验内容:将RE0-RE5配置为输出,连接6个LED灯;编写程序,调试并运行,下载到实验板上,实现循环点亮。
二、实验目的:学习PIC单片机I/O端口功能及特点,了解I/O端口引脚及连线,控制寄存器。
在开发板上实现循环点亮LED灯。
三、实验要求1. 了解掌握PIC单片机的结构和功能。
2. 应熟练掌握MPLAB开发环境的使用方法。
3. 熟练掌握PIC单片机的程序编写方法。
4. 掌握MPLAB IDE硬件调试的技巧。
四、实验准备:1、I/O引脚及连线:I/O端口特点:1、所有I/O 输入端口都是施密特触发器输入,以便增强抗干扰性。
2、外设复用:所有的器件引脚(除VDD、VSS、MCLR 和OSC1/CLKI之外),均为外设与I/O端口所共用。
3、如果外设使能,并且外设正在使用相关引脚时,该引脚将不再作为通用I/O 引脚使用。
4、优先级:I/O 与多个外设复用时I/O 引脚的名称定义了与该引脚相关的各个功能的优先级,如:I/O 引脚与两个外设复用(“外设A”和“外设B”)外设A 对引脚的控制具有最高优先权,若外设A 和外设B 同时使能,外设A将控制I/O 引脚5、电平变化通知引脚:电平变化通知引脚(CN)内接输入电平变化通知模块,使得dsPIC30F器件能够向处理器发出中断请求,以响应所选输入引脚上的状态变化。
I/O端口控制寄存器:所有的端口引脚,都有三个与端口引脚的操作直接相关的寄存器。
① TRISx:数据方向寄存器。
决定各个引脚是输入引脚还是输出引脚。
–若某个I/O 引脚的TRIS 位为“1”,则该引脚是输入引脚。
–某个I/O 引脚的TRIS 位为“0”,则该引脚被配置为输出引脚。
–复位以后,所有端口引脚被定义为输入。
② PORTx:I/O端口寄存器。
访问的是I/O引脚上的数据。
读的是端口引脚值;写端口引脚,写的是端口数据锁存器(LATx )。
《PIC单片机技术》实验报告模板20110413

PIC单片机技术上机实验报告实验项目:实验姓名:黄辉专业电子科学与技术班级:电科1002学号:3100206229同组名单:指导教师:叶轻舟吴忠强学期:2012 学年 2 学期电子信息与电气工程系通信教研室一、实验名称×××二、实验材料××××(实验所需的设备或者软件)三、实验目的1.××××2.××××3.4.四、实验要求××××××××五、理论原理×××××(本次实验所用到的书上的理论知识点的概要说明。
)六、实验内容步骤1.×××××××××××××××××××××××××××××××××××××××××2.×××××××××××3.×××××七、实验程序附软件流程、程序源代码。
(程序要注释)八、实验结果附:电路原理图、Proteus仿真的结果图片等。
并做文字说明。
九、分析总结××××××××(实验过程遇到的问题、思考及解决方法;此次实验的功能模块在实际应用的思考、本次实验的心得体会等)。
pic课设实验报告

==《PIC单片机》课程设计学生姓名:学号:专业班级:指导教师:二○○12年05 月04 日目录(二号字体)1 设计方案,目的,内容. (1)2.设计的硬件及说明 (1)3.设计的软件及说明 (5)4 实验结果 (6)5小结 (7)一课程设计的目的《PIC 单片机课程设计》是电气工程及其自动化专业及相近专业的一门重要的专业实践课,本课程在《PIC 单片机》课程的基础上,通过硬件设计与软件编程与调试的实践,进一步掌握PIC 单片机的应用方法,熟练PIC 单片机的C 程序的编写与调试,是毕业设计前的一次重要的实践,为今后走上工作岗位打下坚实的单片机应用基础。
二设计内容1 Proteus 线路图绘制根据所设计的线路图,绘制与之一致的,能用于仿真的Proteus 线路图。
要求所绘的线路图美观、紧凑,参数要与课设一致。
2、软件编制与调试根据所设计的线路图制相应的单片机C 程序,要求所制的程序符合C 语言格式并加上注解。
每编一段即进行译,有错及时修改,并先在Proteus 上仿真,基本正确后再用PICkit3 在线调试,最后应脱机运行。
三设计方案1我做的是数字钟及数字温度计:包括按键.LCD.蜂鸣器时钟芯片DS1307和温度传感器TC74。
2功能;此设计可以感测环境的温度,显示当前的时间,及闹钟。
温度与时间都显示在LCD显示屏上。
四硬件设计及说明1复位按键此图用于复位单片机,使其从新执行相应的程序。
12 振荡方式此图是LP.XT.HS的晶体振荡/陶瓷振荡器接线方式,这种方式接线更准。
3时钟芯片DS1307及附属接线时钟芯片DS1307用于产生时间,它提供了秒、分、时、日、年、和星期等数据,能算只瑞年2100年,时钟的晶振是典型的32.768Hz。
(1)其引脚作用如下:2(2)DS1307的读写如下;1写DS1307 的步骤如下:a) 发送启始位;b) 发送DS1307 的7位地址+0 (写),即0b11010000;c) 发送要写入DS1307 的地址,地址见图16,如要修改分,此值为1;d) 发送要写入DS1307 的数,如要把分修改为十进制数37,则此数为0x37;e) 发送停止位;2读DS1307 的步骤如下:a) 发送启始位;b) 发送DS1307 的7位地址+0 (写),即0b11010000;c) 发送要读的DS1307 的起始地址,如要从秒读起,为0;d) 发送停止位;e) 发送重新开始位;f) 发送DS1307 的7位地址+1 (读),即0b11010001;g) 发送读使能位,接收一个数据,单片机发送应答位;h) 发送读使能,接收下一个数据(地址会自动+1),单片机发送应答位,直到读数完成,接收最后一个数时单片机不发送应答位;i) 发送停止位;注意在DS1307仿真的时候七位地址为0b1001101 而实际为0b1001000 ;(3)功能是;提供时间通过pic16F877送入LCD中显示。
pic单片机实验报告

pic单片机实验报告
《pic单片机实验报告》
实验目的:通过对pic单片机的实验,掌握其基本原理和应用技能,提高对单
片机的理解和应用能力。
实验内容:
1. 初步了解pic单片机的基本结构和工作原理;
2. 学习pic单片机的编程语言和编程工具;
3. 进行简单的pic单片机实验,如LED灯控制、数码管显示等;
4. 分析实验结果,总结经验和教训。
实验步骤:
1. 阅读pic单片机的相关资料,了解其基本原理和应用领域;
2. 学习pic单片机的编程语言和编程工具,如C语言和MPLAB X IDE;
3. 进行LED灯控制实验,编写简单的程序控制LED的亮灭;
4. 进行数码管显示实验,编写程序实现数字的显示和滚动效果;
5. 分析实验结果,总结经验和教训,找出存在的问题并改进。
实验结果:
1. 成功掌握了pic单片机的基本原理和编程技能;
2. 实现了LED灯控制和数码管显示的实验,并取得了良好的效果;
3. 发现了一些问题,如程序逻辑错误和电路连接不良,及时改进并取得了成功。
实验总结:
通过本次实验,我对pic单片机有了更深入的了解,掌握了其基本原理和编程
技能,提高了对单片机的应用能力。
同时,也发现了一些问题并及时改进,取
得了良好的实验效果。
希望能在今后的学习和工作中,更好地应用pic单片机,为科研和工程项目做出更大的贡献。
PIC单片机报告

PIC单片机报告第一篇:PIC单片机报告PIC单片机实验报告一、定时器的使用(1)实验目的:通过学习和实验理解PIC单片机定时器的内部工作原理,学会定时器初始化配置编程,并能利用实验板对定时器有简单的应用。
(2)实验器材:16位PIC单片机学习板。
(3)实验过程:1、PIC单片机定时器概述:根据具体器件,dsPIC30F 器件系列提供了几个16 位定时器。
这些定时器被指定为Timer1、Timer2、Timer3 ……等。
可分为三种类型:A类型时基、B类型时基和C类型时基。
A类型时基:在大多数dsPIC30F 器件上,至少有一个A 类型定时器。
通常Timer1 是A 类型定时器。
A 类型定时器与其他类型的定时器相比,有下列独特的功能:可以使用器件的低功耗32 kHz 振荡器作为时钟源工作可以在使用外部时钟源的异步模式下工作A 类型定时器独特的功能使它可以用于实时时钟应用(Real-Time Clock,RTC)。
16 位定时器模式:在16 位定时器模式下,定时器在每个指令周期递增,直到与预先装入周期寄存器PR1 中的值匹配,然后复位至0,继续计数。
当CPU 进入空闲模式时,定时器将停止递增,除非TSIDL(T1CON<13>)位 = 0。
如果TSIDL = 1,定时器模块逻辑将继续递增,直到CPU 空闲模式终止。
位同步计数器模式:在16 位同步计数器模式下,定时器将在外部时钟信号的上升沿递增,外部时钟信号与内部相位时钟同步。
定时器计数,直到等于PR1 中预先装入的值,然后复位至0,继续计数。
当CPU 进入空闲模式时,同上。
位异步计数器模式:在16 位异步计数器模式下,定时器在外部时钟信号的上升沿递增。
定时器计数,直到等于PR1 中预先装入的值,然后复位至0,继续计数。
当定时器配置为异步工作模式时,CPU 进入空闲模式,如果TSIDL = 1,则定时器将停止递增。
B类型时基:在大多数dsPIC30F 器件上,如果存在Timer2 和Timer4,它们是B 类型定时器。
PIC实验报告(中断、定时、PWM、AD程序代码)

实验一:定时器1. 实验目的:利用定时器0,定时器1,定时2实现4盏流水灯2. 实验内容 a,程序框图定时器0:/************************************************** 计算公式:(256-X)*K*T=25 000us,定时器延时25ms,预分频为K 为64,利用软件编程实现1s 脉冲输出,RB0作为输出 ************************************************/ #include<pic.h>__CONFIG(0x20F1); __CONFIG(0x3F71); #define T0_25MS 61 char a=0;void interrupt ISR() {if(T0IF==1)定时器1定时500MS定时器0定时50MS 、定时器1定时器2定时50MS时间到? 时间到? 时间到?a 的值加1 led 灯循环左移一位 a 的值加1a=20?a=10?a=0,led 灯循环左移一位 a=0,led 灯循环左移一位开始开始开始T0IF=0;TMR0=T0_25MS;a++;if(a==20) //输出1s脉冲{PORTD=(PORTD<<1);a=0;if(PORTD==0x10)PORTD=0x01;}}}void timer0init(){OPTION=0b10000110; //,预分频器给TMR0,TMR0预分频系数为1:64 INTCON=0b10100000; //GIE,PEIE置1}void main(){timer0init();TRISD=0;PORTD=0x01;while(1);}定时器1:/**************************************************计算公式:(65536-X)*K*T=500 000us,定时器延时500ms,预分频为8,利用软件编程实现1s脉冲输出,RB0作为输出************************************************/#include<pic.h>__CONFIG(0x20F1);__CONFIG(0x3F71);#define T1_500MS 3036void interrupt ISR(){if(TMR1IF==1){TMR1IF=0;TMR1H=T1_500MS>>8;TMR1L=T1_500MS;PORTD=(PORTD<<1);if(PORTD==0x10)PORTD=0x01;}void timer1init(){TMR1H=T1_500MS>>8;TMR1L=T1_500MS;TMR1IE=1;INTCON=0b11000000; //GIE,PEIE置1T1CON=0b00110001;; //TMR1预分频系数为1:8}void main(){timer1init();TRISD=0;PORTD=0x01;while(1);}定时器2:/**************************************************计算公式:(PR2+1)*K1*K2*T=50 000us,定时器延时50ms,预分频为K1为16,后分频器K2为15利用软件编程实现1s脉冲输出,RB0作为输出************************************************/#include<pic.h>__CONFIG(0x20F1);__CONFIG(0x3F71);#define LED RB0char a=0;void interrupt ISR(){if(TMR2IF==1){TMR2IF=0;a++;if(a==10) //1秒到了{PORTD=(PORTD<<1);a=0;if(PORTD==0x10)PORTD=0x01;}}}void timer2init()TMR2IE=1;PR2=207;INTCON=0b11000000; //GIE,PEIE置1T2CON=0B001110111; //TMR2预分频系数为1:16,后分频器为1:15 }void main(){timer2init();TRISD=0;PORTD=0x01;while(1);}实验二:RB0中断1.实验目的:a.利用外部中断RB0实现流水灯左移2.程序框图:开始RB0按下?进入中断,led灯循环左移一位程序:#include<pic.h>__CONFIG(0x20F1);__CONFIG(0x3f71);void delaynms(unsigned int n);void interrupt ISR(void);void main(){OPTION=0b00000000;ANS12=0;WPUB0=1;TRISB=0b00000001;INTCON=0b10010000;TRISD=0b00000000;PORTD=0x01;while(1);}void interrupt ISR(void){if(INTF==1){delaynms(30);INTF=0;PORTD=(PORTD<<1);if(PORTD==0x10)PORTD=0x01;}}void delaynms(unsigned int n){unsigned int j;char k;for(j=0;j<n;j++)for(k=246;k>0;k--)NOP();}实验三:AD转换1.实验目的:利用PIC内部AD转换器,AN0通道口采集模拟数据,通过LCD1602显示结果2.程序框图:程序:#include<pic.h>__CONFIG(0x3F39); __CONFIG(0x20F1); #define RS RD4 #define RW RD5 #define E RD6#define uint unsigned int char QW,BW,SW,GW;//8段共阳LED 显示代码,0位-7位分别控制a -h 段const char LED_CODE[]={0b11000000, 0b11111001,0b10100100,0b10110000,0b10011001, 0b10010010,0b10000010,0b11111000,0b10000000,0b10010000,0b01111111}; uint AD_SUB(char k);void init1602(); //1602初始化 void write_com(char com);//写指令 void write_date(char data);//写数据 void delaynms(unsigned int n); void spiinit();void SPI_WRITE(char ); void displayled(); void display1602(); void BCD(uint R1); void main() {uint y;TRISA=0b00000001;选择AD 通道启动ADGODON E=0?数据送1602显示初始化数据送数码管显示 开始ANSEL=0b11111111; //AN0~AN7为模拟输入,上电默认,可不设TRISD=0; //D口设置为输出PORTD=0;spiinit();init1602();while(1){y=AD_SUB(0); //0表示第0个通道BCD(y);displayled();display1602();delaynms(500); //此不不能忽略}}void BCD(uint R1){QW=0;BW=0;SW=0;GW=0;while(R1>=1000){R1-=1000;QW++;}while(R1>=100){R1-=100;BW++;}while(R1>=10){R1-=10;SW++;}GW=R1;}void displayled(){SPI_WRITE(GW); //先发个位SPI_WRITE(SW); //发十位SPI_WRITE(BW); //发百位SPI_WRITE(10); //发小数点SPI_WRITE(QW); //发千位}void display1602(){write_com(0x80);write_date(0x30+QW);write_date(0x2e); //小数点write_date(0x30+BW);write_date(0x30+SW);write_date(0x30+GW);write_date(0x56); //"V"}void SPI_WRITE(char b){char BUF;BUF=LED_CODE[b];SSPBUF=BUF; //发出数据while(BF==0);BUF=SSPBUF;}void spiinit(){TRISC=0b00010000;SSPEN=1;CKP=1;SSPM3=0;SSPM2=0;SSPM1=0;SSPM0=1;SMP=1;CKE=0;}uint AD_SUB(char k){char i;uint temp;float x;ADCON0=0b01000001; //TAD=8TOSC,ADFM=1; //设置成右对齐ADCON0|=(k<<4);for(i=1;i<5;i++)NOP(); //打开AD通道后延时20us左右GODONE=1; //开始AD转换while(GODONE==1); //等待转换完成ADIF=0;temp=ADRESH<<8;temp|=ADRESL;x=temp/1023.0*5.0;temp=x*1000;return(temp);}void init1602(){delaynms(20); //延时时间大于15mswrite_com(0x03);delaynms(5);write_com(0x03);delaynms(5);write_com(0x03);delaynms(5);write_com(0x02); //归HOME位,此不不可少delaynms(5);write_com(0x28); //工作方式设置,4位数据线,2行字符,5*7字体write_com(0x0c); //显示开关设置,画面开,光标消失,禁止闪烁write_com(0x06); //输入方式设置,AC为加一计数器write_com(0x01); //清屏write_com(0x80); //开始显示位置delaynms(2);}void write_com(char com){RS=0; //写指令RW=0;PORTD&=0xf0; //低四位清0E=1; //有效发送PORTD|=((com>>4)&0x0f);//先发高四位delaynms(5);E=0;PORTD&=0xf0;E=1;PORTD|=(com&0x0f);//再发低四位delaynms(5);E=0;}void write_date(char data){RS=1; //写数据RW=0;PORTD&=0xf0;E=1;PORTD|=((data>>4)&0x0f);//先发高四位delaynms(5);E=0;PORTD&=0xf0;E=1;PORTD|=(data&0x0f); //再发低四位delaynms(5);E=0;RS=0;}void delaynms(unsigned int n){unsigned int j;char k;for(j=0;j<n;j++)for(k=246;k>0;k--)NOP();}实验四:PWM1.实验目的:通过PIC单片机输出PWM不同占空比脉冲波形2.程序流程:程序:#include<pic.h>__CONFIG(0x3f3a);char a;void CSH();void interrupt ISR(void);void delaynms(unsigned int n); void main(){CSH();while(1){if(a==0)开始初始化占空比为0.1RB0是否按下进入中断,a加1a=1,则输出占空比0.1 a=2,则输出占空比0.3a=3,则输出占空比0.6a=4,则输出占空比0.9a=5,则a清0,占空比为0.1CSH();}}void CSH(){TRISC2=0;TRISD=0;PR2=249;CCPR1L=0x32;CCP1CON=0x0c;T2CON=0x05;OPTION=0b00000000;ANS12=0;WPUB0=1;TRISB=0b00000001;INTCON=0b10010000;}void interrupt ISR(void){if(INTF==1){delaynms(30);if(RB0==0){INTF=0;a++;switch(a){case 1:CCPR1L=0x19;PR2=249;CCP1CON=0x0c;T2CON=0x05;break; //占空比0.1 case 2:CCPR1L=0x4b;PR2=249;CCP1CON=0x0c;T2CON=0x05;break; //占空比0.3 case 3:CCPR1L=0x96;PR2=249;CCP1CON=0x0c;T2CON=0x05;break; //占空比0.6 case 4:CCPR1L=0xe1;PR2=249;CCP1CON=0x0c;T2CON=0x05;break;// 占空比0.9 case5:a=0;break;}}}}void delaynms(unsigned int n){unsigned int j;char k;for(j=0;j<n;j++)for(k=246;k>0;k--)NOP();}。
pic实验报告正文

实验一:学习使用MPLAB IDE开发工具一、实验目的●实验一的主要目的是熟悉MPLAB开发环境。
用C语言编写简单源程序,在MPLAB开发环境中建立/加入工程,并对工程进行编译链接。
●在实验过程中学习调试技巧。
在MPLAB开发环境学习利用单步执行、执行、断点设置、查看存储单元等手段对程序进行调试。
二、实验要求●应熟练掌握MPLAB开发环境的使用方法。
●掌握C语言编写程序的规范要求。
●熟练掌握工程建立和编译方法。
●学会在调试环境中利用多种手段执行程序并进行调试。
三、实验内容练习一:两数相加的简单C 程序1)函数调用2)多个文件练习二:泡泡排序程序1)熟练掌握工程建立和编译调试方法2)修改程序,算法采用函数调用方式3)修改程序,用多个文件分别完成数据输入、算法四、实验程序练习一:两数相加的简单C 程序#include <p30f4011.h>unsigned int Add(unsigned int a, unsigned int b); /*函数定义*/ unsignedint x, y, z;Intmain(void){x = 2;y = 5;z = Add(x,y);return 0;}unsigned int Add(unsigned int a, unsigned int b) /*函数调用*/ {return(a+b);}文件1 /* ex1.c */#include <p30f4011.h>int main(void);unsignedint Add(unsigned int a, unsigned int b);unsignedint x, y, z;int main(void){x = 2;y = 5;z = Add(x,y);return 0;}文件2 /* add.c */#include <p30f4011.h>unsignedint Add(unsigned int a, unsigned int b){return(a+b);}练习二:泡泡排序程序#include "p30f4011.h"#define N 4int main(void){ inti,j,change;int R[4]={38,16,6,12};for(i=1;i<N;i++){ for(j=N-1;j>=i;j--){ if(R[j]<R[j-1]){ change=R[j];R[j]=R[j-1];R[j-1]=change;}}}return 0;}实验二、I/O端口实验一、实验目的实验的主要目的是进一步了解掌握PIC单片机I/O端口的结构和主要功能,对I/O各类端口用C语言编写几种常用操作程序。
pic单片机实验报告

pic单片机实验报告PIC单片机实验报告引言:PIC单片机是一种非常常见的嵌入式系统开发工具,被广泛应用于电子产品的设计与制造过程中。
本实验报告将介绍我对PIC单片机的实验研究,并分享实验过程中的收获和心得体会。
实验一:LED灯的控制在本实验中,我使用PIC单片机来控制一组LED灯的亮灭。
通过编程,我成功实现了按键控制LED灯的开关,以及通过定时器实现LED灯的闪烁效果。
这个实验让我初步了解了PIC单片机的编程方法和基本原理。
实验二:温度传感器的应用在这个实验中,我将PIC单片机与温度传感器连接,并通过编程实现了温度的实时监测和显示。
通过这个实验,我深入了解了模拟信号的采集和数字信号的处理过程,并学会了如何使用PIC单片机进行数据的读取和处理。
实验三:蜂鸣器的控制本实验中,我使用PIC单片机控制了一个蜂鸣器的发声。
通过编程,我实现了不同频率的声音输出,并且可以通过按键控制声音的开关。
这个实验让我了解了如何通过PIC单片机来控制外部设备,并且学会了如何利用定时器来产生不同频率的方波信号。
实验四:液晶显示屏的应用在这个实验中,我将PIC单片机与液晶显示屏连接,并通过编程实现了文字和图形的显示。
通过这个实验,我学会了如何使用PIC单片机来控制液晶显示屏,并且了解了液晶显示屏的基本原理和工作方式。
实验五:无线通信模块的应用在本实验中,我将PIC单片机与无线通信模块连接,并通过编程实现了两个PIC 单片机之间的无线数据传输。
通过这个实验,我了解了无线通信模块的基本原理和工作方式,并学会了如何使用PIC单片机进行无线通信的应用。
结论:通过对PIC单片机的实验研究,我深入了解了PIC单片机的工作原理和应用方法。
通过编程和实践,我成功实现了LED灯的控制、温度传感器的应用、蜂鸣器的控制、液晶显示屏的应用以及无线通信模块的应用。
这些实验不仅让我掌握了PIC单片机的基本编程技巧和应用方法,还培养了我对嵌入式系统开发的兴趣和能力。
PIC实验报告

一、 实验目的 1、 学会使用 pic 单片机专用软件 MAPLAB IDE,如新建工程、链接在线 调试器 ICD2、文本文件编辑器、汇编编译器、软件仿真调试器等。 2、 简单 C 程序的编写、编译、链接、调试、仿真、烧写等练习,熟悉 C 程序编写过程,为后续学习奠定坚实基础。
二、 实验器材 1、计算Байду номын сангаас一台
⑴ 固定入口式(中断服务程序的首地址固定,直接将此
规定地址送给 PC) ⑵ 矢量式。
4、 学习什么是中断服务 中断服务子程序是由用户根据自己的需要编制的,编制
时要注意如下问题:
3、 掌握 I/O 端口控制寄存器 所有的端口引脚,都有三个与端口引脚的操作直接相关的寄存器。 TRISx:数据方向寄存器。决定各个引脚是输入引脚还是输出引脚。 若某个 I/O 引脚的 TRIS 位为“1”,则该引脚是输入引脚。 某个 I/O 引脚的 TRIS 位为“0”,则该引脚被配置为输出引脚。
(2)选择 Debugger>MPLAB ICD2 Setup Wizard 安装 ICD2
(3)对 ICD2 设置:选择 Debugger>Setting
(4)对目标板配置:选择 Configure>Configure Bits
6、 上机实验代码
#include <p30f4011.h>/*这个头文件提供了该器件的所有特殊功能寄存器的定义*/
led = 0x01; PORTE =led; } return 0; }
实验三:中断
一、 实验目的
1、 学习什么是中断 2、 学习什么是中断请求 3、 学习什么是中断响应 4、 学习什么是中断服务 5、 了解中断处理原则 6、 了解中断优先级 7、 了解中断控制和状态寄存器 二、 实验器材
实验报告2

实验报告PIC单片机原理、开发方法及实践云南大学滇池学院理工学院电子信息工程系陈一凡20112121006PIC的实验程序基于MAPLAB的程序设计一·实验目的简述:学会用汇编语言控制单片机完成预定的算法,实现对内部各模块的功能,掌握好其指令系统,实现对内部弄块的控制和I/O操作。
基于MPLAB IDE,对PIC系列单片机进行源程序文档的创建、编辑和汇编,以至实现目标程序的模拟运行。
二·实验要求:1.一个16位加法程序,实现X+Y,结果存result;2.将20H单元的高低四位分别转换为ASCII码,存储在LED1和LED2单元;3.将20H单元的8bit二进制数转换为三位BCD码存储在B1,B2,B3单元;三·实验原理简述:应用PIC单片机指令集中的绝大部分指令如:数据传送操作、加减法操作、逻辑操作、移位操作等等都是能够在单个指令周期中完成的特定操作,而这些单一的指令就是实现复杂的计算和控制任务的基本。
将若干条指令按照一定的规则和要求排列组合在一起,就构成了可以控制的复杂的,能实现一定功能的程序。
四·实验步骤:1.针对问题一:一个16位加法程序,实现X+Y,结果存result;实验思路:将x,y分别存放在目标寄存器中,对x,y进行加法运算,并注意其进位位。
实验程序:LIST P=16F877AINCLUDE "P16F877A.INC"x EQU 0x20y EQU 0x22z EQU 0x24TEST NOP;空操作GOTO START;汇编开始ORG 004h;汇编起始点为004h;START CLRF z;将z清零;CLRF z+1;将z+1清零;CLRF z+2;将z+2清零;MOVLW 0F0H;将立即数0F0H送到w;MOVWF x;将W的内容传送至x;MOVLW 0F0H;将立即数0F0H送到w;MOVWF x+1;将W的内容传送至x+1;MOVLW 11H;将立即数11H送到w;MOVWF y;将W的内容传送至y;MOVLW 11H;将立即数11H送到w;MOVWF y+1;将W的内容传送至y+1;MOVF x,W;将x的内容送到目标寄存器;ADDWF y,W;w和y相加;BTFSC STATUS,C;检测STATUS中的进位位,为0则跳过;INCF z+1,F;z+1递增1;MOVWF z;将W的内容传送至z;MOVF x+1,W;将x+1的内容送到目标寄存器;ADDWF y+1,W;w和y+1相加;BTFSC STATUS,C;检测STATUS中的进位位,为0则跳过;INCF z+2,F;z+2递增1;ADDWF z+1,F;F和Z+1相加BTFSC STATUS,C;检测STATUS中的进位位,为0则跳过;INCF z+2,F;z+2递增1;END;程序结束;程序分析:见注释五·实验操作:1.新建一个工程:project-new-命名工程-保存到工作目录2.编写源文件并保存到工作目录下3.加在原文件到工程中4.程序环境设置(1)选择器件(2)调试环境位设置5.编译工具的选择6.编译源文件实验结果如图所示:程序执行过程:执行第一条程序时:逐条执行程序时:STATUS寄存器中的变量将x和y进行相加运算时的寄存器变量检测标志寄存器时最终执行结果最终实现x和y的相加;2.针对问题二:将20H单元的高低四位分别转换为ASCII码,存储在LED1和LED2单元;实验思路:实验程序: LIST P=16F877AINCLUDE "P16F877A.INC"led1 EQU 0x21led2 EQU 0x22x EQU 0x23y EQU 0x24TEST NOP;空操作GOTO START;汇编开始ORG 004h;汇编起点为004HSTART MOVLW 23H;将立即数23h传送到w;MOVWF 20H;将w的内容传送到20h;MOVLW 20H;将立即数20h传送到w;MOVWF FSR;将w的内容传送到FSR;MOVLW 0FH;将立即数0fh传送到w;MOVWF x;将w的内容传送到X;MOVF INDF,W;将INDF的内容传送到目标寄存器中;ANDWF x,F;w和x做逻辑与运算;MOVLW 30H;将立即数30h传送到w;ADDWF x,W;w和x的内容相加;MOVWF led1;将w的内容传送到LED1;MOVLW 0FH;将w的内容传送到20h;MOVWF x;将w的内容传送到x;MOVF INDF,W;将INDF的内容传送到目标寄存器中;MOVWF y;将w的内容传送到y;RRF y,F;对Y进行带进位的右移;RRF y,F;对Y进行带进位的右移;RRF y,F;对Y进行带进位的右移;RRF y,W;对Y进行带进位的右移;ANDWF x,F;w和x做逻辑与运算;MOVLW 30H;将立即数30h传送到w;ADDWF x,W;w和x的内容相加;MOVWF led2;将w的内容传送到led2;End;程序结束程序分析:见注释五·实验操作:1.新建一个工程:project-new-命名工程-保存到工作目录2.编写源文件并保存到工作目录下3加在原文件到工程中4.程序环境设置(1)选择器件(2)调试环境位设置5.编译工具的选择6.编译源文件实验结果如图所示:实验操作步骤:1.程序执行前目标寄存器变量:3.最终实现高低四位分别转换为ASCII码:4.针对问题三:将20H单元的8bit二进制数转换为三位BCD 码存储在B1,B2,B3单元;实验思路:把二进制数减100,减10得到BCD码实验程序:list p=16f877ainclude"P16f877a.inc"A EQU 0X20B1 EQU 0X30B2 EQU 0X31B3 EQU 0X32ORG 0X00NOPGOTO STARTSTART MOVLW 0E5H;把E5H送给W寄存器MOVWF A;把W寄存器的值送到ACLRF B1;清空B1CLRF B2;清空B2CLRF B3;清空B3BAI MOVLW 64H;把64H(十进制的100)送给W寄存器SUBWF A,F;把A中的数值减去100还送回AINCF B1;把B1加1BTFSC STATUS,C;检测STATUS寄存器中的进位位CGOTO BAI;没有借位继续循环MOVLW 64HADDWF A,FDECF B1SHI MOVLW 0AH;把0AH(十进制的10)送给W寄存器SUBWF A,F; 把A中的数值减去10还送回AINCF B2;把B2加1BTFSC STATUS,C; 检测STATUS寄存器中的进位位C GOTO SHI; 没有借位继续循环MOVLW 0AH;ADDWF A,F;DECF B2;MOVF A,W;把A中剩下的数送到W寄存器·MOVWF B3;把W寄存器中的数据送到B3END程序分析:见注释五·实验操作:1.新建一个工程:project-new-命名工程-保存到工作目录2.编写源文件并保存到工作目录下3.加在原文件到工程中4.程序环境设置(1)选择器件(2)调试环境位设置5.编译工具的选择6.编译源文件7.调试实验结果如图所示:1.汇编开始时寄存器变量:2.百位转换完之后3.十位转换完之后4.程序执行的最终结果最终实现将20H中的数据转换成BCD码分别存储在B1,B2,B3中六·实验总结:对单片机的学习要注重实践,操作。
PIC单片机实训报告

.《单片机C程序设计》课程实训报告基于PIC单片机的电子密码锁的设计与仿真系别:班级:学生姓名:学号:指导老师:完成日期:目录摘要 (2)1. 系统设计思路 (3)1.1 设计目的 (3)1.2 设计思路 (3)1.3 设计分析 (3)2 器件选择 (4)2.1 主要器件的选择 (4)2.1.1键盘模块选择方案 (4)2.1.2显示模块选择方案 (4)2.2 电路元器件明细表……………………………………………‥‥‥…‥‥‥‥‥ 53. 方案选择 (5)4. 系统功能框图 (6)5. 单元电路设计 (6)5.1 PIC16F877(A)单片机简介...............................................................‥ 6 5.2 PIC16F877(A)最小系统 (7)6. 4*4矩阵键盘电路 (7)6.1蜂鸣器报警电路 (7)6.2 LED状态指示电路............................................................‥‥‥‥‥ (8)6.3L C D显示电路 (8)6.4 密码锁整体电路 (8)7. 程序设计流程图 (9)7.1 主函数设计流程图 (9)7.2键值读取与运行函数流程图 (9)7.3 键值扫描设计函数流程图 (10)8.仿真效果 (12)8.1 仿真原理图 (12)8.2 部分仿真效果图 (12)9.设计心得与体会 (13)参考文献 (13)摘要本文论述了以为PIC系列PIC16F877单片机为控制核心。
用4x4矩阵键盘作为操作信息输入,用LCD1602作为信息输出,用蜂鸣器及发光二极管作为错误报警及状态显示。
本电子密码锁具有设计人机接口采用4×4矩阵键盘及LCD1602液晶显示器,操作简便,控制界面直观、简洁,具有良好的人机交互功能。
1.系统设计思路1.1 设计目的设计一个带有清除键(CLR)、确认键(ENTER)、数字键、上锁键(LOCK)、清屏键(CLR ALL),具有密码重设功能、状态提示功能以及报警功能的一个电子密码锁。
PIC单片机实验

TRISC TRISC,2 D'70' PR2 CCPR1L D'35' CCPR1L 0x06 T2CON
; BANKSEL to get to TRISC bank (bank 1) ; Set CCP1 as an output ; Manually Calculated Period ; loaded into PR2 (also in bank1) ; BANKSEL is needed to get bank to bank 0. ; Manually Calculated Duty Cycle (50%) ; loaded into CCPR1L ; Turn on TMR2 (for PWM) ; and /16 prescale
PICDEM 2 Plus
3 6 Pin “Phone” jack to PICDEM 2 Plus
4 进入MPLAB ICD2 Setup Wizard,分别按照下图一步一步 进行设置。
单击下一步
5 设置芯片的配置字
6、下载代码到目标芯片 选择Program选项,下载代码到目标板
Source Code
Output Window
Watch Window
程序流程图
实验注意事项
404实验室,ICD2与主机连接时,选择USB口 或COM1口 对于Lab2,要求学生作相应更改,比如:让 RB0~RB3轮流闪烁。
Lab 3
Make Some Noise! (with the CCP module)
5单击View>Program Memory可以观察程序存储器,如图19所示。
pic实验报告

电子装置与系统设计课程设计题目:温度检测系统设计学院专业:姓名:日期: 2011年7月2日目录一、摘要 ------------------------------------------------------------------ 3二、前言 ------------------------------------------------------------------ 4三、正文 ---------------------------------------------------------------------51、设计要求---------------------------------------------------------------52、实验流程图-------------------------------------------------------------53、TC1074数字温度传感器---------------------------------------------------64、1602液晶显示屏---------------------------------------------------------65、24LC024 I2C存储器-----------------------------------------------------76、程序清单---------------------------------------------------------------8四、实验心得----------------------------------------------------------------- 17一、摘要随着社会的进步和工业技术的发展,人们越来越重视温度因素,在很多场合,我们需要知道现场温度是多少,需要实时检测温度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
pic单片机实验报告篇一:PIC单片机实验报告实验一循环点亮LED灯一、实验内容:将RE0-RE5配置为输出,连接6个LED灯;编写程序,调试并运行,下载到实验板上,实现循环点亮。
二、实验目的:学习PIC单片机I/O端口功能及特点,了解I/O端口引脚及连线,控制寄存器。
在开发板上实现循环点亮LED灯。
三、实验要求1. 了解掌握PIC单片机的结构和功能。
2. 应熟练掌握MPLAB开发环境的使用方法。
3. 熟练掌握PIC单片机的程序编写方法。
4. 掌握MPLAB IDE硬件调试的技巧。
四、实验准备:1、I/O引脚及连线:I/O端口特点:1、所有I/O 输入端口都是施密特触发器输入,以便增强抗干扰性。
2、外设复用:所有的器件引脚(除VDD、VSS、MCLR 和OSC1/CLKI之外),均为外设与I/O端口所共用。
3、如果外设使能,并且外设正在使用相关引脚时,该引脚将不再作为通用I/O 引脚使用。
4、优先级:I/O 与多个外设复用时I/O 引脚的名称定义了与该引脚相关的各个功能的优先级,如:I/O 引脚与两个外设复用(“外设A”和“外设B”)外设A 对引脚的控制具有最高优先权,若外设A 和外设B 同时使能,外设A将控制I/O 引脚5、电平变化通知引脚:电平变化通知引脚(CN)内接输入电平变化通知模块,使得dsPIC30F器件能够向处理器发出中断请求,以响应所选输入引脚上的状态变化。
I/O端口控制寄存器:所有的端口引脚,都有三个与端口引脚的操作直接相关的寄存器。
① TRISx:数据方向寄存器。
决定各个引脚是输入引脚还是输出引脚。
–若某个I/O 引脚的TRIS 位为“1”,则该引脚是输入引脚。
–某个I/O 引脚的TRIS 位为“0”,则该引脚被配置为输出引脚。
–复位以后,所有端口引脚被定义为输入。
② PORTx:I/O端口寄存器。
访问的是I/O引脚上的数据。
读的是端口引脚值;写端口引脚,写的是端口数据锁存器(LATx )。
③ LATx:I/O端口锁存寄存器。
读的是数据锁存器里锁存的值;写锁存值,写的是端口数据锁存器(LATx )五、实验过程及结果:实验源程序:#include "p30f4011.h”int main(void) {int led=0x01; unsigned long int i=0;TRISE =0x100;PORTE=led; while(1) {PORTE =led;for (i=0;i //当第6个LED灯亮后,重新从第1个LED灯点亮led = led led = 0x01; } return 0; }先编写程序,检验正确后,下载到实验板上并运行,实验板上6个LED灯开始循环点亮,通过修改程序,还可以改变延迟时间,即可控制LED灯点亮时间。
实验二实现外部中断INT0一、实验内容:学习PIC单片机的中断内容及其特性,了解中断请求、中断响应及中断服务原理。
在实验板上实现外部中断INT0.二、实验目的:掌握PIC单片机的中断内容,学会编程实现外部中断。
三、实验准备:中断概述: 1、中断的定义:中断是指如下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中断请求信号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序,在中断服务程序中CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。
2、中断源:⑴中断源的定义:中断源是指引起中断请求的来源。
⑵中断源的分类:①软中断和②硬中断 3、中断处理的全过程中断处理的全过程分成3个阶段:中断请求、中断响应和中断服务。
4、多重中断与中断优先级⑴当系统中有多个设备提出中断请求时,多个外设的中请信号要通过门电路送到CPU的中请输入端,使CPU能收到多个外设提出的中请。
⑵ CPU在收到多个外设的请求后,按优先级原则处理中断。
中断请求:1.CPU都有中请输入线。
中请输入线有2类:非屏蔽中请输入线和可屏蔽中请输入线;2.CPU的开、关中断。
CPU内有1个中断请求触发器IF,当IF=1时,称CPU 开中断,此时CPU可以处理收到的可屏蔽中请;当IF=0时,称CPU关中断,虽然 CPU收到了可屏蔽中请,但不处理(响应)它。
3.CPU内有中断请求检测电路。
CPU每执行一条指令,其内的中断请求检测电路都要检测中断请求输入端的状态中断服务:中断服务子程序是由用户根据自己的需要编制的,编制时要注意如下问题: 1.保护现场:目的是为了保护那些与主程序中有冲突的寄存器,如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。
2.开/关中断:对相应中断位置1或置0实现。
目的是为了能控制中断。
3.中断服务:与中断源实现信息交换。
4.恢复现场:是与保护现场对应的,但要注意数据恢复的次序,以免混乱。
5.返回:返回主程序四、实验过程及结果:实验源程序:#include "p30f4011.h” unsigned int Led =0x01; voidInitializeint0() {IFS0bits.INT0IF = 0;//清除INT0的中断标志IPC0bits.INT0IP = 7;//中断优先级为7 }void __attribute__((__interrupt__)) _INT0Interrupt(void) {篇二:PIC单片机实验报告模板PIC单片机技术上机实验报告实验项目:定时/计数姓名:专业:班级:学号:学期: 1314学年2 学期XX一、实验名称×××二、实验设备××××(实验所需的设备或者软件)三、实验目的1.××××2.××××3.4.四、实验要求××××××××五、理论原理×××××(本次实验所用到的书上的理论知识点的概要说明。
)六、实验内容步骤1.×××××××××××××××××××××××××××××××××××××××××2.×××××××××××3.×××××七、实验程序附软件流程、程序源代码。
(程序要注释)八、实验结果附:电路原理图、Proteus仿真的结果图片等。
并做文字说明。
九、分析总结××××××××(实验过程遇到的问题、思考及解决方法;此次实验的功能模块在实际应用的思考、本次实验的心得体会等)1篇三:PIC单片机实验报告实验一一,实验目的(1)熟悉MPLAB-IDE软件开发环境及应用平台;(2)熟悉MICROCHIP的PIC18F452开发板的电路原理图(3)熟悉PIC单片机的编程过程;(4)了解PIC单片机输入输出端口的定义方式二,实验内容(1)初始化单片机RD,定义RD为输出,用于控制目标板上D1-D8 LED灯。
三,实验要求要求完成以下两个方案中的其中一个:(1)任意点亮8盏LED灯中的任意一个(2)点亮一盏LED灯,并自左向右循环点亮每一盏LED 灯四,设计内容与步骤(1)设计方案原理对PORTD端口循环轮流赋值,并延时。
(2)编程思路通过对TRISD赋值“00H”,将PORTD全部设置为输出,首先PORTD赋值为01H,调用延时子程序。
然后PORTD赋值分别为02H--04H--08H--10H--20H--40H--80H,并在这八个数中循环。
流程图:(本文来自:小草范文网:pic单片机实验报告) 、、、(3)代码、仿真:(略)五,心得与体会:本实验比较简单,与第二个实验相似,不同的是给PORTD值的时候,一个是分别赋值,而另一个是通过查表的方法。
所以仿真与代码省略。
实验二一,实验目的(1)学习子程序的调用如:延时和查表子程序;(2)锻炼编程的思想和提高编程的能力;(3)了解程序运行过程内存参数的变化情况;二,实验内容利用延时和查找表的方法,实现8盏LED灯的循环点亮,每次点亮一盏,向左或向右循环点亮,延时时间适当即可。
三,实验要求实验必须达到功能正确,程序编写清晰,而且有适当的注释。
四,设计内容与步骤1.设计方案原理与思路:通过查表,将查表之后的结果送到输出端D口,再循环跳转,让LED灯循环点亮。
2.设计流程图:3.程序代码:LIST P=18F452INCLUDE"P18F452.INC"ABC EQU 20H;―――――――――――――――――――――; 主程序;―――――――――――――――――――――ORG 0000HNOPBSFSTATUS,5 ;选择体1MOVLW 00HMOVWF TRISD;D口为输出BCF STATUS,5 ;返回体0 MAINMOVLW00HMOVWFABCMOVLW00HMOVWFPORTD ;D口清0 ST MOVF ABC,WCALLSHUZH;调用查表子程序MOVWFPORTD;D口显示CALLDELAY;延时INCF ABC,FINCFABC,FBTFSS ABC,4 ;循环设置GOTOSTGOTOMAIN;―――――――――――――――――SHUZH ADDWF PCL,F ;表子程序RETLW 01H RETLW 02H文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. RETLW 04HRETLW 08HRETLW 10HRETLW 20HRETLW 40HRETLW 80H;―――――――――――――――――DELAY NOP ;延时子程序NOPNOPNOPNOPRETURN;――――――――――――――――――END4.实验步骤1.在软件上编写代码2.编译与仿真3.仿真与结果11。