- การพ ฒนาโปรแกรมด วยภาษาแอสเซมบล - การพ ฒนาโปรแกรมด วยภาษา BASIC - การพ ฒนาโปรแกรมด วยภาษา C - PDF

Description
- การพ ฒนาโปรแกรมด วยภาษาแอสเซมบล - การพ ฒนาโปรแกรมด วยภาษา BASIC - การพ ฒนาโปรแกรมด วยภาษา C การพ ฒนาโปรแกรมด วยภาษาแอสเซมบล List p = 16F877 #include _CONFIG ; list directive to define processor

Please download to get full document.

View again

of 27
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Marketing

Publish on:

Views: 14 | Pages: 27

Extension: PDF | Download: 0

Share
Transcript
- การพ ฒนาโปรแกรมด วยภาษาแอสเซมบล - การพ ฒนาโปรแกรมด วยภาษา BASIC - การพ ฒนาโปรแกรมด วยภาษา C การพ ฒนาโปรแกรมด วยภาษาแอสเซมบล List p = 16F877 #include p16f877.inc _CONFIG ; list directive to define processor ; processor specific variable definitions ; การก าหนดค า Configuration #define output PORTA,0 ; การก าหนดต วแปรแทนร จ สเตอร Temp EQU 0x70 ; การก าหนดต วแปรในหน วยความจ า ; ORG 0x000 ; processor reset vector LABEL operation operand ; comment.... END ; directive end of program ร ปแบบการเข ยนค าคงท ในแอสเซมบล เลขฐานส บหก (HEX) 0x0A เลขฐานส บ (DEC) d 10 หร อ.10 เลขฐานส บสอง (BIN) b การก าหนดค า Configuration Brown-out Reset Enable bit _BODEN_ON, _BODEN_OFF Flash Program Memory Code Protection bits _CP_ALL, _CP_HALF, _CP_UPPER_256, _CP_OFF Flash Program Memory Write Enable bit _WRT_ENABLE_ON, _WRT_ENABLE_OFF Brown-out Reset Enable bit _BODEN_ON, _BODEN_OFF Flash Program Memory Code Protection bits _CP_ALL, _CP_HALF, _CP_UPPER_256, _CP_OFF Flash Program Memory Write Enable bit _WRT_ENABLE_ON, _WRT_ENABLE_OFF Power-up Timer Enable bit _PWRTE_OFF, _PWRTE_ON Watchdog Timer Enable bit _WDT_ON, _WDT_OFF Oscillator Selection bits _LP_OSC, _XT_OSC, _HS_OSC, _RC_OSC Background Debugger Mode _DEBUG_ON, _DEBUG_OFF Data EE Memory Code Protection _CPD_ON, _CPD_OFF, _LVP_ON, _LVP_OFF การใช งานพอร ต อ นพ ต/เอาต พ ต การก าหนดการท างานของ I/O Ports MOVLW 0xCF TRISA ; ค าส าหร บก าหนดการท างานของ PortA ; ; Set RA 3:0 as inputs ; RA 5:4 as outputs ; RA 7:6 as inputs FLASH Program and Data EEPROM Memory S. F. R. FLASH Program Memory 8K X EEADRH EEADR EEDATH EEDATA 256 X 8 Data EEPROM Memory EECON1 EECON2 Data EEPROM Memory: Reading Locations Program sequence to read Internal Data EEPROM: Write the desired address to EEADR. Clear the EEPGD bit, EECON1 7 , which will select Data EEPROM. Set the RD bit, EECON1 0 . Data will be available in the EEDATA register in the next instruction cycle. Data EEPROM Memory: Reading Locations STATUS,RP1 BCF STATUS,RP0 MOVLW ADDRESS EEADR STATUS,RP0 BCF EECON1,EEPGD EECON1,RD BCF STATUS,RP0 MOVF EEDATA,W Program: ;Move to Bank2 ;Write data memory address into the EEADR register ;Move to Bank3 ;Point to Data Memory ;Start the Read Operation, data will be available in the very next Tcy ;Move the data into W Data EEPROM Memory: Writing to Locations Sequence to write data to Internal Data EEPROM: Write the desired address to EEADR. Write the desired data to EEDATA. Clear the EEPGD bit, EECON1 7 which will select the data memory access. Set the WREN bit, EECON1 2 . Disable all interrupts. Write 55h followed by AAh to EECON2. Set the WR bit, EECON1 1 . Clear the WREN bit, EECON1 2 . Interrupts can now be enabled. Wait for WR bit to clear or EEIF to set, which indicates write operation has completed. Data EEPROM Memory: Writing to Locations BCF MOVLW MOVLW BCF BCF MOVLW MOVLW BCF STATUS,RP1 STATUS,RP0 ADDRESS EEADR VALUE EEDATA STATUS,RP0 EECON1,WREN EECON1,EEPGD INTCON,GIE 55h EECON2 AAh EECON2 EECON1,WR INTCON,GIE EECON1,WREN ;Move to Bank2 ;Write desired address to EEADR ;Write desired data to EEDATA ;Move to Bank3 ;Enable EEPROM writes ;Disable interrupts ;Point to data memory ;Next five instructions are required ;sequence to initiate a write sequence ;Initiate the write sequence ;Enable interrupts ;Disable EEPROM writes, does not affect the current write cycle FLASH Program Memory: Reading Locations Write the 8 LSbs of the desired address to EEADR. Write the 5 MSbs of the desired address to EEADRH. Set the EEPGD bit, EECON1 7 to access Program FLASH Memory. Set the RD bit, EECON1 0 . Next two instruction must be set as NOPs. Data will be available in the EEDATH:EEDATA registers in the instruction after the NOPs. FLASH Program Memory: BCF MOVLW MOVLW NOP NOP BCF MOVF MOVF Reading Locations STATUS,RP1 ;Move to Bank2 STATUS,RP0 ADDRH ;Write data memory address into ;the EEADRH:EEADR register EEADRH ADDRL EEADR STATUS,RP0 ;Point to program memory EECON1,EEPGD EECON1,RD ;Start the Read Operation, data will ;be available in the third T CY STATUS,RP0 EEDATA,W ;Move the data into W Temp EEDATH,W FLASH Program Memory: Writing to Locations Write the desired address to EEADRH:EEADRL. Write the desired data to EEDATH:EEDATA. Set the EEPGD bit, EECON1 7 to access Program FLASH Memory. Set the WREN bit, EECON1 2 . Disable all interrupts. Write 55h to EECON2 followed by AAh to EECON2. Set the WR bit, EECON1 1 . Next two instructions must be NOPs. CPU now halts while memory is programmed (~2mS), this is NOT sleep mode as the clocks and peripherals continue to run. When the write is completed, program execution starts at the instruction just after the two NOPs (above). Clear the WREN bit, EECON1 2 . FLASH Program Memory: Writing to Locations BANKSEL EEADDRH ;Move to Bank2 MOVLW ADDRH ;Write desired address to EEADRH:EEADR EEADRH MOVLW ADDRL ;Write desired data to EEDATH:EEDATA EEADR MOVLW DATAH EEDATH MOVLW DATAL EEDATA STATUS,RP0 ;Move to Bank3 EECON1,WREN ;Enable EEPROM writes EECON1,EEPGD ;Point to program memory BCF INTCON,GIE ;Disable interrupts MOVLW 55h ;Next five instructions are required EECON2 ;sequence to initiate a write sequence MOVLW AAh EECON2 EECON1,WR ;Initiate the write sequence NOP NOP INTCON,GIE ;Instruction is executed normally ;Instruction is ignored, processor halts ;Enable interrupts BCF EECON1,WREN ;Disable EEPROM writes การค านวนหาค า Baud Rate SYNC 0 1 BREG=0 (Low Speed) (Asynchronous) Baud Rate = Fosc/(64(X+1)) (Synchronous) Baud Rate = Fosc/(4(X+1)) BREG=1 (High Speed) (Asynchronous) Baud Rate = Fosc/(16(X+1)) N/A X = value in SPBRG (0 to 255) การพ ฒนาโปรแกรมด วยภาษา Basic (Pic Basic Pro) - การก าหนดต วแปร Label var Size เช น Temp var word ; ต วแปลประเภท word Temp1 var byte ; ต วแปลประเภท byte Temp2 var bit ; ต วแปลประเภท bit SW_1 var PORTA.0 ; ต วแปลท เป นร จ สเตอร - การก าหนดต วแปรชน ด Arrays Label var เช น Size[Number of elements] Cat var byte[10] Dog var bit[8] - การก าหนดค าคงท Constants Label CON Constant expression เช น dataa CON 8 - การก าหนดต วแปร String จะต องเข ยนอย ในเคร องหมาย เช น Hello - การก าหนด Labels ซ งในการเข ยนโปรแกรมท ม การกระโดดจ าเป นต องม Labels เพ อบอก ต าแหน งปลายทาง ร ปแบบค อช อลาเบล ตามด วยเคร องหมาย colon(:) เช น here: serout PORTC.6,T9600,[ Hello,13,10] goto here - การเข ยน Comments จะใส เคร องหมาย single quote( ) หร อ semi-colon (;) น าหน า ข อความท ไม ต องการให CPU ประมวลผล เช น Lcdout Hello Output String Hello Lcdout Hello ; Output String Hello - การเข ยนค าคงท เลขฐาน สอง,ส บและส บหก ฐานสองจะใช เคร องหมาย % น าหน าต วเลข เช น % ฐานส บจะเข ยนตามปกต เช น 100 ฐานส บหกจะใช เคร องหมาย $ น าหน าต วเลข เช น $9F - การก าหนด INCLUDE จะต องใส ไว บนส ดของโปรแกรม เช น INCLUDE modedefs.bas การต ดต งโปรแกรม PicBasic Pro compile V2.41
Related Search
Similar documents
View more...
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks