Mong mọi người giúp đỡ vì trường tôi(ko tiện nêu tên) dậy học cực chán, ko dậy môn vi điều khiển và lập trình hợp ngữ bây giờ thầy giáo bắt lập trình cho pic 16f84a,
tôi cũng muốn lập trình được cho pic nhưng tôi thấy thật là khó vì ngoài hiểu cấu trúc bên trong và 35 câu lệnh của pic thì còn số lệng mà tôi cũng chẳng biết được, do đó khi sai tôi cũng chẳng biết đương nào mà sửa. Vì vậy mong a e trên diễn đàn có cái tài liệu hay dễ hiểu thì share giúp tôi cái.(tôi tìm nhiều trên google lên chán lắm rồi)
Đây là 1 đoạn mã code a e nào rảnh thì giúp tôi sửa luôn cái, mãi mà tôi chẳng sửa được
/* SOURCE : Romux : Electronics - Embedded System - Projects - Tutorials
AUTHOR : romux team */
PROCESSOR 16F84
#INCLUDE "P16F84.INC"
__CONFIG _CP_0FF & _WDT_0FF & _PWRTE_0N & _XT_0SC
CBLOCK 0X0C ;RAM starting address
HICNT
LOCNT
LOOPCNT ;Belongs to macro "pausems"
LCDBUF
LCDTEMP ;Belongs to funkctions "LCDxxx"
DIGTEMP
DIGL
DIG2
DIG3 ;Belongs to macro "digbyte"
TEMP
ENDC
ORG 0X00 ;Reset vector
GOTO MAIN
ORG 0X04 ;Intertupt vector
GOTO MAIN ;no interrupt routine
#INCLUDE "ROMUX_LIB.INC"
#INCLUDE "LED.INC"
LCDDSPORT EQU P0RTB ;LCD IS ON PORT B(4 DATA LINES ON RB4-RB7)
RS EQU 1 ;RS LINE RB1
RW EQU 2 ;RW LINE RB2
EN EQU 3 ;EN LINE RB3
MAIN
MOVLW .23
MOVWF TEMP ;Put any value to variable temp ; for printing on LCD
LCDINIT ;Incitializing LCD
LOOP
LCDCMD 0X01 ;Clear LCD
LCDTEXT 1," ROMUX ";Print text from line 1, char 1
LCDTEXT 2,"PROBA LCD";Print text from line 2, char 1
PAUSEMS .2000 ;2 sec pause
LCDCMD 0X01 ;Clear LCD
LCDTEXT 1,"TEMPERATURE" ;Print text from line 1, char 1
LCDTEXT 2,"TEMP=" ;Print text from line 2, char 1
LCDBYTE TEMP ;Print decimal value of variable
LCDTEXT 0,"C" ;Print text from the current
PAUSEMS .2000 ;cursor position
GOTO LOOP
END
tôi cũng muốn lập trình được cho pic nhưng tôi thấy thật là khó vì ngoài hiểu cấu trúc bên trong và 35 câu lệnh của pic thì còn số lệng mà tôi cũng chẳng biết được, do đó khi sai tôi cũng chẳng biết đương nào mà sửa. Vì vậy mong a e trên diễn đàn có cái tài liệu hay dễ hiểu thì share giúp tôi cái.(tôi tìm nhiều trên google lên chán lắm rồi)
Đây là 1 đoạn mã code a e nào rảnh thì giúp tôi sửa luôn cái, mãi mà tôi chẳng sửa được
/* SOURCE : Romux : Electronics - Embedded System - Projects - Tutorials
AUTHOR : romux team */
PROCESSOR 16F84
#INCLUDE "P16F84.INC"
__CONFIG _CP_0FF & _WDT_0FF & _PWRTE_0N & _XT_0SC
CBLOCK 0X0C ;RAM starting address
HICNT
LOCNT
LOOPCNT ;Belongs to macro "pausems"
LCDBUF
LCDTEMP ;Belongs to funkctions "LCDxxx"
DIGTEMP
DIGL
DIG2
DIG3 ;Belongs to macro "digbyte"
TEMP
ENDC
ORG 0X00 ;Reset vector
GOTO MAIN
ORG 0X04 ;Intertupt vector
GOTO MAIN ;no interrupt routine
#INCLUDE "ROMUX_LIB.INC"
#INCLUDE "LED.INC"
LCDDSPORT EQU P0RTB ;LCD IS ON PORT B(4 DATA LINES ON RB4-RB7)
RS EQU 1 ;RS LINE RB1
RW EQU 2 ;RW LINE RB2
EN EQU 3 ;EN LINE RB3
MAIN
MOVLW .23
MOVWF TEMP ;Put any value to variable temp ; for printing on LCD
LCDINIT ;Incitializing LCD
LOOP
LCDCMD 0X01 ;Clear LCD
LCDTEXT 1," ROMUX ";Print text from line 1, char 1
LCDTEXT 2,"PROBA LCD";Print text from line 2, char 1
PAUSEMS .2000 ;2 sec pause
LCDCMD 0X01 ;Clear LCD
LCDTEXT 1,"TEMPERATURE" ;Print text from line 1, char 1
LCDTEXT 2,"TEMP=" ;Print text from line 2, char 1
LCDBYTE TEMP ;Print decimal value of variable
LCDTEXT 0,"C" ;Print text from the current
PAUSEMS .2000 ;cursor position
GOTO LOOP
END