PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Lập trình với ngôn ngử Basic (http://www.picvietnam.com/forum/showthread.php?t=482)

TTL 19-06-2006 01:44 PM

Code:
TRISB = 01h
TRISA = 01h
INTCON.GIE = 1
INTCON.INTE = 1
OPTION_REG.INTEDG = 0
'khai bao bien
Dim a As Word
Dim store As Byte
Dim i As Byte
Dim j As Bit
a = 0
i = 0
main:
Lcdout #store
If i >= 11 Then
a = ShiftRight(a, 1)
store = a.LB
Serout PORTA.1, 9600, #store
i = 0
a = 0
Lcdcmdout LcdClear
Endif
Goto main
End
On Interrupt
a.0 = a.0 Or PORTA.0
a = ShiftLeft(a, 1)
i = i + 1
INTCON.INTF = 0
Resume

Giải thích dọan chương trình này sử dung ngắt RB0 dể lấy mã Scancode cua bàn phím sau đó gởi qua port nối tiếp ở chân PortA.1.

TTL 19-06-2006 01:45 PM

Cách sử dung LCD: Basic hổ trợ rất nhiều đối với điều khiển lcd với các câu lệnh dơn giản
DEFINE LCD_BITS = 8 ‘khai báo lcd sử dụng 8 bit data
DEFINE LCD_DREG = PORTB ‘dũ liệu vào ở PortB
DEFINE LCD_DBIT = 0
DEFINE LCD_RSREG = PORTD ‘khai báo chân RS của lcd
DEFINE LCD_RSBIT = 1
DEFINE LCD_EREG = PORTD ‘khai báo chân Enable của LCD
DEFINE LCD_EBIT = 3
DEFINE LCD_RWREG = PORTD ‘khai báo chân Read write
DEFINE LCD_RWBIT = 2
Lcdinit
Lcdout (<biến hoặc 1 chuỗi>)
Lcdcmd (<lệnh>)

Ví dụ xuât chữ HELLO ra lcd sử dụng 4 bit dữ liệu, rs ở portb.0. enable ở portb.1, read/write ở portb.2. chớp tắt với chu kỳ 1s.
DEFINE LCD_BITS = 4 ‘khai báo lcd sử dụng 8 bit data
DEFINE LCD_DREG = PORTB ‘dũ liệu vào ở PortB
DEFINE LCD_DBIT = 1 ‘4 bit cao cua port b
DEFINE LCD_RSREG = PORTb ‘khai báo chân RS của lcd
DEFINE LCD_RSBIT = 0
DEFINE LCD_EREG = PORTb ‘khai báo chân Enable của LCD
DEFINE LCD_EBIT = 1
DEFINE LCD_RWREG = PORTb ‘khai báo chân Read write
DEFINE LCD_RWBIT = 2
Lcdinit
Main:
Lcdout(“hello”)
Waitms(1000)
Lcdcmdout(lcdclear)
Goto main

TTL 19-06-2006 01:47 PM

1 Attachment(s)
Ví dụ mạch dồng hồ bằng LCD.
Mạch.

TTL 19-06-2006 01:47 PM

Code:
WaitMs 1000
'Khoi tao LCD
Define LCD_LINES = 2
Define LCD_CHARS = 16
Define LCD_BITS = 4
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTA
Define LCD_RSBIT = 1
Define LCD_EREG = PORTA
Define LCD_EBIT = 3
Define LCD_RWREG = PORTA
Define LCD_RWBIT = 2
Lcdinit
'Khai bao bien
Dim x As Byte
Dim y As Byte
Dim g1 As Byte
Dim g2 As Byte
Dim g3 As Byte
Dim g4 As Byte
Dim a1 As Byte
Dim a2 As Byte
Dim b1 As Byte
Dim b2 As Byte
Dim c1 As Byte
Dim c2 As Byte
a1 = 0
a2 = 0
b1 = 0
b2 = 0
c1 = 0
c2 = 0
x = 00
y = 00
main:
Lcdcmdout LcdClear
g1 = x / 10
g2 = x % 10
g3 = y / 10
g4 = y % 10
If x >= 24 Then
x = 0
Endif
If y >= 60 Then
y = 0
Endif
If a1 = g1 And a2 = g2 And b1 = g3 And b2 = g4 Then
PORTA.0 = 1
Else
PORTA.0 = 0
Endif
c2 = c2 + 1
If c2 > 9 Then
c2 = 0
c1 = c1 + 1
Endif
If c1 > 5 Then
c1 = 0
b2 = b2 + 1
Endif
If b2 > 9 Then
b2 = 0
b1 = b1 + 1
Endif
If b1 > 5 Then
b1 = 0
a2 = a2 + 1
Endif
If a2 > 9 Then
a2 = 0
a1 = a1 + 1
Endif
If a1 >= 2 And a2 >= 4 Then
a2 = 0
a1 = 0
Endif
Lcdout #a1, #a2, ":", #b1, #b2, ":", #c1, #c2, " ", #x, ":", #y
Lcdcmdout LcdLine2Home
Lcdout "Digital clock "
WaitMs 998
Goto main
End
On Interrupt
WaitUs 100
If PORTB.6 = 1 Then
a2 = a2 + 1
Endif
If PORTB.4 = 1 Then
b2 = b2 + 1
Endif
If PORTB.7 = 1 Then
x = x + 1
Endif
If PORTB.5 = 1 Then
y = y + 1
Endif
INTCON.RBIF = 0
Resume

TTL 19-06-2006 01:50 PM

1 Attachment(s)
Mạch đã thực hiện

TTL 19-06-2006 01:55 PM

Mình chỉ biết chút ít thôi nếu anh nào biết thì bổ sung thêm vào , em cảm ơn

"Học PIC trong 1 ngày là quá nhiều nhưng để biết chi tiết về nó thì là quá ít"
"Học vô bờ quay đầu là bến"

TTL 19-06-2006 01:56 PM

Bác F ơi sao em add file lên nó ko cho vậy

falleaf 19-06-2006 05:57 PM

Em đã tải hình lên cũng chính là tải được file lên rồi đó thôi?

Lưu ý, có một số giới hạn về kích thước hình ảnh, sắp tới anh sẽ mở rộng kích thứơc hình lên một chút, lưu ý, bề rộng hình chỉ được tối đa 620 pixel, để tránh việc tràn khung hình, anh sẽ nâng lên 700px. Còn các file định dạng khác thì em phải đảm bảo kích thước file khoảng 700KB, nếu lớn hơn thì không được. File nào quá lớn, em chuyển dạng sang .zip để tải lên.

Cái nào quá lớn, thì email cho anh, anh gửi lên host.

Chúc vui


Múi giờ GMT. Hiện tại là 01:34 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam