单片机自举编程

上传人:小** 文档编号:39187419 上传时间:2018-05-12 格式:DOC 页数:4 大小:20.50KB
返回 下载 相关 举报
单片机自举编程_第1页
第1页 / 共4页
单片机自举编程_第2页
第2页 / 共4页
单片机自举编程_第3页
第3页 / 共4页
单片机自举编程_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机自举编程》由会员分享,可在线阅读,更多相关《单片机自举编程(4页珍藏版)》请在金锄头文库上搜索。

1、;*单片机自举编程-单片机部分* ;*定义特殊寄存器* STATUSEQU03H;定义状态寄存器地址 PCON EQU8EH;定义电源控制寄存器 PORTCEQU07H;定义端口 C 的数据寄存器地址 TRISCEQU87H;定义端口 C 的方向寄存器 SPBRGEQU99H;定义 SPBRG 寄存器 RCSTAEQU18H;定义 RCSTA 寄存器 TXREGEQU19H;定义 TXREG 寄存器 TXSTAEQU98H;定义 TXSTA 寄存器 RCREGEQU1AH;定义 RCREG 寄存器 PIR1EQU0CH;定义第一外设中断标志寄存器 FSREQU 04H INDFEQU00H E

2、ECON1EQU18CH EECON2EQU18DH EEDATAEQU 10CH EEDATHEQU10EH EEADREQU10DH EEADRHEQU10FH ;*定义标志位* CEQU0H TRMTEQU01H SPENEQU07H;定义 SPEN 标志位 TXENEQU05H;定义 TXEN 标志位 BRGHEQU02H;定义 BRGH 标志位 PIR1EQU0CH;定义 PIR1 标志位 TXIFEQU04H;定义 TXIF 标志位 CRENEQU04H;定义 CREN 标志位 RCIFEQU05H;定义 RCIF 标志位 EEPGDEQU07H;定义 EEPGD 标志位 WREN

3、EQU02H;定义 WREN 标志位 WREQU 01H;定义 WR 标志位 RDEQU00H RP1EQU06H;定义状态寄存器中的页选位 RP1 RP0EQU05H;定义状态寄存器中的页选位 RP0 ;*定义用户寄存器* COUNT EQU70H;FLASH 单元(正文字节数)计数器 COUNT_MEQU71H;每行字节数计数器 COUNT_ZEQU72H;正文字节总计数器 ADDREQU73H ADDRH EQU74H ADDR_BEQU75H;低位地址备份,为读 FLASH 保存入口地址 ADDRH_BEQU76H;高位地址备份;*程序入口* ORG00HBTFSC PCON,0;判断

4、是否是上电复位,以便进入哪个程序GOTOREADFLASHBSF PCON,0 ;*串口设置* BANKSELSPBRG BSF TRISC,6 BSF TRISC,7 ;设置串口所用线 MOVLW0X0CMOVWFSPBRG;设置波特率 MOVLW0X24;4800MOVWFTXSTA; BANKSELRCSTA MOVLW0X90MOVWFRCSTA;*常数设置*CLRFCOUNT_Z;总计数器置 0 MOVLW 16H;设置每行的最多字节数MOVWF COUNT_M; MOVLW02H;判断一行数据中是否有MOVWF21H;正文 MOVLW00H;判断一行数据中的数据MOVWF22H;类

5、型MOVLW30H;设置接收到的一行数据的MOVWFFSR;缓存区的开始单元;*接收整行数据* NEXT BANKSELPIR1 BTFSSPIR1,RCIF GOTO$-1 MOVFRCREG,0MOVWF INDF;从 30H 单元开始存放一行的数据 INCFFSR,1;地址自加 1 DECFSZ COUNT_M,1;一行最多数据数自减 1 GOTO NEXT;*从 30H 单元读出冒号,但不处理* MOVF30H,0;*从 31H 单元读出正文字节数* MOVF31H,0 MOVWF COUNT ADDWF COUNT_Z,1 SUBWF 21H,0 ;判断一行数据是否有正文 BTFSS

6、STATUS,O;判断进/借位位GOTO NEXT_TX ;*接收有效地址* MOVF32H,0MOVWFADDRH;接收高位地址MOVWFADDRH_B;高位地址备份 MOVF33H,0MOVWF ADDR;接受低位地址MOVWFADDR_B;低位地址备份;*接收数据纪录类型* MOVF34H,0 SUBWF 22H,0 BTFSSSTATUS,1;判断辅助进/借位位 GOTONEXT_TX;*计数器折半* BCFSTATUS,0;FLASH 存储器数据宽度是 14 位,要存放 2 个字节 RRFCOUNT,0;相对就要把通用寄存器的 2 个单元内容放进 1 个单元的;FLASH 存储器MO

7、VLW35H;正文数据在缓存区的开始单元MOVWF FSR;*程序写入 FLASH* WRITEFLASH BSF STATUS,RP1;选体 2 BCFSTATUS,RP0MOVF ADDR,0MOVWF EEADR;低地址赋值MOVF ADDRH,0MOVWF EEADRH;高地址赋值MOVF INDF,0MOVWF EEDATA;前数据eedataINCF FSR,1MOVF INDF,0 MOVWF EEDATH;后数据eedath INCF FSR,1BSF STATUS,RP0;选 FLASH 为访问对象 BSF EECON1,EEPGD;标准写入操作BSF EECON1,WREN

8、MOVLW 55HMOVWF EECON2MOVLW 0AAHMOVWF EECON2BSF EECON1,WRNOPNOPBCF EECON1,WRENBSF STATUS,RP1BCF STATUS,RP0;体 2 MOVLW01H ADDWF ADDR,1;写入地址加 1BTFSCSTATUS,0INCFADDRH,1;如果进位,addrh 还要加 1 DECFSZ COUNT,1 GOTO WRITEFLASH;*回传整行数据接收完信号* NEXT_TXBANKSELTXSTA BTFSSTXSTA,TRMT GOTO $-1 BANKSELTXREGMOVLW88H;发送整行接收完标志 88HMOVWFTXREG GOTONEXT;*读出 FLASH 中的程序*?怎么读? READFLASH BCFSTATUS,RP0 BSF STATUS,RP1 MOVFADDR_B,0MOVWFEEADR MOVFADDRH_B,0MOVWFEEADRH BSF STATUS,RP0 BSF EECON1,EEPGD BSF EECON1,RD NOP NOP待续

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号