摘要: PICC中最好用前减来控制循环体。 来看看下面的语句: for(x = 100; –x;){;}和for(x = 0; x 100; x++){;} 在字面上2者意思一样的,便是可以能过汇编查看代码。后者代码雍长,而前者就很好的汇编出了简洁的代码。所以在PICC中最好用前者的形式来写循环体,好的C编译器会自动把增量循环化为减量循环。 PICC的位操作: 要是需要一个地址固定的变量来位操作... 阅读全文
posted @ 2010-12-25 23:35 hnrainll 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 单片机位数概念:单片机是多少位是取决于数据总线的位数,如常用的8位,取数据宽度为8位,每次传送一个字节。   PIC的哈佛总线结构而言,程序存储器使用独立的指令总线,所以不受数据总线的限制。 PIC单片机的系统配置字:用于设定单片机的程序保护,在线调试,低压编程,掉电锁存复位使能位,上电定时,看门狗,振荡器模式等 基本的工作环境。只能由软件在烧写程序时设置,用户在程序中不能访问。 配置方式... 阅读全文
posted @ 2010-12-25 17:05 hnrainll 阅读(401) 评论(0) 推荐(0) 编辑
摘要: PIC16F87X采用的是精简指令集(RISC)结构,指令效率高,功能强。指令为单字的宽字位(14)指令。   阅读全文
posted @ 2010-12-25 16:47 hnrainll 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 让我们来从PIC的指令结构上来分析一下为什么PIC中要有BANK和PAGE的设置吧。先来看一下为什么PIC中要把RAM区划分多个BANK。 仔细观察PIC汇编语言指令的格式,一条完整的汇编语言指令语句通常是这样的:标号 操作码助记符 操作数1,操作数2;注释。其中,主体部分是‘操作码助记符 操作数1,操作数2’。 例如: 指令:MOVF 33,1 操作码助记符:MOVF ; 操作数1:3... 阅读全文
posted @ 2010-12-25 15:38 hnrainll 阅读(1714) 评论(0) 推荐(1) 编辑
摘要: 可能的原因:也许,您该检查一下您的电源走线是不是够粗,或者,程序是不是一开始运行就点亮LED或者叫BUZZER?因为,PICmicro开始任务的电压通常是蛮低的。如果因为上述原因而让电压骤降,可能会让Vcc电压瞬间掉至reset电压以下,而造成重置。如果您的示波器不够好,很有可能根本观察不到此电压变动之状况。 WDT TIMEOUT 的标准时间为18mSec, 但是非常重要的一点, WDT TIM... 阅读全文
posted @ 2010-12-25 14:47 hnrainll 阅读(1903) 评论(0) 推荐(0) 编辑
摘要: 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 第 1 招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。 例如:字符串的赋值。 方法 A,通常的办法: #define LEN 32 char string1 [LE... 阅读全文
posted @ 2010-12-25 14:31 hnrainll 阅读(533) 评论(0) 推荐(1) 编辑
摘要: 一、前言 “程序设计”的真谛是什么?许多初学者的理解是“写代码”。但是,在匠人看来,把“程序设计”理解为“写代码”,就像把“电路设计”理解为“画PCB”一样。 新手们苦恼的问题是,他们只会“写代码”。他们一接到新的项目,总是在第一时间就爬到键盘上去敲代码。新手们的精力总是比较旺盛,他们加班加点,两天就把所有代码敲完。然后他们会用十倍或几十倍以上的时间去调试,中间伴随着几次三番的推倒重来。最后,他们... 阅读全文
posted @ 2010-12-25 12:41 hnrainll 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 我是初次使用PIC单片机,对PICC的编程规范不了解,在编译程序时老是出问题。现在介绍两个最常见的问题给大家,看看有没有和我遇到一样问题的。 错误1:变量定义赋值先后顺序问题很重要 开发环境为MPLAB IDE V7.43 + PICC 。如下两种代码书写方式,在补充完整之后,哪一个会编译出错?( flag_sendKeyByte 为全局位变量,已定义过) A: flag_sendKeyByt... 阅读全文
posted @ 2010-12-25 12:30 hnrainll 阅读(5585) 评论(0) 推荐(0) 编辑
摘要:             R     R      R     R     R     R          ─  ─   D/A    P     S    R/W    UA    BF    地址:94h上电值:00h          │  │   │    │    │    │    │    │          └┬┘   │    │    │    │    │    └────... 阅读全文
posted @ 2010-12-25 11:01 hnrainll 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 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脚输入, 阅读全文
posted @ 2010-12-25 10:56 hnrainll 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 何谓读-修改-写,导致的问题及其解决之道: 只要PICmicro的命令,所处理的FILE (暂存器,内存,和I/O的统称),其最终的值,和命令处理前的值有关,那么,这种命令便是所谓的读-修改-写命令。因为这类命令的操作,可以再细分为三个小步骤,即是读(READ),修改(MODIFY),接著才是写(WRITE)。 如:ADDWF,DECF,IORWF,XORWF,BSF,BCF,‥‥等等皆是。 在... 阅读全文
posted @ 2010-12-25 09:45 hnrainll 阅读(492) 评论(0) 推荐(0) 编辑
摘要: /**************************** 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))) //获取某一位值 ** 阅读全文
posted @ 2010-12-25 02:49 hnrainll 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 代码 阅读全文
posted @ 2010-12-25 02:08 hnrainll 阅读(639) 评论(0) 推荐(0) 编辑
摘要: 代码 阅读全文
posted @ 2010-12-25 01:44 hnrainll 阅读(4093) 评论(0) 推荐(0) 编辑