عضویت     ورود  آدم شجاع یکبار می میرد ولی ترسو هزار بار . الین چانک چهارشنبه، 4 بهمن ماه ، 1396

کانال تلگرام


تبلیغات متنی


منوی سایت


جست و جو در بانك مقالات




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 3621 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 3538 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 3625 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 3586 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 9959 بار]
 6: ادوات نوري 
[دفعات مشاهده : 3825 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 5211 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 4959 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 4048 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 6016 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 4677 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 12438 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 8712 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 6135 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 4358 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 4894 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 4434 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 5278 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 4040 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 4192 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 6920 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 6315 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 6223 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 4510 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 4758 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 7150 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 5880 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 5281 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 10463 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 8400 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 37616 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 16455 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 19940 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 23372 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 21037 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 23393 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 35626 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 18307 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 15635 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 19160 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]


زبان
انتخاب زبان نمایش :



مطالب جديد
· 1: EXPLORING C FOR MICROCONTROLLERS
· 2: Public Key Cryptosystems Based On Chaotic-Chebyshev Polynomials
· 3: TOPOLOGIES COMPARISON of MULTI-CELL MEDIUM FREQUENCY TRANSFORMER for OFFSHORE FARMS
· 4: FPGA Design and Implementation Issues of Artificial Neural Network Based PID Controllers
· 5: The_C++_Standard_Library
· 6: بورس برق
· 7: Ray-Tracing Simulation Techniques for Understanding High-Resolution SAR Images
· 8: آموزش نرم افزار AutoPlay Media Studio 7.0
· 9: Practical Embedded Security
· 10: On the Capacity of 3-D Space-Time Correlated HAP-MIMO Channelsc
· 11: Sender-Side Public Key Deniable Encryption Scheme
· 12: گذرای ناشی ار سوئیچ کردن خازن های قدرت در سیستم های توزیع و انتقال و روش حذف آنها
· 13: A Reduced-Order Modeling Technique for Substrate Coupling in Mixed-Signal VLSI
· 14: شیوه مناسب برقرسانی در داخل شهرهای بزرگ(پایه های تلسکوپی چند منظوره)
· 15: رله ديستانس با الگوريتم جديد تشخيص SIR براي كاهش اثر گذراي CVT
· 16: موتور جستجوی پارسی اسناد الکترونیکی به کمک روش ریشه یابی و امتیازدهی دامنه فوریه
· 17: Wavelet based transformer protection using high frequency power directional signals
· 18: الگوريتم كنترلي مود آرامش ماهواره بر اساس تغييرات ميدان مغناطيسي زمين
· 19: A DESIGN FOR A RE:LOCATABLE TERTIARY CONNECTED SVC
· 20: مدار هشدار دهنده گاز شهری

[ آخرين مقالات ]


ارسال مقاله به سايت

 



...::: Ir-Micro.Com :::... :: View topic - درست کردن هدر فایل LCD (حل شد)


درست کردن هدر فایل LCD (حل شد)

 
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC Printable Version
View previous topic :: View next topic  
Author Message
mhs22
کاربر تازه وارد
کاربر تازه وارد

Joined: Sep 06, 2011
Posts: 3





18564.00 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 21 دي ماه ، 1394 11:38:02 Reply with quote Scroll Down to Next postGo to last Post of Page

سلام به همه دوستان
یک هدر فایل LCD برای کامپایلر XC8 نوشتم اما متاسفانه کار نمیکنه! دقیقا نمیدونم مشکل از کجاست، کسی میتونی راهتمایی بکنه؟

lcd.h
PHP:
<?php #ifndef XC_HEADER_TEMPLATE_H
 
#define XC_HEADER_TEMPLATE_H
#include <xc.h> // include processor files - each processor file is guarded. 
#define _XTAL_FREQ 4000000
// TODO Insert appropriate #include <>
 
// TODO Insert C++ class definitions if appropriate
 
// TODO Insert declarations
 
// TODO Insert declarations or function prototypes (right here) to leverage 
// live documentation
 
