PIC16F877A的特殊功能配置

合集下载

基于PIC16F877A单片机软件环分的步进电机控制系统

基于PIC16F877A单片机软件环分的步进电机控制系统
Tian Fengguo He Ying Wu Shujuan (Guizhou University of Technology.Guiyang 550003)
Abstract The system of driving stepping motor based on grammable logic controller(PIC 1 6F877A microcomputer)is introduced in this paper.Its circuit is original and succinct.Applying to the experimental system,it can help students build up the comprehension of principle,characteristic and driving circuit of PIC I 6F877A microcomputer and stepping motor.
电机正转:A—AB—B—BC—C—CA—A。 电机反转:A—AC—C—CB—B—BA—A。
图1异步电动机结构简图
58 J电气技术2009年第3期
万方数据
产品与应用
2.2步进电机的控制方法
现这种轮流通电,需将控制脉冲按规定的通电方式
反应式步进电机可以按特定的指令进行角度控 分配到电动机的每相绕组。这种分配既可以用硬件
Key words:stepping motor;PICl6F877A microcomputer:software pulsation distributing;control
system
1 引言
步进电机是一种将电脉冲信号转换成直线或角 位移的执行元件,它具有快速启停能力,精确步进 及直接接受数字量等特点,因而步进电机在定位场 合得到了广泛的应用。应用单片机进行脉冲控制, 控制精度高,因此,在工业应用场合,基于单片机 的步进电机控制器应用广泛。

基于PIC16F877A的永磁无刷直流电机的控制器设计

基于PIC16F877A的永磁无刷直流电机的控制器设计
De v i c e T e s t I n s t i t u t e , S h e n y a n g 1 1 0 1 7 9 , C h i n a )
Ab s t r a c t :W i t h t h e d e v e l o p me n t o f s c i e n c e a n d t e c h n o l o g y ,a h i g h e r d e ma n d o f p e r f o r ma n c e o f b r u s h l e s s DC mo t o r i s r a i s e d . B a s e d o n t h e r e s e a r c h o f ma t h e ma t i c a l mo d e l a n d c o n d u c t i s DC mo t o r , we d e s i g n e d h a r d w a r e
王 宇鸡 ,丁 海波 ,杨 华松 ,徐 晨路
( 1 . 中 国煤炭 科 工集 团沈 阳研 究 院 辽 宁 抚 顺 1 1 3 1 2 2 2 ;2 . 辽 宁省 医疗 器械 检验 所 辽 宁 沈 阳 1 1 0 1 7 9 )
摘要: 随 着 科 技 的 发 展 ,对 无刷 直 流 电 动 机 的 性 能 提 出更 高 的要 求 。 本 文在 研 究 无 刷 直 流 电动 机 数 学模 型 、 导 通 方
DC mo t o r
NG Ha i — b o 2 YANG W ANG Yu — k u n 。 DI Hu a — s o n g , XU C h e n — l u
, ,
(1 . S h e n y a n g R e s e a r c h I n s t i t u t e o fC o a l T e c h n o l o g y E n g i n e e r i n g G r o u p C b 仍 F u s h u n 1 1 3 1 2 2 , C h i n a ; 2 . L i a o n mg Me d i c a l

PIC16F877A功能及其编程

PIC16F877A功能及其编程
RA3=1; NOP(); RA4=0;
4.1.1 端口A
因此,在使用RA口时,除了要设置TRISA外,有 时相关寄存器也要设置。
注意:在上电复位时,与AN有关的端口的默认 设置是作为模拟端口,即ADCON1(见4.6)中默认 值为0b00xx0000,这个值的设置结果是除RA4外的所 有的RA引脚都作为模拟输入。
信的时钟线; RC7/RX/DT:IO引脚、异步串行通信的接收、同步串行通
信的数据线。
4.1.4 端口D
端口D有8个引脚,它除了作为普通IO口外, 还能作为并行从动口使用。
4.1.5 端口E 端口E只有3个引脚,它们都可以作为AD转换
的模拟电压输入口,功能如下:
RE0/RD/AN5:IO引脚、并行从动口的读控制、 模拟电压输入通道AN5;
➢ 中断的特点:可返回性。中断处理结束后必须能 回到原先的程序,并且能继续运行原先的程序,
这就需要在中断时能进行现场保护与恢复。
中断的执行过程
➢ 中断发生:程序执行到某行,突然事件(能够产 生中断的事件)发生,产生中断。
➢ 断点保护:CPU自动将中断时刻即将要执行的下 一条指令的地址压入堆栈。
➢ 中断响应:CPU自动将PC强制设为0X0004,且GIE =0。执行中断服务程序(自动完成现场保护与恢 复,手动清中断标志位)。
将被调试系统占用,因此在调试时此二个引脚暂 不能使用。
3、8个引脚具有内部弱上拉使能控制 由OPTION_REG寄存器的第7位RBPU控制,如果弱 上拉使能,作为输入的RB口在端口悬空时将被上拉 到高电平。以RB0为例,如下图所示:
4、RB0/INT具有外部中断功能。
5、RB的的高4位还具有电平变化中断功能
ADIE

PIC单片机电子密码锁

PIC单片机电子密码锁

一、系统主要功能1)基本要求1.硬件设计要求:(1)CPU使用PIC16F877A。

