维库电子市场网
登录 免费注册 首页 | 行业黑名单 | 委托交易 | 帮助 | English
 
IC供应
IC求购
非IC供应
非IC求购
电子资讯
技术资料
商人论坛
 
技术文章 PDF资料 IC价格 引脚说明 电路图 IC替换 IC厂商 电子辞典
作者 主题 内容
采购元器件好去处--维库电子市场网推荐
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

PIC12F675的初始化(I/O操作)

来源:21ic 作者:geraldwang 栏目:单片机
PIC12F675的初始化(I/O操作)
这几天新买回一个PICKit 1,由于以前一直用WAVE G6E做16C54的仿真,因此对12F675的操作不太熟悉,一些MPLAB6.2中的新指令也不会使用。经过几天的摸索,结合Kit 1自带的程序范例和DATASHEET,得到12F675的I/O操作初始化程序如下:
ORG 0x00    
BANKSEL  0x80     ; BANK1
movwf    OSCCAL     ; update register with factory cal VALUE
movlw    0ch     ; set direction bits so LEDs 3 and 4 are outputs
movwf    TRISIO     ; all others are inputs (high-z)
clrf    ANSEL     ; configure A/D I/O as DIGITAL
BANKSEL 0x00       ; SWITCH BACK to PORT MEMORY bank
movlw    07h       ; configure comparator inputs as DIGITAL I/O
movwf    CMCON        ;

1楼: >>参与讨论
lockma
PIC12F675的初始化

1.ORG 0x00    
2.BANKSEL  0x80     ; BANK1
3.movwf    OSCCAL     ; update register with factory cal VALUE
4.movlw    0ch     ; set direction bits so LEDs 3 and 4 are outputs
5.movwf    TRISIO     ; all others are inputs (high-z)
6.clrf    ANSEL     ; configure A/D I/O as DIGITAL
7.BANKSEL 0x00       ; SWITCH BACK to PORT MEMORY bank
8.movlw    07h       ; configure comparator inputs as DIGITAL I/O
9.movwf    CMCON        ;

1.ORG 0x00 -- PIC 内含中断的蕊片,程式的启始位置是由 0x00 开始(**注),而不含中断的蕊片,程式的启始位置是由 最后一个位置开始,(0x1ff,0x3ff,0x7ff 开始).
  **注: 这是一般教大家使用是这种说法,但内含 RC 振荡的 蕊片,不管它有无内含中断,程式的启始位置是由 最后一个位置开始,但最后一个位置你不能去使用它,因为它是'MICROCHIP 生产时',烧录 'RC 振荡'的校正值,(movlw xx),所以 PC 继续执行下一个位置 0x00.(PC --> Program counter)

2.BANKSEL  0x80     ; BANK1  **** 不知这 BANKSEL 的 macro 定义如何?
选择第二个 Bank,(第二组特殊寄存器), 但 W 的值不能被破坏,所以BANKSEL 的 macro 定义要注意!!!

3.movwf    OSCCAL   ; 将 RC 振荡的频率校正值存入 OSCCAL,只在选择内部 RC 振荡才有用.

4.movlw    0ch     ; set direction bits so LEDs 3 and 4 are outputs
5.movwf    TRISIO     ; all others are inputs (high-z)
GPIO bit 2, bit 3 设为输入,其于的 I/O 脚设为输出.

6.clrf    ANSEL     ; configure A/D I/O as DIGITAL
设定有 A/D 功能的脚位,全部做 I/O 用,不做 A/D 读取.

7.BANKSEL 0x00       ; SWITCH BACK to PORT MEMORY bank
选择第一个 Bank,(第一组特殊寄存器)

8.movlw    07h       ; configure comparator inputs as DIGITAL I/O
9.movwf    CMCON     ;
关掉'比较器'功能.(17,18,19 全部做 I/O 用)




参与讨论
昵称:
讨论内容:
 
 
相关帖子
欢迎大家讨论,程序跑飞问题
PIC对C语言支持的不好,这是最大的缺陷.
聊聊私活
请教:用32768的晶振,AD的延时是多少?
初次pic c综合调试


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号