#ifdef  __cplusplus
extern &quot;C&quot; {
#endif /* __cplusplus */
 
    // TODO If C++ is being used, regular C code needs function names to have C 
    // linkage so the functions can be used by the c code.
#define LCD_RS RA3
#define LCD_EN RA4
#define LCD_DATA4 RB0
#define LCD_DATA5 RB1
#define LCD_DATA6 RB2
#define LCD_DATA7 RB3
#define LCD_RS_Direction TRISA3
#define LCD_EN_Direction TRISA4
#define LCD_DATA4_Direction TRISB0
#define LCD_DATA5_Direction TRISB1
#define LCD_DATA6_Direction TRISB2
#define LCD_DATA7_Direction TRISB3
void LCD_STROBE(void){
    
LCD_EN 1;
    
__delay_ms(1);
    
LCD_EN 0;
    
__delay_ms(50);
}
void LCD_write(unsigned char data){
        if(
data 1)
                
LCD_DATA4 1;
         else
                
LCD_DATA4 0;
        if(
data 2)
                 
LCD_DATA5 1;
        else
                
LCD_DATA5 0;
         if(
data 4)
                
LCD_DATA6 1;
        else
                 
LCD_DATA6 0;
        if(
data 8)
                
LCD_DATA7 1;
        else
                
LCD_DATA7 0;       
    
//return;
}
void LCD_cmd(unsigned char cmd){
    
//unsigned char cmd_entry = cmd;
    /*LCD_DATA4 = (cmd >> 0) & 0x01;
    LCD_DATA5 = (cmd > > 1) & 0x01;
    LCD_DATA6 = (cmd >> 2) & 0x01;
    LCD_DATA7 = (cmd > > 3) & 0x01;*/
    
LCD_RS 0;
    
LCD_write(cmd);
    
LCD_STROBE();
     
//return;
}
void LCD_char(char c){
    
char temp,y;
    
temp c&0x0F;
    
=  c&0xF0;
    
LCD_RS 1;
    
LCD_write(y>>4);
    
LCD_STROBE();
    
LC D_write(temp);
    
LCD_STROBE();        
}
void LCD_string(char *s){
    
//LCD_RS = 1;
    
for (int i 0s[i] != '\0'i++) {
            
LCD_char(s[i]);
        }
}
void LCD_clear(void){
    
LCD_cmd(0x01); //clear    
}
void LCD_goto(v oid){
    
LCD_cmd(0x80); //cursor(0,0)
}
void LCD_init(void){
    
LCD_RS_Direction 0;
    
LCD_EN_Direction 0;
    
LCD_DATA4_Direction 0;
    
LCD_DATA5_Direction 0;
    
LCD_DATA6_Direction 0;
    
LCD_DATA7_Direction 0;
    
LCD_cmd(0x28); //4-bit
    
__delay_ms(1);
    
LCD_cmd(0x01);  //clear
    
__delay_ms(1);
    
LCD_cmd(0x0E); //cursor on
    
__delay_ms(1);
    
LCD_cmd(0x80); //cursor(0,0)
    
__delay_ms(1) ;
    
//return;    
}
#ifdef  __cplusplus
}
#endif /* __cplusplus */
#endif  /* XC_HEADER_TEMPLATE_H */ 
?>



main.c