(2)用4x4矩阵键盘作为操作信息输入。

(3)用LCD1602或六位数码管作为信息输出。

(建议使用LCD1602)(4)用蜂鸣器及发光二极管作为错误报警及状态显示。

2.系统功能要求:(1)输入密码功能。

输入密码时用“*”号或“-”显示。

在输入密码时,具有清除前一位密码功能(用CLR键)。

密码输入完毕,按(ENTER键)确认并生效。

(2)上锁功能。

在锁开状态下,通过(LOCK键)上锁。

(3)在锁合的状态下,通过密码开锁功能。

开锁时,直接在键盘上输入六位密码,按(ENTER键)确认,如果密码正确,转入锁开状态。

(4)在锁开状态下,修改密码功能。

在键盘上输入六位新的密码,按(ENTER键)确认,代替旧密码,并保存在RAM中。

(4)在开锁时,如果输入密码三次错误,产生声、光报警功能。

(5)0~9为密码键数字键,E为ENTER键,C为清除键CLR键,D作为上锁键LOCK键,如果用到其他键时,可自行定义。

2)进阶要求密码保存在PIC16F877A内部的EEPROM中,以防断电密码丢失。

(不使用外挂的EEPROM,如:AT24C02等)二、系统设计要求1)根据系统的功能和目标,画出系统功能框图。

2)根据系统功能框图用Proteus画出仿真电路图。

3)根据系统的功能要求,画出程序流程图。

4)根据程序流程图,用PIC C语言编写系统源程序。

5)进行编译、调试建立目标代码。

6)在Proteus环境下进行仿真。

三、设计报告报告内容包括系统设计思路、方案选择、器件选择及电路元器件明细表、系统功能框图、程序流程图、源程序清单、系统工作原理和设计心得等。

四、评分标准:1、完成《基本要求》者,得分80~89分;2、完成《基本要求》及《进阶要求》者,得分90~100分;五、设计时间安排十九周的星期一至星期五(2011年6月27日至7月1日)1)周一:布置任务,进行方案选择、器件选择。

基于PIC16F877A单片机的储能电池箱温度控制系统设计

基于PIC16F877A单片机的储能电池箱温度控制系统设计
DOI院10.19557/ki.1001-9944.2019.06.006
控制系统与智能制造
基于 PIC16F877A 单片机的储能电池箱温度控制系统设计
王 琦 1袁韩天兴 1袁贾 伟 2袁李林高 1
渊1.山西大学 自动化系袁太原 030013曰2.山西平朔煤矸石发电有限责任公司袁朔州 036800冤
摘要院储能电池组因数量多袁布置密集袁除受周围环境影响袁电池组自身也存在产热和散热
不平衡等热失控问题袁极易导致储能电池箱内温度变化明显袁而电池的使用寿命尧容量以
及安全稳定运行均与温度密切联系遥 该文采用PIC16F877A单片机对电池箱温度系统进行
在线监测和自动控制袁介绍了该温度控制系统的硬件组成尧传感器的工作原理以及部分软
件流程袁控制部分则采用模糊控制方法对温度和湿度2个生态因子参数进行智能控制遥
关键词院温度控制曰PIC16F877A曰DS18B20曰储能电池
中图分类号院TP273 文献标志码院粤
文章编号院员园园员鄄怨怨源源渊圆园19冤06鄄园园25鄄园4
Design of Temperature Control System for Energy Storage Battery Box Based on PIC16F877A Microcontroller
收稿日期院2019-03-22曰修订日期院2019-05-14 基金项目院国家自然科学基金项目渊U1610116冤曰山西省科技重大专项项目渊MD2016鄄02冤曰山西省研究生联合培养基地人才
培养资助项目渊2017JD03冤 作者简介院王琦渊1973要冤袁女袁硕士袁教授袁研究方向为测控系统集成与优化曰韩天兴渊1994要冤袁女袁在读硕士研究生袁研究方
1 系统总体方案

