|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教 Keil C51 問題 關(guān)于怎樣建立*.h文件 |
| 作者:像見 欄目:單片機 |
請教 Keil C51 問題 關(guān)于怎樣建立*.h文件 *.h文件是怎樣的一回事呢 在 Keil C51 里面C語言里面怎樣建立 頭文件的*.h文件? 對應(yīng)不同51單片機怎樣編寫這個? 那里有這方面的下載呢 例如 現(xiàn)在有一個例子需要 #include <AT89X51.H> #include <stdio.h> 那怎樣做呢 請教教各位大俠 |
| 2樓: | >>參與討論 |
| 作者: descriptor 于 2006/1/6 11:03:00 發(fā)布:
系統(tǒng)自帶 這2個文件是系統(tǒng)自帶的,位于安裝目錄\UV2\C51\INC,不需要你建立。 |
|
| 3樓: | >>參與討論 |
| 作者: 像見 于 2006/1/6 11:08:00 發(fā)布:
找不到啊 |
|
| 4樓: | >>參與討論 |
| 作者: 像見 于 2006/1/6 11:11:00 發(fā)布:
AT89X51.H這個找不到 如果是自己寫頭文件,那怎樣寫呢 |
|
| 5樓: | >>參與討論 |
| 作者: zw820506 于 2006/1/6 11:29:00 發(fā)布:
建立一個filename.h的文件 #ifndef __filename_H__ #define __filename_H__ //VALUE Definitions //Macros #endif 在main里+上include"filename.h"就可以了~ |
|
| 6樓: | >>參與討論 |
| 作者: 像見 于 2006/1/6 13:55:00 發(fā)布:
不大明白是什么意思,能具體說說嗎 |
|
| 7樓: | >>參與討論 |
| 作者: computer00 于 2006/1/6 14:27:00 發(fā)布:
keil不是可以新建文件嗎?新建一個文本文件, 然后把一下內(nèi)容復(fù)制到那個文件中: /*-------------------------------------------------------------------------- AT89X51.H HEADER file for the low voltage FLASH ATMEL AT89C51 and AT89LV51. COPYRIGHT (c) 1988-2002 Keil Elektronik GmbH and Keil SOFTWARE, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __AT89X51_H__ #define __AT89X51_H__ /*------------------------------------------------ Byte Registers ------------------------------------------------*/ sfr P0 = 0x80; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr P1 = 0x90; sfr SCON = 0x98; sfr SBUF = 0x99; sfr P2 = 0xA0; sfr IE = 0xA8; sfr P3 = 0xB0; sfr IP = 0xB8; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; /*------------------------------------------------ P0 Bit Registers ------------------------------------------------*/ sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87; /*------------------------------------------------ PCON Bit Values ------------------------------------------------*/ #define IDL_ 0x01 #define STOP_ 0x02 #define PD_ 0x02 /* Alternate definition */ #define GF0_ 0x04 #define GF1_ 0x08 #define SMOD_ 0x80 /*------------------------------------------------ TCON Bit Registers ------------------------------------------------*/ sbit IT0 = 0x88; sbit IE0 = 0x89; sbit IT1 = 0x8A; sbit IE1 = 0x8B; sbit TR0 = 0x8C; sbit TF0 = 0x8D; sbit TR1 = 0x8E; sbit TF1 = 0x8F; /*------------------------------------------------ TMOD Bit Values ------------------------------------------------*/ #define T0_M0_ 0x01 #define T0_M1_ 0x02 #define T0_CT_ 0x04 #define T0_GATE_ 0x08 #define T1_M0_ 0x10 #define T1_M1_ 0x20 #define T1_CT_ 0x40 #define T1_GATE_ 0x80 #define T1_MASK_ 0xF0 #define T0_MASK_ 0x0F /*------------------------------------------------ P1 Bit Registers ------------------------------------------------*/ sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97; /*------------------------------------------------ SCON Bit Registers ------------------------------------------------*/ sbit RI = 0x98; sbit TI = 0x99; sbit RB8 = 0x9A; sbit TB8 = 0x9B; sbit REN = 0x9C; sbit SM2 = 0x9D; sbit SM1 = 0x9E; sbit SM0 = 0x9F; /*------------------------------------------------ P2 Bit Registers ------------------------------------------------*/ sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7; /*------------------------------------------------ IE Bit Registers ------------------------------------------------*/ sbit EX0 = 0xA8; /* 1=Enable External interrupt 0 */ sbit ET0 = 0xA9; /* 1=Enable Timer 0 interrupt */ sbit EX1 = 0xAA; /* 1=Enable External interrupt 1 */ sbit ET1 = 0xAB; /* 1=Enable Timer 1 interrupt */ sbit ES = 0xAC; /* 1=Enable Serial PORT interrupt */ sbit ET2 = 0xAD; /* 1=Enable Timer 2 interrupt */ sbit EA = 0xAF; /* 0=Disable all interrupts */ /*------------------------------------------------ P3 Bit Registers (Mnemonics & Ports) ------------------------------------------------*/ sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6; sbit P3_7 = 0xB7; sbit RXD = 0xB0; /* Serial data input */ sbit TXD = 0xB1; /* Serial data OUTPUT */ sbit INT0 = 0xB2; /* External interrupt 0 */ sbit INT1 = 0xB3; /* External interrupt 1 */ sbit T0 = 0xB4; /* Timer 0 external input */ sbit T1 = 0xB5; /* Timer 1 external input */ sbit WR = 0xB6; /* External data MEMORY write strobe */ sbit RD = 0xB7; /* External data MEMORY read strobe */ /*------------------------------------------------ IP Bit Registers ------------------------------------------------*/ sbit PX0 = 0xB8; sbit PT0 = 0xB9; sbit PX1 = 0xBA; sbit PT1 = 0xBB; sbit PS = 0xBC; sbit PT2 = 0xBD; /*------------------------------------------------ PSW Bit Registers ------------------------------------------------*/ sbit P = 0xD0; sbit FL = 0xD1; sbit OV = 0xD2; sbit RS0 = 0xD3; sbit RS1 = 0xD4; sbit F0 = 0xD5; sbit AC = 0xD6; sbit CY = 0xD7; /*------------------------------------------------ Interrupt Vectors: Interrupt Address = (NUMBER * 8) + 3 ------------------------------------------------*/ #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */ #define TF0_VECTOR 1 /* 0x0B Timer 0 */ #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */ #define TF1_VECTOR 3 /* 0x1B Timer 1 */ #define SIO_VECTOR 4 /* 0x23 Serial PORT */ #endif 然后保存時,文件名為AT89X51.h就OK了。 |
|
| 8樓: | >>參與討論 |
| 作者: 像見 于 2006/1/6 22:00:00 發(fā)布:
謝謝 現(xiàn)在還有一些不太明白的 是建立AT89X51.H文件 里面為什么要填寫#ifndef __AT89X51_H__ #define __AT89X51_H__ /*------------------------------------------------ Byte Registers ------------------------------------------------*/ sfr P0 = 0x80; sfr SP = 0x81; 等等這些東西呢 是根據(jù)什么來填寫的呢 不同的單片機又有什么不同呢 |
|
| 9樓: | >>參與討論 |
| 作者: computer00 于 2006/1/6 22:07:00 發(fā)布:
一般是根據(jù)文件名。用來避免重復(fù)定義的 例如當(dāng)多次包含頭文件時,可能會出現(xiàn)重復(fù)定義的錯誤,加上這兩個之后(還要配合最后的#endif),就不會出錯了。 這個標號要是唯一的。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |