PIC 实例集源程序.docx

上传人:b****1 文档编号:2523003 上传时间:2023-05-03 格式:DOCX 页数:235 大小:54.32KB
下载 相关 举报
PIC 实例集源程序.docx_第1页
第1页 / 共235页
PIC 实例集源程序.docx_第2页
第2页 / 共235页
PIC 实例集源程序.docx_第3页
第3页 / 共235页
PIC 实例集源程序.docx_第4页
第4页 / 共235页
PIC 实例集源程序.docx_第5页
第5页 / 共235页
PIC 实例集源程序.docx_第6页
第6页 / 共235页
PIC 实例集源程序.docx_第7页
第7页 / 共235页
PIC 实例集源程序.docx_第8页
第8页 / 共235页
PIC 实例集源程序.docx_第9页
第9页 / 共235页
PIC 实例集源程序.docx_第10页
第10页 / 共235页
PIC 实例集源程序.docx_第11页
第11页 / 共235页
PIC 实例集源程序.docx_第12页
第12页 / 共235页
PIC 实例集源程序.docx_第13页
第13页 / 共235页
PIC 实例集源程序.docx_第14页
第14页 / 共235页
PIC 实例集源程序.docx_第15页
第15页 / 共235页
PIC 实例集源程序.docx_第16页
第16页 / 共235页
PIC 实例集源程序.docx_第17页
第17页 / 共235页
PIC 实例集源程序.docx_第18页
第18页 / 共235页
PIC 实例集源程序.docx_第19页
第19页 / 共235页
PIC 实例集源程序.docx_第20页
第20页 / 共235页
亲,该文档总共235页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PIC 实例集源程序.docx

《PIC 实例集源程序.docx》由会员分享,可在线阅读,更多相关《PIC 实例集源程序.docx(235页珍藏版)》请在冰点文库上搜索。

PIC 实例集源程序.docx

PIC实例集源程序

PIC实例源程序

;#INCLUDE

;;delay0.1secfor16MHz

;defineRAM

CBLOCK

R0_DLY0_1S,R1_DLY0_1S,R2_DLY0_1S

ENDC

DLY0_1S:

MOVLW10;10*10mS=0.1S

MOVWFR2_DLY0_1S

DLY0_1S3:

MOVLW100;100*0.1mS=10mS

MOVWFR1_DLY0_1S******************

DLY0_1S2:

MOVLW100;100*1uS=0.1mS

MOVWFR0_DLY0_1S

DLY0_1S1:

NOP;1ck

DECFSZR0_DLY0_1S;1ck

GOTODLY0_1S1;2ck(totaly4ck=1uS)

DECFSZR1_DLY0_1S

GOTODLY0_1S2

DECFSZR2_DLY0_1S

GOTODLY0_1S3

RETURN************************

;#INCLUDE;

;;delay100usecfor16MHz

;defineRAM

CBLOCK

R0_DLY100uS,R1_DLY100uS

ENDC

DLY100uS:

****************************

MOVLW100;100*1uS=100uS

MOVWFR0_DLY100uS

DLY100uS1:

NOP;1ck

DECFSZR0_DLY100uS;1ck

GOTODLY100uS1;2ck(totaly4ck=1uS)

RETURN***************************

;#INCLUDE;

;;delay2.5msecfor16MHz;

;defineRAM

CBLOCK

R0_DLY2_5mS,R1_DLY2_5mS

ENDC

DLY2_5mS:

MOVLW10;10*250uS=2.5mS

MOVWFR1_DLY2_5mS******************

DLY2_5m1:

MOVLW250;250*1uS=250uS

MOVWFR0_DLY2_5mS

DLY2_5m2:

NOP;1ck

DECFSZR0_DLY2_5mS;1ck

GOTODLY2_5m2;2ck(totaly4ck=1uS)

DECFSZR1_DLY2_5mS

GOTODLY2_5m1

RETURN*************************

;#INCLUDE;

;;delay4msecfor16MHz;

;defineRAM

CBLOCK

R0_DLY4mS,R1_DLY4mS

ENDC

DLY4mS:

MOVLW20;20*200uS=4mS

MOVWFR1_DLY4mS********************

DLY4mS1:

MOVLW200;200*1uS=200uS

MOVWFR0_DLY4mS

DLY4mS2:

NOP;1ck

DECFSZR0_DLY4mS;1ck

GOTODLY4mS2;2ck(totaly4ck=1uS)

DECFSZR1_DLY4mS

GOTODLY4mS1

