TPDEM1实验指导书PIC单片机.docx
- 文档编号:8195885
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:21
- 大小:534.39KB
TPDEM1实验指导书PIC单片机.docx
《TPDEM1实验指导书PIC单片机.docx》由会员分享,可在线阅读,更多相关《TPDEM1实验指导书PIC单片机.docx(21页珍藏版)》请在冰豆网上搜索。
TPDEM1实验指导书PIC单片机
TPDEM1实验指导书
前言
本实验制指导书围绕TPDEM1上的各个功能模块展开15个实验。
前十个为基础实验,DEMO程序提供传统的汇编单文件风格的代码以及说明文档,以供教学使用。
后五个为综合实验,是在前面10个实验的基础上的进一步提高。
DEMO程序均采用比较类C语言的多文件风格编写的。
本实验制指导书的所有DEMO程序均以PIC16F877A芯片为例编写的,若是其他型号的芯片请自行移植代码。
目录
TPDEM1开发实验板概述3
一、基础实验5
实验一I/O口流水灯功能实验5
实验二MCU内部EEPROM读写实验6
实验三SPI驱动数码管显示实验6
实验四热敏电阻实验7
实验五光敏电阻实验8
实验六AD键盘实验9
实验七1602LCD(16*2)液晶显示实验10
实验八RS2332串口通信实验12
实验九24C01(I2C接口)实验13
实验十外部中断实验14
二、综合实验15
实验一AD键盘综合实验15
实验二实时时钟综合实验16
实验三I2C综合实验16
实验四外部中断综合实验17
实验五RS232串口通信综合实验18
TPDEM1开发实验板概述
TPDEM1(普通版见图1,I/O口接口是插针的形式;高校版见图2,I/O口接口是插孔的形式)开发实验板硬件采用模块化设计,便于用户灵活组成科研项目所需的硬件结构。
硬件有:
1,RS232通信接口;
2,2X16字符型LCD液晶显示器;
3,2位应用74HC595串并转换的LED数码管;
4,串行存储芯片24C01;
5,用RA0即可实现9键输入的模拟键盘;
6,V/F转换电路;
7,8位LED发光二极管用于显示器件引脚高低电平或其它用途;
8,8位拨码开关用于控制状态的输入;
9,32.876Hz的时钟晶振电路;
10,利用热敏电阻和光敏电阻构成的温度和光强检测电路;
11,外部事件触发电路;
12,单片机通用复位电路;
13,DIP18-DIP20-DIP28-DIP40通用插座,可放置8、14、18、20、28、40管脚的PIC芯片;
14,ICSP接口;
15,可用于添加硬件的试验区。
图1普通版
图2高校版
TPDEM1开发实验板可配合MPLABICD2使用(见图3),也可配合PICMATE2002和PICMATE2004使用。
图3TPDEM1与ICD2的连接
一、基础实验
实验一I/O口流水灯功能实验
一、实验目的:
1,对单片机有初步感性认识;2,通过对I/O口相关寄存器的设置,能够熟练的操作单片机的I/O口。
二、实验原理:
单片机相应的I/O口设置为输出口,输出高电平时LED点亮,反之,LED不亮。
利用软件延时的办法实现05S延时,实现LED流水灯的效果。
本实验只演示16F877A的A口流水灯实验。
其他B口、C口、D口、E口流水灯实验请自行学习,参考代码见文件夹…\startdemo\RBOUT、RCOUT、RDOUT、REOUT。
如图1-1所示,八个LED,高电平点亮,可用于I/O口及其它信号状态的观测。
图1-1
三、实验连线:
PORTA0~5按顺序连接五个LED。
RA4为开漏输出,需外接上拉电阻。
RA6,RA7为晶振脚,实验板上不对外开放这两个口。
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\RAOUT\RAOUT.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,可看到五个LED循环点亮。
间隔时间0.5S。
实验二MCU内部EEPROM读写实验
一、实验目的:
1,了解PIC芯片EE区操作原理;2,熟悉如何实现最简单的EE区读写。
二、实验原理:
PIC的很多MCU均在MCU内部集成一块EE区,可以在程序运行期间对其进行读写,达到与外括的EEPROM一样的效果比如24C02。
PIC操作EE区,最安全的办法是关掉总中断操作,然而某些系统如此操作会引起整个系统的崩溃,因此我们一般采取写入后读回校验的方式看EE区读写是否成功。
本实验演示对EE区操作的基本步骤。
三、实验连线:
无。
四、实验步骤:
1.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
2.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
3.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\EEPROM\EEPROM.mcp项目。
4.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,停止后,读EE区,如果10H单元写入BVAL值——0X41,则写EE区成功。
如果R_DATA单元,即22H单元值为BVAL值0x41,则读EE区正确。
实验三SPI驱动数码管显示实验
一、实验目的:
1,了解用硬件SPI方式驱动数码管显示的方法;2,了解PIC串口同步模式与51类MCU的区别。
二、实验原理:
目前多流行采用串转并芯片进行段码驱动,比如74HC164,74HC595,位码可以采用分离的三极管或者集成ICULN2003,ULN2803来驱动。
串行芯片的驱动可以采用MCU的SPI方式,或者IO模拟,51类MCU,可以采用串口同步模式驱动,由于PIC芯片的串口同步模式是时钟下降沿发送数据,不能直接驱动串转并芯片。
本实验通过MCU硬件SPI方式,驱动数码管,实现数码管的静态显示。
如图1-3所示,由两个74HC595和两个共阴极数码管组成,利用同步串行口SSP部件SPI方式来传送数据。
图1-3
三、实验连线:
SRCLK接PORTC3,RCLK接PORTC4,SER接PORTC5
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\SPI_877A\SPI.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,可看到两个数码管循环显示“0、1、2、3、4、5、6、7、8、9、A、b、c、d、E、F”。
实验四热敏电阻实验
一、实验目的:
1,了解用模拟SPI方式驱动数码管显示的方法;2,了解热敏电阻的工作原理;3,学习16F877A的AD模块的使用。
二、实验原理:
如图1-4所示,R101为NTC(负温度系数)热敏电阻,室温20摄氏度时阻值约为10KΩ,R101的阻值随温度的升高而降低,则RA1采样到的电压值越大
图1-4
本实验将AD采集到的数值转换为ASCII码的形式送到两个数码管显示。
采用模拟SPI的方式驱动数码管显示,由于芯片全部在时钟上升沿完成动作,故需在低电平期间完成数据的变化。
三、实验连线:
SRCLK接PORTB5,RCLK接PORTB4,SER接PORTB3
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\HEAT\HEAT.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,将显示热敏电阻周围接触到的部分温度,一般为空气温度,改变热敏电阻接触的温度,将看到数码管显示不同温度。
本实验一秒钟采集一次温度。
实验五光敏电阻实验
一、实验目的:
1,了解光敏电阻的工作原理;2,学习16F877A的AD模块的使用。
二、实验原理:
如图1-5所示,所用的光敏电阻在正常的室内光强下大约是100KΩ,环境光亮度越低则RA2采样到的电压值越小
图1-5
开启A/D转换模块并等待转换结束,将采样值与设定的临界值进行比较,根据比较的结果来控制RB2脚电平;
三、实验连线:
PORTB2连接LCD的引脚A。
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\LIGHT\LIGHT.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,让光敏电阻处在光照下,可看到LCD背光灯打开;让光敏电阻处在黑暗中,可看到LCD背光灯关闭。
实验六AD键盘实验
一、实验目的:
1,了解用模拟SPI方式驱动数码管显示的方法;2,了解AD按键的工作原理,对AD键盘有初步的认识;3,学习16F877A的AD模块的使用。
二、实验原理:
如图1-6所示,AD键盘由九个按键和电阻网络组成,其输入端为RA0,根据不同的按键按下时,得到的A/D转换结果来判断按下的键位。
图1-6
功能模块函数说明
ADKEY.asm有两个函数可供使用,具体说明如下:
1)InitADKEY初始化AD键盘函数
2)GetADKEY读取键值处理函数;出口参数KEYRES、存放0~9的ASCII码,当无键按下时,KEYRES内的值为0x30,作为主函数判断是否有键按下的依据。
三、实验连线:
SRCLK接PORTC3,RCLK接PORTC4,SER接PORTC5
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\ADKEY\ADKEY.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,按AD键,SPI左侧数码管分别显示1-9。
右侧数码管则显示上次按键的键号。
实验七1602LCD(16*2)液晶显示实验
一、实验目的:
1,了解1602LCD驱动接口与显示原理;2,学习如何对LCD写一串字符。
二、实验原理:
如图1-7所示:
选用的LCD模块采用的是三星电子公司的KS0066U驱动芯片,通讯方式采用四位总线。
图1—7LCD显示电路
功能模块函数说明
TLCD.asm有四个函数可供使用,具体说明如下:
1)InitLCD初始化液晶面板函数;可在主函数初始化部分直接调用
2)putcLCD将字符写入LCD的函数;其入口参数是WREG
送入WREG的数据为ASCII码
3)SendCmd将命令写入LCD的函数;其入口参数是WREG
LCD显示RAM地址:
第一行0x80~8F;第二行0xC0~CF
4)clrLCD清LCD显示函数;可直接调用
LCD需要7个管腿来控制,分别为
DB4~DB7:
在LCD中的作用,为数据线,DB0~DB2接地,DB3接高电平以完成对液晶的初始化。
本Demo例子程序中,与单片机的RB2~RB5连接,用户使用其他的管腿时,只需修改#define部分。
RS为数据、指令控制线,与单片机的RB1连接,当RS为高电平时对LCD模块数据寄存器操作,当RS为低电平时对LCD模块指令寄存器操作;
E为读写使能控制线,与单片机的RA5连接,每当E线向LCD模块发送一个正脉冲,LCD模块与单片机之间将进行一次数据交换;
A、K分别是LCD模块背光的正负电源引脚,1-1所示,我们将用RC2控制背光,改变R29的值将改变背光亮度
R/W为读写选择线,在ICD2DEMO教学实验板中,R/W线接地,只做对LCD模块的写操作
三、实验连线:
LCD的DB7接PORTB5
LCD的DB6接PORTB4
LCD的DB5接PORTB3
LCD的DB4接PORTB2
LCD的E接PORTA5
LCD的RS接PORTB1
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\LCD\LCD.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,LCD将显示“happyevryday"
实验八RS2332串口通信实验
一、实验目的:
1,了解PIC芯片232模块工作原理;2,熟悉如何实现最基本的串口通信;3,了解串口通信的处理流程与方式;4,了解通信协议制定的一些要点。
二、实验原理:
232通信是最经典的一种上下位机通讯方式,绝大多数情况下采用MCU的硬件模块进行通信。
实验通过串口调试助手,演示了最基本的串口通信方式。
如图1-8所示,单片机通过MAX232和上位机进行通讯,RC6接TX,RC7接RX。
图1-8
功能模块函数说明
T232.asm有两个函数可供使用,具体说明如下:
1)InitUart初始化串行口函数
2)TXData发送数据函数;入口参数TX_End,FSR
3)RCintsever接收数据中断服务函数;出口参数FSR
三、实验连线:
直接用ICD2随机提供的串口延长线将TPDEM1的串口与电脑的串口连接。
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\232\UART.mcp项目。
5.编译项目,下载程序,运行程序。
6.打开串口调试助手,设置串口端口,选择波特率为9600,8位传输,校验位无,停止位1,十六进制显示,十六进制发送。
五、实验现象:
全速运行程序,可看到串口调试助手的接收区显示“4142434445464748”。
手动发送“010*********”,打开WATCH窗口可看到50H~5AH地址单元的值为“010*********”,请注意50H单元是串口接收数据起始存放地址,70H单元是串口接收数据结束存放地址。
实验九24C01(I2C接口)实验
一、实验目的:
1,了解PIC芯片I2C方式工作原理;2,熟悉如何实现用硬件模块进行I2C通信;3,了解IO模拟I2C总线的注意事项及操作。
二、实验原理:
24C01是最常用的外括EEPROM,一般用于保存系统的重要参数。
实际应用中,一般是将参数保存在程序设置的固定单元,并不通过一些复杂的算法做变地址存储。
更多时候采用外括EEPROM存储,而不采用内部EE区存储,这是从维修方便的角度考虑的。
24C01,不同厂家略有不同。
MICROCHIP公司的24C01地址线按其数据手册是NONECARE——无效,所以如果采取MCHP公司24C01,I2C总线上只能挂一片器件,可以采用其它公司的24C01来解决,不过一般更换成大容量的器件最合适。
需要注意的是任何I2C存储芯片,写后都要给芯片一定的时间进行内部存储。
一般我们采用简单延时来完成,此实验我们采取了查询总线应答方式来精确判定何时写完成。
如图1-9所示,24C01的SCL接RC3,SDA接RC4,可以用同步串行口SSP部件I2C方式与24C01进行通讯。
图1-9
功能模块函数说明
I2C.asm有两个函数可供使用,具体说明如下:
1)I2C_BYTE_READ;读一个字节函数
入口参数I2C_Data,I2C_Addr,出口参数I2C_Data
2)I2C_BYTE_WRITE;写一个字节函数
入口参数I2C_Data,I2C_Addr,出口参数I2C_Data
3)I2C_ACK_CHECK;I2C器件接收应答位检测
4)InitI2C;初始化I2C工作方式
三、实验连线:
无。
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\I2C\I2C.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
读回来的数据存储在I2C_DATA中,如果与I2C_DATA_BACK中数据一致,则读写I2C成功。
实验十外部中断实验
一、实验目的:
1,了解RB0外部中断原理。
二、实验原理:
如图1-10所示,外部中断接RB0。
RB0/INT是一个外部中断输入引脚,可通过使用INTEDG位来设置(OPTION_REG<6>)。
本实验演示RB0产生外部中断时A口的LED灯产生亮暗变化。
图1-10
三、实验连线:
PORTA0-3接LED灯。
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\startdemo\RB0INT\RB0INT.mcp项目。
5.编译项目,下载程序,运行程序。
五、实验现象:
全速运行程序,与PORTA0,PORTA1连接的LED亮,与PORTA2连接的LED不亮,按RB0INT键,则LED亮暗切换。
由于键盘无去抖动处理,可能按要多次才有反应。
二、综合实验
以下五个实验是在前面10个实验的基础上的进一步提高。
以下所有实验的DEMO程序均采用比较类C语言的多文件风格编写的。
实验一AD键盘综合实验
一、实验目的:
1,学习AD键盘,LCD显示,数码管显示,串口通信的综合应用。
二、实验原理:
见基础实验部分的实验三、实验六、实验七、实验八。
三、实验连线:
1,SRCLK接PORTC3,RCLK接PORTC4,SER接PORTC5;
2,LCD的DB7接PORTB5
LCD的DB6接PORTB4
LCD的DB5接PORTB3
LCD的DB4接PORTB2
LCD的E接PORTA5
LCD的RS接PORTB1
四、实验步骤:
1.按照以上的实验连线正确连线。
2.实验板TPDEM1上40PINIC座上插上芯片PIC16F877A-I/P,连接好ICD2(如果用PICMATE2004仿真,则插上PICMATE2004配套40PIN仿真线,进行仿真)。
3.实验板TPDEM1上电(如果配合PICMATE2004并在电源设置选择FROMPICMATE5V,可忽略此步骤)。
4.打开MPLABIDEV7.62软件,完成项目的建立,文件的命名,文件的编辑,芯片的选择和配置位的设置,工具的选择和设置,编译器的设置。
或者直接打开…\asmdemo\adkey\test_adkey.mcp项目。
5.编译项目,下载程序,运行程序。
6.打开串口调试助手,设置串口端口,选择波特率为9600,8位传输,校验位无,停止位1。
五、实验现象:
全速运行程序,按了某个键,相应的按键值将显示到LCD液晶面板,显示“ADK=X”SPI接口的LED数码管(LED上显示当前和上次的键值),同时从串口输出键值,可以通过串口调试软件进行观察。
实验二实时时钟综合实验
一、实验目的:
1,学习采用TIMER1中断实现精确定时的应用;2,学习L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TPDEM1 实验 指导书 PIC 单片机