本实例可以分为5部分,如图1所示。
图1 系统组成原理框图
下面将对这5部分分别进行说明。
(1)复位电路。
上电时,对复位电路中的电容充电,也是对PIC单片机进行上电复位的过程,在这一过程中,还可以手工直接按动上电复位中的按键,对其进行复位。
(2)时钟电路。
时钟晶振可以采用主频为0~20MHz的晶振,接法如图2所示。
图2 复位电路和时钟电路
(3)独立式键盘输入。
通过PlC16F877的端口D直接输入,在实际电路实现时,由于会产生抖动,所以,在编程时要采用100ms的延时进行复查,确定后再输出数据。
(4)LED输出。
通过PIC16F877的端口C输出,利用PIC16F877的强大的驱动能力直接驱动LED实现,为保护PIC16F877和LED,要为LED串联一个100Ω的电阻。
(5) PIC16F877。
这是系统的核心部分,上电复位后,系统就开始对端口D进行扫描,延时100ms后进行复查,如果端口D的值没有变化,就将得到的端口D的值输出到端口C,驱动LED显示结果。
电路中的PIC单片机的硬件电路如图2所示,包括复位电路和时钟电路两部分,输入电路如图3所示,输出显示电路如图4所示。
图3 输入电路
图4 输出显示电路
复位电路采用典型复位电路的接法,这种接法不仅可以在上电时自动复位,还可以在程序运行中手动复位,手动复位时,只需要按下复位电路中的按键即可。时钟电路中的晶振采用0~20MHz的晶振,但是要注意,时钟晶振的时钟周期是单指令的运行周期,所以在编程中,如果用到延时程序,要用相应的时钟周期来计算程序中设置的延时次数。
本实例用到了PIC16F877的端口C和端口D,其中,端口C作为输出端口,端口D作为输入端口。PlC16F877的LO端口驱动能力很强,可以直接驱动LED,为了保护PIC16F877和LED,为LED串联一个100Ω的保护电阻。输入按键的一端接到电源,另一端接到PlCl6F877的端口D中的一位输入,同时,接到单片机的一端还要外接一个阻值较小的电阻并接地。
关键字:PIC单片机 人机接口 独立式按键
引用地址:
PIC单片机人机接口模块独立式按键的电路设计
推荐阅读最新更新时间:2024-05-02 21:47
PIC单片机之第一个工程分析,点亮LED
电路图如下: 新建一个工程: 然后用工程向导设置工程 Project-》project wizard: 选择芯片: 设置编译器: 选择文件位置: 这里设置工程就完成了 添加C文件,这里只是添加一个文件罢了 内容如下: 到这里文件编辑完成了 下面是下载设置,这里要选择上PICkit3,因为我们的仿真器是这个: 最后就是比较关键的配置字了,这里我们使用默认的配置字,configure-》configuration bits...如下: 整个工程可以说配置完毕了,最后下载: 这样就能够把代码数据下载成功进去了 实验现象如下所示: 到这里就结束了整个的工程 但是有几个地方要说的
[单片机]
PIC单片机该怎么加密
见过很多初学者对PIC16系列单片机的ID码的读和写犯迷糊。说实话,这方面的资料也不怎么全。有些教材可能会涉及ID区域的介绍,可是往往是一代而过。这对初学者来说是比较容易犯错的地方。今天有空,对相关的问题作了一些整理,分享给大家。可能有些地方说的不够妥当,欢迎大家多多探讨。 1.什么是ID区域? ID区域是独立于EEPROM,FLASH,RAM的区域。程序设计人员可以利用该区域存放软件的版本号,编写日期,烧录日期,产品标识等信息。不过该区域很小PIC16系列只能存放4个字节。 2.ID码怎么烧录到ID区域里面去? 可以利用PICC自带的宏命令IDLOC(X)来实现。具体操作如下: ........
[单片机]
PIC单片机CCS之C语言(#BYTE的用法)
#BYTE 语法: #byte id=x id是一个有效的C标识符; x是一个常数或是一个C变量; 目的:如果id是一个已知C的变量,那么它将定位在地址x处,在这种情况下,变量类型的最初定义不会被改变.若id不是已知的C变量,则利用#byte id=x就可创建一个新的C变量,且放在地址x处,类型为整型(8位). 主意:在两个不同的存储区里,x不是唯一对应这个变量(id)的地址.其它变量可能和它拥有相同的地址.实际上,当x是一个变量时,那么id和x就共享有相同的地址存储单元. 例子: #byte status=3 //定义status的地址为3 #byte b_port=6 //定义b_port的地址为6 str
[单片机]
0802LCD 4位显示程序 PIC单片机C语言程序
#include xc.h #include pic.h //#include head.h #define uchar unsigned char #define uint unsigned int #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT ena
[单片机]
PIC单片机的BootLoader实现
引 言 PIC单片机的BootLoader属于需要自己写程序的那种,可以根据自己的需要写出各种功能的BootLoader程序来。目前,比较常见的BootLoader程序有Microchip公司的C18版本和著名的PICC编译器厂商 HI-TECH公司(以下简称HI-TECH)的PICC18版本。它们的相似之处在于都占用了系统的0x00~0x1FF的程序空间。 Microchip的版本是用纯汇编写的,而HI-TECH的版本是用C语言编写的。 在PIC系列单片机中,只有PIC18系列和PIC16F87X系列的单片机才有IAP功能,才能够使用BootLoader功能。下面只介绍PIC18的BootLoader,PIC16F8
[单片机]
PIC单片机对9346EEPROM数据的读写
实验目的:熟悉SPI总线以及9346EEPROM的读写 ;RBO键按下时把DATA和DATA2写入到EEPROM中以EE—ADDR为地址的单元内, ;完成后,单个数码观显示“9”做为完成标志 ;RB1键按下时,读取EEPROM中以EE—ADDR为地址的单元,并送数码管显示 ;硬件要求:S3、S5、S6拨码管置ON,S1第7、8位置ON。 LIST P=16F877A, R=DEC include “P16F877A.inc” ;包含头文件 __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWR TE _ON&_WDT_OFF&_HS_OSC
[单片机]
基于PIC单片机的空间电压矢量PWM控制方法研究
0 引言 在电机变频调速系统中,广泛应用到了PWM技术。PWM控制利用半导体开关器件的导通与关断把整流后的直流电变成脉冲序列,通过控制脉冲宽度和脉冲列的周期以实现变压、变频控制,同时减少输出电压电流谐波。早期的SPWM控制主要着眼于使逆变器输出电压波形尽量接近于正弦波,希望输出PWM电压波形的基波成分尽量的大,谐波成分尽量的小,并没有考虑到电动机本身旋转磁场的影响。空间电压矢量PWM技术是当前研究的热点问题,它将逆变器和交流电机作为一个整体来考虑,其控制目标是使磁通轨迹近似为圆,也被称为磁链跟踪PWM控制。本文在分析空间电压矢量PWM原理的基础上,提出了一种基于16位PIC24FJ64GA单片机实现SVPWM控制的方法。 1
[单片机]
PIC单片机通用定时器使用说明
一般所有单片机的定时器用做普通定时功能,都需要具备以下几点要素: 1. 时基:时基就是定时器的时钟来源,一般都是来源于内部时钟或外部时钟,并且一般都能设置对应的分频系数,因此要弄清楚 时基来源,分频器设置,设置完时钟来源和分频器就知道计时的最小单元。 2.当前计数器: 该寄存器反应的就是当前实时的计数值,这个计数值在每个计时最小单元的时间内加1或者减1。 3.计数匹配器: 一般向上计数的定时器肯定需要1个计数匹配器,当前计数器从0开始加1,一直加到与计数匹配器相等,则认为定时时间到,这个时候将置位对应标志位或者发出对应中断请求。也有向下计时器,从某个值一直减到0则认为定时时间到,这种定时器不需要计数匹配值。 4.
[单片机]