51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 -
1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project 1 3 2 Ateml AT89C51 1 4 AT89C51 3 KEIL Demo C C 1 5 1 2 File New Ctrl+N - 2 -
#include <AT89X51.H> #include <stdio.h> void main(void) { SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TCON = 0x40; // 1 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // } while(1) { } printf ("Hello World!\n"); // Hello World 1 4-3 -
1 5 Hello World! 4 1 5 3 File Save Ctrl+S 1 3 test1.c KEIL C 1 6 Source Group1 Add File to Group Source Group 1 ADD Source Group1 + 1 6-4 -
5 C HEX HEX 1 7 1 2 3 1 2 3 3 5 123 4 6 \ Debug Start\Stop Debug Session Ctrl+F5 1 7 (6) 1 8 1 2 3 4 5 51 4 Hello World C \ KEIL KEIL uvision2-5 -
1 8 51 C PC C C C PC C 51 51 MSC51 51 Atmel AT89C51 AT89C2051 AT89 51 P 2 1 AT89C51 AT89C2051-6 -
AT89C51 AT89C2051 4KB Flash 1000 2KB Flash 1000 :0Hz-24MHz 128 RAM 2 16 / :0Hz-24MHz 128 RAM 2 16 / 6 6 32 I/O 15 I/O 2 1 1 AT89C51 AT89C2051 2 1 AT89C51 AT89C2051 2 1 AT89C2051 IO RAM ROM Flash AT89C51 AT89C51 1. Vcc 40 GND 20 5V AT89LV51 2.7-6V, 2. 2 2 XTAL1 19 XTAL2 18 XTAL1 XTAL2 XTAL1 XTAL2 12MHz 6MHz 1MHz-24MHz 30PF - 7 -
AT89C51 12,16,20,24MHz AT89C51 24PC 24MHz,40P6 3. RST 9 24 51 P0 P3 1 SFR ROM 00H 2 3 RAM 2 3 4. (1) P0 [P0.0-P0.7] P0 8 I/O 1 1 8 TTL Flash ; P0 ( 8 )/ (2) P1 [P1.0 P1.7] P1 8 I/0 4 TTL 1 Flash 8 (3) P2 [P2.0 P2.7] P2 8 I/0 4 TTL 1 Flash 8 16 P2 8 8-8 -
(4) P3 [P3.0 P3.7] P2 8 I/0 4 TTL 1 Flash P3 2 2. P1 3 P3 P3.0 RXD P3.1 TXD P3.2 0 INT0 P3.3 1 INT1 P3.4 0 (T0) P3.5 1 (T1) P3.6 WR P3.7 RD 2 2 P3 4.7 10K Vcc GND 5. (1) ALE/PROG 30 ALE ALE ( 1/6) ALE Flash PROG (2) PSEN 29 AT89C51 2 (3) EA/Vpp 31 AT89C51 0000H-FFFFH, Flash Vpp Vpp 2 3 Vpp = 12V Vpp = 5V AT89C51 AT89LV51 AT89C51 AT89LV51 xxxx YYWW xxxx YYWW xxxx-5 YYWW xxxx-5 YYWW 030H=1EH 030H=1EH 030H=1EH 030H=1EH 031H=51H 031H=61H 031H=51H 031H=61H 032H=FFH 032H=FFH 032H=05H 032H=05H 2 3 Vpp - 9 -
AT89C51 C HEX C KEIL uvision2 HEX HEX Intel,, 16, test.uv2 3 1 1 Options for Target Target1, Project Output 3 2 1 2 3 HEX HEX 3 3 3 1 1 Project 3 1-10 -
3 2 3 3 PC Windows, 1200 Hello World! AT89C51 3 4 AT89C51, LED 11.0592MHz 12MHz, 1 VCC +5V 31 OneLED http://cdle.yeah.net http://cdle.126.com - 11 -
#include <AT89X51.h> // void main(void) // { // unsigned int a; // a int /* */ do{ //do while for (a=0; a<50000; a++); // P1_0 = 0; // P1.0 LED for (a=0; a<50000; a++); // P1_0 = 1; // P1.0 LED } while(1); } 3 4 AT89C51 KEIL C // /* */ C C main main - 12 -
main main OneLED LED IO 1 for (a=0; a<50000; a++) LED LED C C 1 Timer1 TIMER1 1Timer C51 32 P KEIL uvision2 ANSI C 32 51 KEIL uvision2 C 1-1 1-2 4 1 KEIL uvision2 C51 C char,int,short,long,float double C51 int short float double unsigned char 0 255 signed char -128 +127 unsigned int 0 65535 signed int -32768 +32767 unsigned long 0 4294967295 signed long -2147483648 +2147483647 float 1.175494E-38 3.402823E+38 * 1 3 bit 0 1 sfr 0 255 sfr16 0 65535 sbit 0 1 4 1 KEIL uvision2 C51 1 char char unsigned char signed char signed - 13 -
unsigned char 0 255 signed char 0 1-128 +127 unsigned char ASCII 255 1 2 int int int signed int unsigned int signed signed int -32768 +32767 0 1 unsigned int 0 65535 unsigned char unsigned int LED 4 1 D1 unsigned int D2 unsigned char 4 1 4 TwoLED, #include <AT89X51.h> // - 14 -
void main(void) // { unsigned int a; // a unsigned int unsigned char b; // b unsigned char do { //do while for (a=0; a<65535; a++) P1_0 = 0; //65535 P1.0 LED P1_0 = 1; // P1.0 LED for (a=0; a<30000; a++); // for (b=0; b<255; b++) P1_1 = 0; //255 P1.1 LED P1_1 = 1; // P1.1 LED } for (a=0; a<30000; a++); // } while(1); D1 D2 b 0 255 for (b=0; b<255; b++) for (b=0; b<256; b++), b 256 P1_1 = 1 a 0 65535 3 long long long signed long unsigned long signed signed int -2147483648 +2147483647 0 1 unsigned long 0 4294967295 4 float float 7 IEEE 754 5 * - 15 -
C51 1 3 6 bit bit C51 0 1 Boolean True False 7 sfr sfr 0 255 51 sfr P1 = 0x90 P1 P1 P1 = 255 P1 AT89C51 8 sfr16 16 sfr16 0 65535 sfr16 sfr T0 T1 9 sbit sbit C51 RAM sfr P1 = 0x90; // P1 sbit P1_1 = P1 1; //P1_1 P1 P1.1 // P1.1, sbit P1_1 = 0x91; P1_1 P1.1 KEIL C51 C51 1 123,0 89 0x 0x34,-0x3B L 104L 034L 0xF340 2-16 -
0.888,3345.345,0.0 0 [ ] [. ]e[ ] [], 125e3,7e9,-3.0e-3 3 a, d 5 1 4 test, OK C o A A 5 o n r t b f ASCII 16/10 (NULL) 00H/0 (LF) (CR) 0AH/10 0DH/13 (HT) 09H/9 (BS) 08H/8 (FF) 0CH/12 ' 27H/39 " 22H/34 5CH/92 5 1, #difine False 0x0; // #difine True 0x1; // False 0,True 1 // False 0 True 1 unsigned int code a=100; // code a const unsigned int c=100; // const c int a=110 a++ 6 LED P1 LED 5 1 RunLED #include <AT89X51.H> // P1 P1 void main(void) { // cons tunsigned char design[32]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, - 17 -
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, 0xE7,0xDB,0xBD,0x7E,0xFF}; unsigned int a; // unsigned char b; // C51 // do{ for (b=0; b<32; b++) { for(a=0; a<30000; a++); // P1 = design[b]; // P1 } }while(1); }, LED AT89C51 P1 P1 O LED P1 P1 P1 0xFE, 11111110, D0 0 P1.0 LED1 a KEIL uvision2 IO 5 1-18 -
Peripherals I/O Ports Port1 Port1 5 3 2 Port1 5 3 1 5 2 1 / / Breakpoints P1 = design[b]; Port1 5-2 2 Port1 Port1 P1 P1 P1 Pins 1 5 2 2 3 5 3 3 Watches design code D:0x08, 4 Memory Address D:0x08 design uvision2 View 5 2 3 5 2 5 3-19 -