RETURN************************

LISTP=16F877,R=DEC

INCLUDE

CBLOCK

R0,R1

ENDC

ORG0

NOP

MOVLW5

MOVWFR1

AGAIN2:

MOVLW200

MOVWFR0

AGAIN1:

NOP

DECFSZR0

GOTOAGAIN1

DECFSZR1

GOTOAGAIN2

GOTO$

END***********

LISTP=16F877,R=DEC

INCLUDE

CBLOCKH'20';USEFULFORRAMDECLARATION

ENDC

ORG0

NOP

BANKSELTRISD

MOVLW0

MOVWFTRISD

BANKSELPORTD

AGAIN:

MOVLWB'11111110'

MOVWFPORTD

CALLD100mS

MOVLWB'11111101'

MOVWFPORTD

CALLD100mS

MOVLWB'11111011'

MOVWFPORTD

CALLD100mS

MOVLWB'11110111'

MOVWFPORTD

CALLD100mS

GOTOAGAIN;REPEAT

CBLOCK

R0_D100mS,R1_D100mS,R2_D100mS

ENDC

D100mS:

MOVLW10

MOVWFR0_D100mS

D100mS1:

MOVLW50

MOVWFR1_D100mS

D100mS2:

MOVLW200

MOVWFR2_D100mS

D100mS3:

DECFSZR2_D100mS

GOTOD100mS3

DECFSZR1_D100mS

GOTOD100mS2

DECFSZR0_D100mS

GOTOD100mS1

RETURN

END************

;EX0401.ASM

LISTP=16F877,R=DEC

#INCLUDE

CBLOCK0X20

ENDC

;DEFINERAM

CBLOCK

R0;user'sregister

DATBF1,DATBF2

ENDC

;definepins(example)

PORTSEGEQUPORTD

TRISEGEQUTRISD

PORTCAEQUPORTB

TRICAEQUTRISB

ORG0

NOP

BANKSELTRICA

MOVLW0

MOVWFTRICA

MOVWFTRISEG

BANKSELPORTCA

MOVLW0XFF

MOVWFPORTCA

MOVLWH'12';display'1234'

MOVWFDATBF2*******

MOVLWH'34';

MOVWFDATBF1

FOURLED:

MOVFDATBF1,W

CALLTABLE

MOVWFPORTSEG

MOVLWB'11111110'

MOVWFPORTCA

CALLDLY2_5mS

SWAPFDATBF1,W

CALLTABLE

MOVWFPORTSEG

MOVLWB'11111101'

MOVWFPORTCA

CALLDLY2_5mS

MOVFDATBF2,W

CALLTABLE

MOVWFPORTSEG

MOVLWB'11111011'

MOVWFPORTCA

CALLDLY2_5mS

SWAPFDATBF2,W

CALLTABLE

MOVWFPORTSEG

MOVLWB'11110111'

MOVWFPORTCA

CALLDLY2_5mS

GOTOFOURLED

;TABLEREADER

TABLE

ANDLWB'00001111'

ADDWFPCL

TABLE1

RETLWH'C0';0

RETLWH'F9';1

RETLWH'A4';2

RETLWH'B0';3

RETLWH'99';4

RETLWH'92';5

RETLWH'82';6

RETLWH'F8';7

RETLWH'80';8

RETLWH'90';9

RETLWH'88';A

RETLWH'83';b

RETLWH'C6';C

RETLWH'A1';d

RETLWH'86';E

RETLWH'8E';F

#INCLUDE

;delay2.5msecfor16MHz

END*****************

;EX0501.ASM

LISTP=16F877,R=DEC

#INCLUDE

CBLOCK0X20

ENDC;defineRAM

CBLOCK

KYBUF,R0

ENDC

ORG0

NOP;

BANKSELTRISB

MOVLW0

MOVWFTRISB

MOVWFTRISD

BANKSELPORTB

MOVLWH'FF'

MOVWFPORTB

CLRFDATBF1

CLRFDATBF2

MAIN:

CALLFOURLED

CALLKB4X4;readkyboard

BTFSCKYBUF,4

GOTOMAIN

MOVFKYBUF,W

MOVWFDATBF1

MAIN2:

CALLKB4X4

BTFSSKYBUF,4

GOTOMAIN2

GOTOMAIN;defineport

PORT4X4EQUPORTD

TRIS4X4EQUTRISD

KB4X4:

MOVLWH'FF'

MOVWFPORT4X4

BANKSELTRIS4X4

