欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

PIC16F887 单片机 接线 实物器件说明 原理

程序员文章站 2022-07-07 13:06:05
文章目录1 烧写程序2 LCD16023 PCF85914 独立按键1 烧写程序前面我们已经利用MPLAB生成了hex文件,并把hex文件弄到proteus进行单片机仿真了。这一节关注的就是怎么把hex文件弄到单片机实物上去运行。这个就看《 单片机原理及应用(PIC 单片机)实验指导书》实验里第四章节内容。2 LCD1602仿真图里只关心数据线,电源线无所谓,所以可以看到下图里LCD1602就7根线好好接到了单片机,而别的引脚都可以不接。但在实物中需要关注得更多。实物样子:实物电路图...

1 烧写程序

前面我们已经利用MPLAB生成了hex文件,并把hex文件弄到proteus进行单片机仿真了。
这一节关注的就是怎么把hex文件弄到单片机实物上去运行。
这个就看《 单片机原理及应用(PIC 单片机)实验指导书》实验里第四章节内容。
PIC16F887 单片机 接线 实物器件说明 原理

2 LCD1602

仿真图里只关心数据线,电源线无所谓,所以可以看到下图里LCD1602就7根线好好接到了单片机,而别的引脚都可以不接。但在实物中需要关注得更多。
PIC16F887 单片机 接线 实物器件说明 原理
实物样子:
PIC16F887 单片机 接线 实物器件说明 原理
实物电路图:
PIC16F887 单片机 接线 实物器件说明 原理
从电路图就可以看到LCD1602很多引脚都是在PCB里连接了的:比如3号引脚就是接了一个滑动变阻器R40的,在实物图中也可以看到R40(蓝色的那个,可以用螺丝刀扭它),这个滑动变阻器作用就是调节LCD显示对比度的,在后面下载了程序缺看不到显示,就能看到很多黑色格子,这时调节一下这个动变阻器改变对比度或许是有用的。
此外应该关注到,P10跳线应该短接,这样VCC电源才能和LCD1602-VCC节点连接,相当于这是给LCD1602供电的设置,如果不短接,相当于电源断路,LCD1602不会工作。
关注了上面2点后,我们就可以关注到信号线了,我们应该像仿真图里的连接那样,将7根信号线连接好。
为什么我们没用仿真图里LCD1602的D0 D1 D2 D3信号线呢?
专注下面几个点:LCD1602可以8线控制,D0到D7都连接;我们这种接法是4线接法,只用连接D4 D5 D6 D7;4线接法比8线更加节省单片机引脚,利于资源充分利用;教科书上用的4线接法,有现成程序;我有试过8线控制,结果是仿真能好好运行,实物却不工作,这个时候需要调试时序;我手里没有PIC板子,所以不可能调试时序;4线和8线的程序不一样的。
LCD1602的程序为啥那么写?能解释一下吗?
是教科书的程序,想要深入研究可以百度一下LCD1602的用户手册;我们更关心怎么用它,想要它显示字符需要做2件事,第一件事就是调用函数LCD_CSH()初始化它,第二件事就是想要在第0列第1行的位置上显示字符串hello就应该这么写:LcdWriteString( 0, 1, "hello" ); 这类底层程序是非常基础的程序,不需要重复造*,百度一下现成程序知道怎么用就好。举个例子,下面这个函数,无非就是让单片机引脚依照LCD1602控制时序改变引脚高低电平,懂得深与浅又能怎么样呢,下次你想自己写个程序的时候,第一时间还是去复制粘贴上次写的,而不是翻着手册把下面这个函数再写一遍。

/* LCD写命令 */
void LCD_WRITE( unsigned char R1, unsigned char FLAG )
{
	unsigned char R2;

	LCD_BUSY();
	LCD_RW	= 0; NOP();
	LCD_RS	= FLAG;
	R2	= (R1 >> 4) & 0x0F;
	PORTD	&= 0xF0; NOP();
	LCD_E	= 1;
	PORTD	|= R2;
	NOP(); NOP();
	LCD_E = 0;

	R2	= R1 & 0x0F;
	PORTD	&= 0xF0; NOP();
	LCD_E	= 1; NOP();
	PORTD	|= R2;
	NOP(); NOP();
	LCD_E	= 0; NOP();
	LCD_RS	= 0; NOP();
	PORTD	&= 0xF0;
}

3 PCF8591

如果是做波形发生器实验,我们需要PCF8591产生电压信号,PCF8591的15号引脚就是电压输出引脚。
对照下面的图,我们应该有几个操作:
(1)短接J3的2个排针,使得PCF8591芯片供电。
(2)不能短接P66的2个排针,应该拔下来,并把P66下面的排针(这里就是PCF8591的15号引脚)连接到示波器的屏蔽线笔的勾针;
(3)按照仿真图连接信号线SCL SDA到单片机;
(4)示波器的GND线应该和实验箱子上的任意一个GND连接。(共地)
PIC16F887 单片机 接线 实物器件说明 原理

