找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3741|回复: 0
收起左侧

实验一 闪灯实验(Hello World)

[复制链接]
ID:51024 发表于 2014-8-14 14:22 | 显示全部楼层 |阅读模式
实验前的准备:
MPLAB IDE v8.80  (http://pan.baidu.com/s/1qWwhONM
Pickit 2 Programmer/Debugger v2.61(http://pan.baidu.com/s/1jGC9ei6
阅读PIC16F886的datasheet (http://pan.baidu.com/s/1sjrwgmp
要求:
1,用汇编语言写程序,使LED灯闪动。
2,记录问题
3,软件仿真


我做出来的结果:使LED灯亮,但还不会闪动。

MPLAB IDE 建工程的过程参考:
PIC教程3-点亮LED②软件  http://wenku.baidu.com/link?url= ... PCXy1DP0C3GKSt6YQI3
MPLAB教程(http://pan.baidu.com/s/1ntNstG9

PICKIT使用参考:
PICkit2 User Guide 51553E (http://pan.baidu.com/s/1kT1HGX5

我的代码 :
;LED.asm
LIST p=16f886
INCLUDE p16f886.inc
ORG 0x00
BANKSEL TRISC
CLRF TRISC
CLRF STATUS
MOVLW B'00001111'
MOVWF PORTC
END

我的LED灯接到RC3上,亮。
不理解的地方:
PICKIT 2中选择5V on ,测得Vdd=4.2V,万用表直流电压档测得PIN RC3 是2.7V ,示波器测时发现RC3引脚是频率是50Hz,幅值是2.7V的正方波。。。神啊,求解释。。。真心不理解。。。

1,在只要求结果而先验知识为0的情况下应当选择风险最小、不可控因素最少的道路。硬件要最简单(最小系统),软件要最简单(尽可能少写指令,软件对器件资源的依赖尽可能少)。要用最简单的方法解决问题。让风险可控。
2,MPLAB IDE安装漏选Pickit2支持选项
LED与电阻
下载器连接
防止外部电路对编程信号的影响和编程信号对外部电路的影响,单片机功能配置位CONFIG1,CONFIG2
PIC内部组织形式
BANKSEL PORTC
=>BCF STATUS,RP1
     BCFSTATUS,RP0
尽量把同一分区的操作放在一起,以减少编译器生成的代码量

端口操作要设置为输出方式
延时程序段
PIC汇编变量存放在哪里?判断跳转指令可以用跳转
incf xxx,w
incf xxx,f

symbol not previously defined
movwf TRISC 错误
#include p16f886.inc

访问SFR实际是对某一地址的访问
TRISC EQU H'0087'

寻址方式
立即数寻址:操作数直接放在指令中
movlw 0x55(PORTA s实际放得是PORTA的地址,不要指望放变量)
直接寻址
操作数地址直接在指令当中
movwf 0x55
间接寻址
操作数地址放在寄存器中
引用寄存器简介访问  INDF


为什么会遇到错误?
pickit2下载不稳定:有时会成功,有时不能成功——一切皆有可能,错误可能性排序,一一排除
参考资料:勘误表 PIC16F882/883/886/887  FamilySilicon Errata and Data Sheet Clarification
LVP编程:LVP enable 时RB3编程指示位高进入编程状态。LVP默认为低,enable.RB3低正常工作,高编程。CMOS工艺不能把输入悬空。允许LVP功能,则PB3引脚在运行时不能为高或悬空。


完善实验一
复现以前的错误,找到唯一的原因。

做实验的额目的在于找到所有可能的错误,搞清楚不确定的问题。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表