MOVLWB'00001111'

MOVWFTRIS4X4

BANKSELPORT4X4

MOVLWB'11101111'

MOVWFPORT4X4

MOVLWH'10'**********

BTFSSPORT4X4,0

MOVLW0

BTFSSPORT4X4,1

MOVLW1

BTFSSPORT4X4,2

MOVLW2

BTFSSPORT4X4,3

MOVLW3

MOVWFKYBUF

BTFSSKYBUF,4

GOTOKB4X4_1

BSFPORT4X4,4

BCFPORT4X4,5

CALLKB4X4_DLY

BTFSSPORT4X4,0

MOVLW4

BTFSSPORT4X4,1

MOVLW5

BTFSSPORT4X4,2

MOVLW6

BTFSSPORT4X4,3

MOVLW7

MOVWFKYBUF

BTFSSKYBUF,4

GOTOKB4X4_1

BSFPORT4X4,5

BCFPORT4X4,6

CALLKB4X4_DLY

BTFSSPORT4X4,0

MOVLW8

BTFSSPORT4X4,1

MOVLW9

BTFSSPORT4X4,2

MOVLWH'A'

BTFSSPORT4X4,3

MOVLWH'B'

MOVWFKYBUF

BTFSSKYBUF,4

GOTOKB4X4_1

BSFPORT4X4,6

BCFPORT4X4,7

CALLKB4X4_DLY

BTFSSPORT4X4,0

MOVLWH'C'

BTFSSPORT4X4,1

MOVLWH'D'

BTFSSPORT4X4,2

MOVLWH'E'

BTFSSPORT4X4,3

MOVLWH'F'

MOVWFKYBUF

KB4X4_1:

BSFPORT4X4,7

RETURN

KB4X4_DLY:

NOP

NOP

NOP

RETURN

#INCLUDE

PORTSEGEQUPORTD

TRISEGEQUTRISD

PORTCAEQUPORTB

TRICAEQUTRISB

#INCLUDE

END****************

;EX0601.ASM

LISTP=16F877,R=DEC

#INCLUDEP16F877.INC

CBLOCK0X20

ENDC;defineRAMs

ORG0

NOP

BANKSELTRISB

MOVLW0

MOVWFTRISB

MOVWFPORTD

BANKSELPORTB

MOVLWH'FF'

MOVWFPORTB

CLRFDATBF1

CLRFDATBF2

MAIN:

BANKSELADCON1

MOVLWB'10001110'

MOVWFADCON1

BANKSELADCON0

MOVLWB'01000001'

MOVWFADCON0

CALLDLY2_5mS

MAIN1:

BSFADCON0,GO

MAIN2:

BTFSCADCON0,GO

GOTOMAIN2

BANKSELADRESL

MOVFADRESL,W

BANKSELDATBF1

MOVWFDATBF1

MOVFADRESH,W

MOVWFDATBF2

CALLFOURLED

GOTOMAIN1

#INCLUDE

PORTSEGEQUPORTD

TRISEGEQUTRISD**********

PORTCAEQUPORTB

TRICAEQUTRISB

#INCLUDE

END****************

;8BITSA/D+HEXTOBCDCONVERTER

LISTP=16F877,R=DEC

#INCLUDEP16F877.INC

CBLOCK0X20

ENDC

;DEFINERAM

CBLOCK

BCDBFL,BCDBFH

ENDC

ORG0

NOP

BANKSELTRISB

MOVLW0

MOVWFTRISB

MOVWFPORTD

BANKSELPORTB

MOVLWH'FF';TURNOFFLEDSMOVWFPORTB

CLRFDATBF1

CLRFDATBF2

MAIN:

BANKSELADCON1

MOVLWB'00000100'

MOVWFADCON1

BANKSELADCON0******

MOVLWB'01001001'

MOVWFADCON0

CALLDLY2_5mS

MAIN1:

BSFADCON0,GO

MAIN2:

BTFSCADCON0,GO

GOTOMAIN2

MOVFADRESH,W

CALLHX2BCD

MOVFBCDBFL,W

MOVWFDATBF1

MOVFBCDBFH,W

MOVWFDATBF2

CALLFOURLED

GOTOMAIN1

#INCLUDE

PORTSEGEQUPORTD

TRISEGEQUTRISD

PORTCAEQUPORTB

TRICAEQUTRISB

#INCLUDE

;HEXTOBCDCONVERTER

;convertwtoBCDBFH/BCDBFL

CBLOCK;defineRAM