pic16f877a编程实例

pic16f877a编程实例

pic16f877a编程实例pic16f877a是一款常用的单片机,被广泛应用于嵌入式系统中。

它具有多种功能和强大的性能,可以实现各种应用需求。

本文将以pic16f877a编程实例为主题,介绍其基本特性和常见应用。

pic16f877a是一款8位单片机,采用哈佛架构,具有高性能和低功耗的特点。

它内置了8KB的程序存储器,368字节的数据存储器,以及35个I/O引脚,可以满足大多数嵌入式系统的需求。

我们来看一个简单的实例,通过pic16f877a控制LED灯的开关。

```c#include <pic16f877a.h>void main() {TRISB0 = 0; // 设置RB0为输出引脚while(1) {RB0 = 1; // 将RB0引脚电平设置为高,LED灯亮__delay_ms(1000); // 延时1秒RB0 = 0; // 将RB0引脚电平设置为低,LED灯灭__delay_ms(1000); // 延时1秒}}```在上面的程序中,我们首先将RB0引脚设置为输出引脚,然后进入一个无限循环。

在循环中,我们将RB0引脚电平设置为高,LED灯亮起,然后延时1秒;然后将RB0引脚电平设置为低,LED灯熄灭,再次延时1秒。

通过不断重复这个过程,我们可以实现LED灯的闪烁效果。

除了控制LED灯,pic16f877a还可以用来控制其他外设,如蜂鸣器、液晶显示屏等。

下面是一个使用pic16f877a控制蜂鸣器的实例。

```c#include <pic16f877a.h>void main() {TRISB0 = 0; // 设置RB0为输出引脚while(1) {RB0 = 1; // 将RB0引脚电平设置为高,蜂鸣器鸣叫__delay_ms(1000); // 延时1秒RB0 = 0; // 将RB0引脚电平设置为低,蜂鸣器停止鸣叫__delay_ms(1000); // 延时1秒}}```在上面的程序中,我们同样将RB0引脚设置为输出引脚,并进入一个无限循环。

PIC16F877A头文件中文注释

#ifndef _HTC_H_#warning Header file pic168xa.h included directly. Use #include <htc.h> instead. #endif/** Microchip单片机的头文件* PIC 16F873A chip* PIC 16F874A chip* PIC 16F876A chip* PIC 16F877A chip* 中档单片机*/#if defined(_16F874A) || defined(_16F877A)#define __PINS_40#endifvolatile unsigned char INDF @ 0x00;//间接寻址寄存器volatile unsigned char TMR0 @ 0x01;//定时器0volatile unsigned char PCL @ 0x02;//低8位程序计数器volatile unsigned char STATUS @ 0x03;//程序状态寄存器volatile unsigned char FSR @ 0x04;//特殊功能寄存器volatile unsigned char PORTA @ 0x05;//端口A寄存器volatile unsigned char PORTB @ 0x06;//端口B寄存器volatile unsigned char PORTC @ 0x07;//端口C寄存器#ifdef __PINS_40volatile unsigned char PORTD @ 0x08;//端口D寄存器volatile unsigned char PORTE @ 0x09;//端口E寄存器#endifvolatile unsigned char PCLATH @ 0x0A;//高5位程序计数器volatile unsigned char INTCON @ 0x0B;//中断控制寄存器volatile unsigned char PIR1 @ 0x0C;//中断标志寄存器PIR1volatile unsigned char PIR2 @ 0x0D;//中断标志寄存器PIR2volatile unsigned char TMR1L @ 0x0E;//T1低字节计数寄存器volatile unsigned char TMR1H @ 0x0F;//T1高字节计数寄存器volatile unsigned char T1CON @ 0x10;//TMR1控制寄存器volatile unsigned char TMR2 @ 0x11;//定时/计数器TMR2volatile unsigned char T2CON @ 0x12;//TMR2控制寄存器volatile unsigned char SSPBUF @ 0x13;//收/发数据缓冲器volatile unsigned char SSPCON @ 0x14;/*同步串口控制寄存器,对MSSP模块的功能和指标进行设置和定义*/volatile unsigned char CCPR1L @ 0x15;//捕获/比较/PWM寄存器低字节volatile unsigned char CCPR1H @ 0x16;//捕获/比较/PWM寄存器低字节volatile unsigned char CCP1CON @ 0x17;//CCP1CON寄存器volatile unsigned char RCSTA @ 0x18;//USART接收控制兼状态寄存器volatile unsigned char TXREG @ 0x19;//USART发生缓冲器volatile unsigned char RCREG @ 0x1A;//USART接收缓冲器volatile unsigned char CCPR2L @ 0x1B;//捕获/比较/PWM寄存器低字节volatile unsigned char CCPR2H @ 0x1C;//捕获/比较/PWM寄存器低字节volatile unsigned char CCP2CON @ 0x1D;//CCP2CON寄存器volatile unsigned char ADRESH @ 0x1E;//ADC转换结果寄存器高字节volatile unsigned char ADCON0 @ 0x1F;//A/D转换器开关位/* bank 1 registers */volatile unsigned char OPTION @ 0x81;/*/选择寄存器,用于配置TMR0/WDT预分频系数、外部INT中断、TMR0和端口B的弱上拉。