控制PCF8591输出一个电压很简单:

iic_send_char( 0x90 );          /* iic写入iic器件地址 */
iic_send_char( 0x40 );          /* 写入DAC转换信号 */
iic_send_char( 100 );    /* 写入电压 */

0x90 是固定的器件地址,0x40是PCF8591内部的寄存器地址,最后写入一个0到255之间的整数就可以了,PCF8591就能根据这个整数输出一个电压值,0到255代表了0到5V。
什么是iic?
IIC是一种通信协议。协议详情又得多百度了,因为一句话说不完。我们只要知道,单片机和PCF8591的信号线只有2根,采用了IIC协议进行通信,单片机通过2根线发送了控制信息给PCF8591,PCF8591根据收到的控制信息产生了电压。

4 独立按键

8个独立按键互不相干,用多少连多少,只用关心信号线就好。

PIC16F887 单片机 接线 实物器件说明 原理

5 直流电机

ULN2003这块芯片就是电平驱动力转换的一块芯片。接直流电机直接姐在JP37的2根针处就好,同时单片机信号控制脚接到JP32的五号引脚,当单片机输出低电平,IN5也是低电平,直流电机导通。

PIC16F887 单片机 接线 实物器件说明 原理
PIC16F887 单片机 接线 实物器件说明 原理
仿真中为了简便,只注重信号线,如下图,黑色的就是电机,一端接VCC,一端接单片机引脚,单片机引脚输出低电平的时候电机就会转。从信号来说,实物P37那里也是单片机引脚输出低电平电机就会转。
PIC16F887 单片机 接线 实物器件说明 原理

6 小灯

实物中JP15接单片机引脚,单片机引脚输出低电平小灯点亮。
PIC16F887 单片机 接线 实物器件说明 原理
仿真里的小灯一直有点问题,不的不加个继电器在里面,但只需要关注信号就好,仿真里面也是单片机引脚输出低电平,小灯点亮。所以连接实物的时候去关注信号线是哪一个引脚就可以。

PIC16F887 单片机 接线 实物器件说明 原理

7 DS1302

一定得把纽扣电池装着,不然就不会正常工作。纽扣电池小心没电了。
三根信号线跟着仿真图接就好了,不要接错了。
PIC16F887 单片机 接线 实物器件说明 原理

8 DS18B20

(1)关注信号线,依照仿真图将信号线接在JP35处的排针。
(2)得找老师要一个DS18B20器件插到U5或者U7, U5和U7是对称的,随便插哪里效果一样;
(3)插的时候注意半圆方向。
(4)可以用手摸DS18B20加热,可见显示屏上读取显示的温度会改变。
PIC16F887 单片机 接线 实物器件说明 原理

9 蜂鸣器

关注信号线,依照仿真图将信号线接在JP22处的排针。
这是无源蜂鸣器。
PIC16F887 单片机 接线 实物器件说明 原理
无源蜂鸣器和有源蜂鸣器啥区别?
控制电路没区别,内部构造有区别。
有源蜂鸣器:在上面的原理图中如果蜂鸣器是有源蜂鸣器,那么JP22是低电平的时候,8550三极管导通,此时蜂鸣器上方电压就是VCC,下方就是GND,有源蜂鸣器的特点此时就直接就鸣叫了。有源蜂鸣器内部有一个500HZ(可能不是这么大小)的震荡电路,通电后直接工作起来使得振动片以500HZ振动,听起来就是500HZ的声音。有源蜂鸣器的声音频率是固定的。
无源蜂鸣器:在上面的原理图中如果蜂鸣器是无源蜂鸣器,那么JP22是低电平的时候,8550三极管导通,此时蜂鸣器上方电压就是VCC,下方就是GND,无源蜂鸣器的特点就是此时无源蜂鸣器不会鸣叫。因为无源蜂鸣器内部没有震荡电路,只能依靠频率地通电断电来控制。可知JP22是低电平是通电,JP22是高电平是断电。如果JP22是给一个1000HZ的50%占空比的方波,那么无源蜂鸣器就会以1000HZ的声音鸣叫。

无源蜂鸣器的程序:
(1)如果是想鸣叫一声:

for(i=0;i<100;i++)
{
	给高电平
	延时0.5ms
	给低电平
	延时0.5ms
}

(2)如何放音乐?
音乐简谱中可以知道每个音符的频率 和鸣叫时间。
举个例子
比如有一段音乐只有三个音,是下面这样:
首先1000HZ 响200ms,然后700HZ响50ms,最后1500HZ响100ms。
我们就需要控制单片机程序在蜂鸣器控制引脚上输出这个波形:
PIC16F887 单片机 接线 实物器件说明 原理
精准控制频率也就是时间,只有定时器功能去弄。
响多久可以用软件延时函数等待那么多时间。

本文地址:https://blog.csdn.net/x1131230123/article/details/108780168