จำหน่ายและให้คำปรึกษาเกี่ยวกับการใช้งานบอร์ดไมโครคอนโทรลเลอร์ Arduino, Shield for arduino, Module และ Sensor รุ่นต่างๆ

function module เพื่อช่วยในการเขียน

กลุ่มวงจรที่ใช้ Microcontroller Arduino , PIC , AVR ,ETC.

Moderator: gang

ภาพประจำตัวสมาชิก
gang
Master of the Order[ ผู้ดูแลระบบ]
Master of the Order[ ผู้ดูแลระบบ]
โพสต์: 1023
ลงทะเบียนเมื่อ: 11/08/2004 11:00 pm
ที่อยู่: บางน้ำผึ้ง พระประแดง สมุทรปราการ
ติดต่อ:

function module เพื่อช่วยในการเขียน

โพสต์โดย gang » 25/01/2006 9:07 pm

ได้ลองใช้ฟังชั้นโมดูลที่เอามาจากเว็บ www.electronic-engineering.ch มาทดลองใช้ดูครับทำให้เขียนแอซแซมบิลได้ง่ายขึ้นมาก
หา download ได้ที่
http://www.electronic-engineering.ch/mi ... dules.html
http://www.m108.com/nuke/modules.php?na ... opic&t=113
HARDWARE Constant
; Processor: Microchip PIC 16XXX ,Developed on PIC 16C84
; Clock: 4.00 MHz XT
; Throughput: 1 MIPS


FILE : m_bank.asm
เป็นไฟลเรียกในการจัดการ Bank memory ต้องมีการเรียกใช้ทุกครั้ง

FILE : m_wait.asm

Function : WAIT X เป็นฟังชั้นเกี่ยวกับ Time delay ถ้า x = d'1' = delay, 1.02 ms
Function : WAITX X , P เป็นฟังชั้นเกี่ยวกับ Time delay เหมือนกับฟังชั่นแรกครับ แต่มีค่า P คือ prescaler คือการหารค่าที่นับได้
P=d'0' ค่าการหารจะอยูที่ 2
P=d'1' ค่าการหารจะอยูที่ 4 เท่ากับ WAIT
P=d'7' ค่าการหารจะอยูที่ 256

Example: WAITX d'16',d'7'
เวลา(วินาที) = 0.00025 x X x P
= 0.00025 x (16) x (256)
=1.024

Exam:
CONSTANT BASE = 0x0C ; 16F84 base address of user file registers

#include "..\m_bank.asm"
#include "..\m_wait.asm"

; Call of implemented procedures with:
WAIT 0x01 ; standard delay, 1.02 ms
WAITX d'16',d'7' ; 1.045 s @ 4 MHz, extended with specific prescaler
I Love Arduino

บุคคลทั่วไป

re: function module เพื่อช่วยในการเขียน

โพสต์โดย บุคคลทั่วไป » 15/02/2006 4:51 am

FILE : m_lcde_bf.asm,m_lcdexbf.asm
โมดูลไฟลที่ช่วยในการเขียนโปรแกรมติดต่อกับจอ LCD ในแบบ 4 bit
ส่วนวงจรที่ใช้ เป็นไปตามนี้ครับ
http://www.electronic-engineering.ch/mi ... tivity.pdf หรือ บอร์ดทดลอง LCD
Function: LCDinit ทำการติดต่อ LCD เมื่อขั้นตอนเริ่มต้น
Function: LCD_DDAdr ทำการกำหนด ตำแหน่งที่จะเริ่มแสดงข้อมูลบนจอ ยกตัวย่างเช่น บรรทัดที่สองอยู่ที่ Address 0x40 เป็นต้น
Function: LCDw แสดง ascii 1 ตัวอักษรจากข้อมูลใน Register w
Function: LCDchar แสดง ascii 1 ตัวอักษร
Function: LCDcmd ส่งคำสั่งไปควบคุม LCD ยกตัวอย่างเช่น LCDcmd LCDCLR สำหรับการ เคลีย์จอภาพ
Function: LCDline ส่ง Cursor ไปยังตำแหน่งแรกของแต่ละบรรทัด
Exam:

โค้ด: เลือกทั้งหมด

LCDtris equ TRISA               ; LCD data on low nibble of portA
 LCDport equ PORTA
 #define LCD_ENtris TRISB,0x01   ; EN on portB,1
 #define LCD_EN PORTB,0x01
 #define LCD_RStris TRISB,0x02   ; RS on portB,2
 #define LCD_RS PORTB,0x02
 #define LCD_RWtris TRISB,0x03   ; RW on portB,3
 #define LCD_RW PORTB,0x03

 CONSTANT BASE = 0x0C          ; 16F84 base address of user file registers
 FLAGreg equ BASE+d'7'         ; general flag register
 #define        LCDbusy FLAGreg,0x06    ; LCD busy flag declared within flag register
 #define        LCDcflag FLAGreg,0x07   ; LCD command/data flag

 #include "..\m_bank.asm"
 #include "..\m_wait.asm"
 #include "..\m_lcde_bf.asm"


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 2 และ บุคคลทั่วไป 0 ท่าน

cron