R0_HX2BCD

ENDC

HX2BCD:

MOVWFR0_HX2BCD

CLRFBCDBFL

CLRFBCDBFH

HX2BCD1:

MOVLW.100

SUBWFR0_HX2BCD,W

SKPC

GOTOHX2BCD2

MOVWFR0_HX2BCD

INCFBCDBFH

GOTOHX2BCD1

HX2BCD2:

MOVLW.10

SUBWFR0_HX2BCD,W

SKPC

GOTOHX2BCD3

MOVWFR0_HX2BCD

MOVLWH'10'

ADDWFBCDBFL

GOTOHX2BCD2

HX2BCD3:

MOVFR0_HX2BCD,W

ADDWFBCDBFL

RETURN

END******************

;16*2dotmatrixLCD

LISTP=16F877,R=DEC

#INCLUDEP16F877.INC

CBLOCK0X20

ENDC;DEFINERAM

CBLOCK

R0,R1

ENDC

ORG0NOP

callInitLCD

callclrLCD

callL1homeLCD

movlw3

callmovcurLCD

movlw'M'

callputcLCD

movlw'i'

callputcLCD

movlw'c'

callputcLCD

movlw'r'

callputcLCD

movlw'o'

callputcLCD

movlw'c'

callputcLCD

movlw'h'

callputcLCD

movlw'i'

callputcLCD

movlw'p'

callputcLCD

callL2homeLCD

MOVLW12

MOVWFR0

CLRFR1

AGAIN:

MOVFR1,W

CALLF877TBL

CALLputcLCD

INCFR1

DECFSZR0

GOTOAGAIN

GOTO$

F877TBL:

ADDWFPCL

DT"PIC16F877"

#INCLUDE

LCD_DATAequPORTB

LCD_CNTLequPORTB

RSequ5

Eequ4

END***************

;MOVINGLEDS

LISTP=16F877,R=DEC

#INCLUDEP16F877.INC

CBLOCK0X20

ENDC

;defineRAM

CBLOCK

R0,USRFLAG

ENDC

DRCTEQU0

ORG0

NOP

GOTOMAIN

ORG4

BTFSSUSRFLAG,DRCT

GOTOINT01

BCFUSRFLAG,DRCT*******

GOTOINT02

INT01:

BSFUSRFLAG,DRCT

INT02:

BTFSSPORTB,0

GOTOINT02

BCFINTCON,INTF

RETFIE

MAIN:

BANKSELTRISD

MOVLW0

MOVWFTRISD

BANKSELPORTD

BSFINTCON,GIE

BSFINTCON,INTE

BCFINTCON,INTF

MOVLWB'11111100'

MOVWFR0

BCFUSRFLAG,DRCT

MAIN1:

MOVFR0,W

MOVWFPORTD

CALLDLY0_2S

BTFSCUSRFLAG,DRCT

GOTORIGHT

LEFT:

CLRC

BTFSCR0,7

SETC

RLFR0,F

GOTOMAIN1

RIGHT:

CLRC

BTFSCR0,0

SETC

RRFR0,F

GOTOMAIN1

#INCLUDE

END****************

;LCD+PRECISIONTIMER(00.00~99.99SEC)(Timer0)

LISTP=16F877,R=DEC

#INCLUDEP16F877.INC

CBLOCK0X20

ENDC;defineRAM

CBLOCK

TIMBFH,TIMBFL

R0_PRC100mS

R0:

2

W_BAK,STATUS_BAK

BCDBFH,BCDBFL

ENDC;definedata

DATMR0EQU256-125

ORG0

NOP

GOTOMAIN;resetvector

ORG4;

MOVWFW_BAK

SWAPFSTATUS,W

MOVWFSTATUS_BAK

MOVLWDATMR0;

ADDWFTMR0

DECFR0_PRC100mS

BCFINTCON,T0IF

SWAPFSTATUS_BAK,W

MOVWFSTATUS

SWAPFW_BAK

SWAPFW_BAK,W

RETFIE

MAIN:

BANKSELOPTION_REG

MOVLWB'00000101'

;PSA(0=PRESCtotimer)

;PS2~0(101=1/64)

MOVWFOPTION_REG

BANKSELTMR0

MOVLWDATMR0

MOVWFTMR0

MOVLW50;50*2mS=100mS

MOVWFR0_PRC100mS

BSFINTCON,T0IE

BSFINTCON,GIE

CLRFTIMBFH

CLRFTIMBFL

CLRFR0

CLRF

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2