PHP:
<?php #define _XTAL_FREQ 4000000
#include <pic16f88.h>
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include &quot;lcd.h&quot;
#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF        // Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Code protection off)
#pragma config CP = OFF
//TRISB
void main(void){
    
//TRISB6 = 0;
    
LCD_init();
    
LCD_goto();
    while (
1) {
        
//LED();
        
LCD_str ing(&quot;Hello World&quot;);
    }
?>



Last edited by mhs22 on سه شنبه، 22 دي ماه ، 1394 23:02:53; edited 1 time in total
Back to top
View user's profile Send private message
mhs22
کاربر تازه وارد
کاربر تازه وارد

Joined: Sep 06, 2011
Posts: 3





18564.00 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 22 دي ماه ، 1394 23:02:19 Reply with quote Go to Top of PageScroll Up to Previous post

بالاخره تونستم حلش کنم!!!
مشکل از این بود که من از پورت A برای EN و RS استفاده میکردم، پورت A آنالوگ است باید مقدار بیت های دو پین EN و RS را صفر در نظر میگرفتم تا پورت دیجیتال ست بشه!

وقتی که بیت ها دیجیتال ست نشده!



کد رو هم کمی تغییر دادم

lcd.h
Code:

#ifndef XC_HEADER_TEMPLATE_H

#define XC_HEADER_TEMPLATE_H
#include <xc.h> // include processor files - each processor file is guarded.
#define _XTAL_FREQ 4000000
#include <pic16f88.h>
// TODO Insert appropriate #include <>

// TODO Insert C++ class definitions if appropriate

// TODO Insert declarations

// Comment a function and leverage automatic documentation with slash star star
/**
*/
// TODO Insert declarations or function prototypes (right here) to leverage
// live documentation

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

// TODO If C++ is being used, regular C code needs function names to have C
// linkage so the functions can be used by the c code.
#define LCD_RS RA3
#define LCD_EN RA4
#define LCD_DATA4 RB0
#define LCD_DATA5 RB1
#define LCD_DATA6 RB2
#define LCD_DATA7 RB3
#define LCD_PORT PORTB

void LCD_STROBE(void){
LCD_EN = 1;
__delay_us(1);
LCD_EN = 0;
}
void write(unsigned char value){
LCD_DATA4 = (value >> 0) & 0x01;
LCD_DATA5 = (value >> 1) & 0x01;
LCD_DATA6 = (value >> 2) & 0x01;
LCD_DATA7 = (value >> 3) & 0x01;
LCD_EN = 1;
__delay_us(1);
LCD_EN = 0;
}
void LCD_cmd(unsigned char data){
LCD_RS = 0;
__delay_us(50);
LCD_PORT = (data >> 4);
LCD_STROBE();
LCD_PORT = (data);
LCD_STROBE();
}
void LCD_goto(void){
LCD_cmd(0x80);
__delay_ms(2);
}
void LCD_clear(void){
LCD_cmd(0x01);
__delay_ms(2);
}
void LCD_char(unsigned char data){
LCD_RS = 1;
__delay_us(50);
write(data >> 4);
write(data);
}
void LCD_putc(unsigned char data){
LCD_RS = 1;
__delay_us(50);
LCD_PORT = (data >> 4);
LCD_STROBE();
LCD_PORT = (data);
LCD_STROBE();
}
void LCD_putcs(const char *data){
while (*data) {
LCD_putc(*data++);
}
}
void LCD_init(void){
TRISA3 = 0;
TRISA4 = 0;
TRISB = 0b11110000;

LCD_cmd(0x20); //4-bit 1 line, 2 line= 0x28
__delay_ms(1);
LCD_cmd(0x0c);
__delay_ms(1);
LCD_cmd(0x06 ); //cursor on
__delay_ms(2);
LCD_cmd(0x80); //cursor(0,0)
__delay_ms(2);
LCD_cmd(0x01); //clear
__delay_ms(2);
}
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* XC_HEADER_TEMPLATE_H */


main.c
Code:

#define _XTAL_FREQ 4000000
#include <pic16f88.h>
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#include "lcd.h"
#pragma config FOSC = XT // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Code protection off)
#pragma config CP = OFF
//TRISB
void main(void){
//TRISB6 = 0;
ANS3 = 0; //set RA3 to digital I/O
ANS4 = 0; //set RA4 to digital I/O
LCD_init();
LCD_goto();
LCD_putc('2');
__delay_ms(1000);
while (1) {
LCD_clear();
LCD_goto();
LCD_char('P');
__delay_ms(5000);
LCD_clear();
LCD_putcs("HELLO WORLD");
__delay_ms(5000);
LCD_clear();
}
}

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC All times are GMT + 3.5 Hours
Page 1 of 1
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

 
 Jump to:   

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts Sticky: دانلود نرم افزار multisim ورژن 9 و 10 5 Hamed 17629 شنبه، 4 دي ماه ، 1389 13:37:42
MultisimExpert View latest post
No new posts Sticky: امنيت با Kaspersky Internet Security v8.0.0.33 7 Arash_em 8975 شنبه، 18 اسفند ماه ، 1386 02:18:53
brainbaran View latest post
No new posts Sticky: دانلود مرورگر قدرتمند Mozilla Firefox 2.0.0.7 Final 2 Arash_em 8035 يكشنبه، 8 مهر ماه ، 1386 04:46:20
Mehrdad001 View latest post
No new posts Micro Code Studio 3.0.0.5 0 Hamed 7824 جمعه، 20 ارديبهشت ماه ، 1387 09:35:35
Hamed View latest post
No new posts کرک 100% آخرین نسخه Bascom 8051 2.0.14.0 1 Pejmands 8762 يكشنبه، 29 مهر ماه ، 1386 13:48:38
Arash_em View latest post
 


Powered by phpBB © 2001, 2008 phpBB Group

Ported to Platinum 7.6.b.4 V2 by sadeghkhafan

فروشگاه تخصصی برق و الکترونیک ایران میکرو
www.iran-micro.com
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL.
Powered by Platinum 7.6.b.4 v2
Powered by Platinum 7.6.b.4 v2 Persian

مدت زمان ایجاد صفحه : 0.72 ثانیه