PIC16F877A之定时TMR0

PIC16F877A之定时TMR0编写下面的实验程序实现的功能是让RC 口所带的8 个LED 一个接一个的全亮起来,最后达到全亮后再一个一个的灭下去,这样反复循环,使用定时器查询方式控制延时,而不使用定时器的中断。

中断程序会在以后陆续写到上面来tmr0 equ 01hpcl equ 02hstatus equ 03hoption_reg equ 81hintcon equ 0bhportc equ 07htrisc equ 87htmr0data equ 15hcount equ 20hrp0 equ 5horg 0000hnopgoto mainorg 0005hmain nopbsf status,rp0movlw 00hmovwf triscmovlw 07hmovwf option_regbcf status,rp0clrf countloop1movf count,0call readmovwf portcincf count,1movlw 0fhandwf count,1call delaycall delaycall delaycall delaycall delaycall delaycall delaygoto loop1delaybcf intcon,2movlw tmr0datamovwf tmr0delay1btfss intcon,2goto delay1returnread addwf pcl,1retlw b’10000000’retlw b’11000000’retlw b’11100000’retlw b’11110000’retlw b’11111000’retlw b’11111100’retlw b’11111110’retlw b’11111111’retlw b’11111110’retlw b’11111100’retlw b’11111000’retlw b’11110000’retlw b’11100000’retlw b’11000000’retlw b’10000000’retlw b’00000000’end本程序利用的16F877A 的TMR0,具体如何设置请查找16F877C 中的INTCON、OPTION_REG 、TMR0 等相关特殊工作寄存器的功能说明。

基于PIC16F877A智能电子秤的设计

目录第1章前言 (1)1.1 选题的背景和意义 (1)1.2 国内外电子秤发展及成果 (2)1.3 研究现状 (3)1.3.1 影响因素 (3)1.3.2 产品质量 (3)1.3.3 发展方向 (4)1.3.4 电子秤的智能化 (4)1.4 电子秤设计的任务及要求 (4)第2章系统方案设计与论证 (6)2.1 系统方案的设计思路 (6)2.2 系统方案设计 (6)2.3 系统方案比较与论证 (6)2.3.1 单片机的选型 (6)2.3.2 称重传感器选型 (10)2.3.3 放大部分选型 (14)2.3.4 A/D转换器选型 (14)2.3.5 显示模块选型 (16)2.3.6 键盘输入选型 (18)2.3.7 语音芯片选型 (19)第3章系统硬件设计 (20)3.1 基于PIC16F877A的主控电路 (20)3.1.1 PIC16F877A简介 (20)3.1.2 PIC16F877A引脚介绍 (20)3.1.3 主控电路设计 (21)3.2 称重部分 (22)3.2.1 GF-7桥型称重器简介 (22)3.2.2 工作原理 (23)3.2.3 硬件电路 (23)3.3 测身高部分 (24)3.3.1 超声波测距原理 (24)3.3.2 测身高硬件电路设计 (24)3.4 显示部分 (26)3.5 语音播报部分 (27)3.6 键盘部分 (28)3.7 报警电路 (28)3.8 电源电路 (29)3.9 硬件低功耗设计 (29)3.9.1 低功耗元器件选择 (29)3.9.2 低功耗电路设计 (30)第4章软件设计 (31)4.1 称重部分软件设计 (31)4.2 测身高部分软件设计 (32)第5章结论 (36)致谢 (37)参考文献 (38)第1章前言目前,随着社会的发展、生活水平不断提高,人们越来越关注自己的身体健康。

