PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 27-04-2009, 04:48 AM   #1
kiwi
Đệ tử 1 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 13
:
Chương trình đọc encoder

Các bác cho em hỏi chương trình đọc encoder của em như thế này có ổn không vậy?
Với một vấn đề nữa là em dùng thạch anh 4MHz, nhưng em khai báo
#FUSES XT thì nó không chạy được mà phải khai báo là HS, em không hiểu vì sao?
Code:
#include "E:\Mo phong\Doc encoder\Doc encoder.h"
#include "def_877a.h"
#include<lcd_lib_4bit.c>
#use delay(clock=4000000)

int8 nghin,tram,chuc,donvi;
int16 count,so_vong,int_count1,x;
void tinhtoan_hienthi(int16 x);

#define INTS_PER_SECOND1 4
#int_rtcc // Ngat Timer 0

void Timer0_isr() 
{
   count++;
}

#INT_TIMER1 // Chuong trinh ngat Timer 1
void Timer11_isr()
{
   SET_TIMER1(12140);
   if(--int_count1==0) 
   {
      int_count1 = INTS_PER_SECOND1;
      so_vong = (count*255 + get_timer0())*60/100;
      count = 0;
      set_timer0(0);
   }
   
}


void tinhtoan_hienthi(int16 x) // thuc hien tach so va dua ra hien thi luon
{
   nghin = x / 1000 + 0x30;
   x = x % 1000;
   tram = x / 100 + 0x30; // tách so hang tram
   x = x % 100; // chia lay phan du
   chuc = x / 10 + 0x30; // tach lay phan chuc
   donvi = x % 10 + 0x30; // phan don vi
    lcd_putcmd(0xC0);
   printf(lcd_putchar,"toc do=");
   lcd_putchar(nghin);
   lcd_putchar(tram);
   lcd_putchar(chuc);
   lcd_putchar(donvi);
}

void init()
{  
   lcd_putcmd(0x80);
   int_count1 = INTS_PER_SECOND1;//4 lan 1 giay
   setup_timer_0 (RTCC_DIV_1|RTCC_EXT_H_TO_L);  // Timer0 is Counter
   set_timer0(0);
   setup_timer_1(T1_INTERNAL | T1_DIV_BY_4);    // Timer1 is Timer
   set_timer1(12140);
   enable_interrupts(INT_RTCC);
   enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   count = 0;
   lcd_init();
   delay_ms(200);
   printf(lcd_putchar,"toc do dong co");
}

void main()
{
   init();
   

     so_vong = 0;
//   a = 0;
     TRISA = 0xFF;
//   trisB = 0xFF;
//   portb = 0xff;
     RD2 = 1;
     trisD = 0;
//   lcd_init();
//   delay_ms(200);
//   printf(lcd_putchar,"Liencoi");
   while(1) // doan chuong trinh hien thi len LCD
   {
      tinhtoan_hienthi(so_vong);
      delay_ms(500);
   }
}
kiwi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-04-2009, 08:22 AM   #2
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
theo mình được biết khai báo XT khi dao động ngoài =< 2 Mhz
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-10-2009, 12:21 AM   #3
nguyentrivysv
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 9
:
các anh ơi! anh nào có thể chỉ em viết chương trình vdk đọc encoder và xuất ra tín hiệu điều khiển 1 động cơ "DC servo" ko? để làm cơ cấu master_slave 1 khớp đó .cảm ơn

thay đổi nội dung bởi: nguyentrivysv, 13-11-2009 lúc 01:01 AM.
nguyentrivysv vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-11-2009, 08:57 PM   #4
dinh080888
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
đây là phần dịch đo tốc độ động cơ dùng encoder = phần mềm keilc mọi người cùng tham khảo nhé: ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TIMER
ORG 0013H
LJMP DEM
ORG 0030H
MAIN:

MOV TMOD,#01H
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
MOV IE,#10000111B
SETB TR0
SETB IT1
MOV 40H,#0
MOV R3,#20
HERE:
SJMP HERE
DEM:
INC 40H
RETI
TIMER:
CLR TF0 ;xoa co tran TF0
MOV TH0,#HIGH(-50000) ;nap gia tri dem cho timer
MOV TL0,#LOW(-50000) ;nap gia tri dem cho timer
DJNZ R3,EXIT ;giam R3 roi nhay den nhan ?it neu R=0
MOV R3,#20 ;nap lai gia tri cho R3
CALL HIENTHI ;goi chuong trinh hien thi
EXIT:
RETI ;quay lai chuong trình chinh khi goi ngat
HIENTHI:
MOV A,40H ;nap gia tri cua o nho 40h vao thanh ghi a
MOV B,#10 ;nap gia tri cho thanh ghi b=10
DIV AB ;chia a cho b
MOV DPTR,#MALED ;nap chuong trinh ma led 7 thanh vao thanh ghi dia chi
MOVC A,@A+DPTR
MOV P2,A ;dua gia tri thanh ghi a ra cong p0
SETB P1.0 ;lap gia tri chan p2.0
CLR P1.0 ;xoa chan p2.0
MOV A,B ;nap gia tri trong thanh ghi b vao thanh ghi b
MOVC A,@A+DPTR
MOV P2,A
SETB P1.1
CLR P1.1
MOV 40H,#0
JMP EXIT
MALED : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
dinh080888 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam