随笔分类 - MCU
摘要:#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> void port_init(void) { DDRB = 0xff; PORTB = 0xff; DDRD = 0x00; PORTD |= (1 << 2); } int main(void) { port_init(); GICR |= (1 << INT0); sei(); while(1) { ; } }ISR(INT0_vect)...
阅读全文
摘要://*******************电子园PIC16F877A开发板 数码管计数器实验***************** // //CKP=0; 空闲为低电平 //CKP=1; 空闲为高电平 //STAT_CKE=0; SDO后沿采样 //STAT_CKE=1; SDO前沿采样 // //STAT_SMP=0; //在数据输出时间的中间采样输入数据 //ST...
阅读全文
摘要://*****************电子园PIC16F877A开发板 普通IO驱动74595实验*************** // //PIC16F877A 实验板 // //mcu: PIC16F877A 4MHz //2010年7月10日21:52:30 //***************************************************************...
阅读全文
摘要://****************电子园PIC16F877A开发板 数码管动态扫描实验**************** // // //mcu: PIC16F877A 4MHz //2010年12月22日9:36:29 //************************************************************************* #include ...
阅读全文
摘要://*****************电子园PIC16F877A开发板 SPI总线驱动74595实验*************** // //CKP=0; 空闲为低电平 //CKP=1; 空闲为高电平 //STAT_CKE=0; SDO后沿采样 //STAT_CKE=1; SDO前沿采样 // //STAT_SMP=0; //在数据输出时间的中间采样输入数据 //...
阅读全文
摘要:PIR1 Register The PIR1 register contains the individual flag bits for the peripheral interrupts. PIR1 REGISTER PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF SSPIF:Synchronous Serial Port Interrupt Flag bit 1 = The SSP interrupt condition has occurred and must be cleared in software before returnin
阅读全文
摘要:/****************************************** ******PIC16F877A 内部EEPROM读写实验******* Author:hnrain Date:2010-12-26 Version:V0.1 Email:hnrain1004@gmail.com Forum:http://bbs.cepark.com _____________________...
阅读全文
摘要:单片机位数概念:单片机是多少位是取决于数据总线的位数,如常用的8位,取数据宽度为8位,每次传送一个字节。 PIC的哈佛总线结构而言,程序存储器使用独立的指令总线,所以不受数据总线的限制。 PIC单片机的系统配置字:用于设定单片机的程序保护,在线调试,低压编程,掉电锁存复位使能位,上电定时,看门狗,振荡器模式等 基本的工作环境。只能由软件在烧写程序时设置,用户在程序中不能访问。 配置方式...
阅读全文
摘要:PIC16F87X采用的是精简指令集(RISC)结构,指令效率高,功能强。指令为单字的宽字位(14)指令。
阅读全文
摘要:让我们来从PIC的指令结构上来分析一下为什么PIC中要有BANK和PAGE的设置吧。先来看一下为什么PIC中要把RAM区划分多个BANK。 仔细观察PIC汇编语言指令的格式,一条完整的汇编语言指令语句通常是这样的:标号 操作码助记符 操作数1,操作数2;注释。其中,主体部分是‘操作码助记符 操作数1,操作数2’。 例如: 指令:MOVF 33,1 操作码助记符:MOVF ; 操作数1:3...
阅读全文
摘要:可能的原因:也许,您该检查一下您的电源走线是不是够粗,或者,程序是不是一开始运行就点亮LED或者叫BUZZER?因为,PICmicro开始任务的电压通常是蛮低的。如果因为上述原因而让电压骤降,可能会让Vcc电压瞬间掉至reset电压以下,而造成重置。如果您的示波器不够好,很有可能根本观察不到此电压变动之状况。 WDT TIMEOUT 的标准时间为18mSec, 但是非常重要的一点, WDT TIM...
阅读全文
摘要:我是初次使用PIC单片机,对PICC的编程规范不了解,在编译程序时老是出问题。现在介绍两个最常见的问题给大家,看看有没有和我遇到一样问题的。 错误1:变量定义赋值先后顺序问题很重要 开发环境为MPLAB IDE V7.43 + PICC 。如下两种代码书写方式,在补充完整之后,哪一个会编译出错?( flag_sendKeyByte 为全局位变量,已定义过) A: flag_sendKeyByt...
阅读全文
摘要: R R R R R R ─ ─ D/A P S R/W UA BF 地址:94h上电值:00h │ │ │ │ │ │ │ │ └┬┘ │ │ │ │ │ └────...
阅读全文
摘要:WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 地址:14h上电值:00h │ │ │ │ │ │ │ │ │ │ ├───────────── ─────┘ │ │ │ │ │ │ │ │ │ └── 同步串行口(SSP)模式选择 │ │ │ │ 0000= SPI主控模式,时针=OSC/4 │ │ │ │ 0001= SPI主控模式,时针=OSC/16 │ │ │ │ 0010= SPI主控模式,时针=OSC/64 │ │ │ │ 0011= SPI主控模式,时钟=TMR2输出/2 │ │ │ │ 0100= SPI从属模式,时钟=SCK脚输入,
阅读全文
摘要:何谓读-修改-写,导致的问题及其解决之道: 只要PICmicro的命令,所处理的FILE (暂存器,内存,和I/O的统称),其最终的值,和命令处理前的值有关,那么,这种命令便是所谓的读-修改-写命令。因为这类命令的操作,可以再细分为三个小步骤,即是读(READ),修改(MODIFY),接著才是写(WRITE)。 如:ADDWF,DECF,IORWF,XORWF,BSF,BCF,‥‥等等皆是。 在...
阅读全文
摘要:/**************************** Title:PIC16F877A LED闪烁实验 Forum:http://bbs.cepark.com Author:hnrain Date:2010-12-11 Email:hnrain1004@gmail.com 知识重点: #define Setbit(y,x) y|=(1(x)) //setb(p1,2); p12=1; #define Clrbit(y,x) y&=~(1(x)) //clrb(p1,2); p12=0; #define Getbit(y,x) (0x01&(y(x))) //获取某一位值 **
阅读全文
摘要:代码
阅读全文
摘要:不管学什么东西,官方的资料都是最好的。PIC16F877A的官方资料,DATASHEET,相应功能模块的应用。非常的全。关键是还有中文版。http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010242
阅读全文
摘要:上周在做一个项目时,需要对测试数据实时的保存,以被重新上电后读取.采用了PIC的内部EEPROM,正常读取时没有什么问题.反复上电掉电就出现了EEPROM被清0(改写). 查阅相关资料:EEROM写过程包括两个阶段:先擦除(电压为20V) 再写入(电压18V);EEPROM在写入过程中如果电压不稳定,很容易导致错误.先使用了软件冗余法,同一个data写在连续3个地址,使用时比较,只有2个相同时才使用.这样做,反复上电掉电出错几率小了很多,但是还是会出错.在反复上电100多次时还是出错.另一个解决办法就是使能BOD,写EEPROM时,先检测BOD.网上一位兄弟使用此方法反复上电2000多次才错误
阅读全文

浙公网安备 33010602011771号