许多人由于工作的压力和不良的饮食习惯,使得身体健康每况愈下,疾病也随之而来,而在这些人群中,患有肥胖和营养不良的病人居多。

PIC16F877A开发学习板用户手册


KEY_LED 实验步骤: 短接跳线 J23 将 hex 文件下载到单片机中 实验现象:按下 GPIO 键,松开后,led 点亮;按下 INT 健,松开后,led 灭 KEY_ZTJ 10、 矩阵键盘实验 KEY_JZH 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:按下按键,数码管显示键值 11、 定时器/计数器 T0 实验 T0_DSQ 实验步骤: 短接跳线 J23 将 hex 文件下载到单片机中 实验现象:下载代码,运行程序,LED 闪烁 T0_JS_1 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚
断电后数据保持,上电后,从断电时的值开始加(写入 24C02 的数据为 1 递加到 99,LCD1602 从 24C02 中读数据之后显示)
AT24C02 实验步骤: 短接跳线 J18 上面两个引脚和 J22 上面两个引脚 将 hex 文件下载到单片机中 将 1602 液晶屏插入 1602 接口 如果此时没有显示则按复位键便可正常显示 实验现象:1602 第一行显示数值,数值从 1 加到 99, 断电后数据保持,上电后,从断电时的值开始加 17、 模数转换 AD 实验 AD_1
将 hex 文件下载到单片机中 实验现象:LED 灯依次点亮 2、 数码管实验 SMG 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:8 个数码管依次显示 0~7 SMG_JT 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:数码管静态显示一个数字 74HC595_SMG 实验步骤: 短接跳线 J50 的 LED_ON 和中间脚 将 hex 文件下载到单片机中 实验现象:8 位数码管显示 0-7 3、 蜂鸣器实验 BUZZER 实验步骤: 短接跳线 J6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PIC16F877A的特殊功能配置CPU的特殊功能
BIT13CP:闪存程序存储器代码保护位
0:所有程序存储器代码保护
1:关闭代码保护
BIT12Unimplemented:读时为结果为1
BIT11DEBUG:在电路调试模式位
0:在电路调试功能有效,RB6和RB7专用于调试器
1:在电路调试功能失效,RB6和RB7用于本身的IO或其它功能BIT10-9WRT1-0:闪存程序存储器写使能位
WRT1WRT0说明
11写保护关闭,所有程序存储器由EECON控制写
100000h到00ffh写保护;0100h到1fffh由EECON控制写010000h到07ffh写保护;0800h到1fffh由EECON控制写000000h到0fffh写保护;1000h到1fffh由EECON控制写BIT8CPD:数据EEPROM存储器代码保护位
0:数据EEPROM存储器代码保护开启
1:数据EEPROM存储器代码保护关闭
BIT7LVP:低电压(单电源)的在线串行编程使能位
0:RB3/PGM是普通IO口功能,编程时MCLR管脚必须是高电压1:RB3/PGM是PGM功能,低电压编程使能
BIT6BOREN:欠压复位使能位
0:欠压复位失效
1:欠压复位使能
BIT5-4Unimplemented:读时结果为1
BIT3PWRTEN:上电延时定时器使能位
0:上电延时定时器使能
1:上电延时定时器失效
BIT2WDTEN:看门狗定时器使能位
0:看门狗失效
1:看门狗使能
BIT1-0:Fosc1:Fosc0:时钟源选择位
Fosc1Fosc0时钟源11RC振荡器
10外部石英高频晶振HS【频率范围见下表】01外部石英晶振XT【频率范围见下表】
00外部低频石英晶振LP【频率范围见下表】。

相关文档
最新文档