1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Similar documents
Microsoft Word - 新正文.doc

FY.DOC

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

Microsoft Word - 專題封面.doc

2012年全国计算机等级考试二级C语言考试大纲

nooog

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3.

《计算机应用基础》学习材料(讲义)

Microsoft Word - LM1095R-AppNote-V0.3.doc

粤社保函〔2013〕80号

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

山东2014第四季新教材《会计基础》冲刺卷第二套

<4D F736F F D D D6D0CEC4D3EFD2F4BACFB3C9C4A3BFE9BFAAB7A2D6B8C4CF312E302E646F63>

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

L4 data representation 2

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C Project 30 C Project 3 60 Project 40

Microsoft Word - CIN-DLL.doc

<4D F736F F D FB971BEF7BB50B971A46CB8735FB773A55FA5ABA5DFB7E7AADAB0AAAFC5A475B77EC2BEB77EBEC7AED55FA97EAE61C0F4B9D2B4BCBC7AB1B1A8EEA874B2CE2E646F63>

_汪_文前新ok[3.1].doc

99 cjt h 7. 0 (8 ) 0 () abc a b c abc0 aaa 0 a () bca abc0 aa0 a0 0 a0 abc a789 a b c (8 ) 9!

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

钢铁金相图谱

<4D F736F F D20C7B6C8EBCABD2DCFC2CEE7CCE22D3130CFC2>

展 望 与 述 评 2 广 电 设 备 与 技 术


Microsoft PowerPoint - JavaÓïÑÔ»ù´¡.ppt

例 如, 一 个 含 有 2000 个 记 录 的 文 件, 每 个 磁 盘 块 可 容 纳 250 个 记 录, 则 该 文 件 包 含 8 个 磁 盘 块 然 后 对 该 文 件 作 二 路 归 并 的 外 排 序, 每 次 往 内 存 读 入 两 个 磁 盘 块, 排 序 后 再 写 回 磁

(Microsoft Word - \246D\252k\267\247\255n_\275\306\277\357_.docx)


不淨觀之探究----以《大度智論》為主

4 / ( / / 5 / / ( / 6 ( / / / 3 ( 4 ( ( 2

第一部分 公共基础知识

<3935BCC6A5D2C1CDB6D52E747066>


Microsoft PowerPoint - ds-1.ppt [兼容模式]

SIK) 者, 需 實 施 1 年 以 上, 經 體 格 檢 查 無 後 遺 症 者 5. 身 體 任 何 部 分 有 刺 青 紋 身 穿 耳 洞 者, 不 得 報 考, 各 項 檢 查 結 果 須 符 合 體 位 區 分 標 準 常 備 役 體 位 二 在 校 軍 訓 成 績 總 平 均 70 分

EK-STM32F

Microsoft Word 生物02.doc

Chapter12 Derived Classes

九下新学期寄语.indd

科学计算的语言-FORTRAN95

为 边 数 的 两 倍, 显 然 必 为 偶 数 而 ii 和 iii 则 不 一 定 正 确, 如 : 对 顶 点 数 N 1 无 向 完 全 图 不 存 在 一 个 顶 点 的 度 为 1, 并 且 边 数 与 顶 点 数 的 差 要 大 于 1 8. 考 查 m 阶 B- 树 的 定 义 A

FZUBRIDGE

Ps22Pdf

4 AC BD F M CD, N ABM M, c, AN, BN AM BM :E F N a c a p + k F k - + F k + + c { a } IMO 4, { a } a a + c,a - 0, a - a - c,, a 0 a c, c, 0, 0, a > 0, 0

JX-300X DCS 3.1 SP202 SP201S SP211 SP243X SP233 SP244 SP221 SP251 SP251-1 SP *600* *425*1000 RS-232/RS-485 5V24V 110W 24V 110W SP291 SB

Microsoft Word - CPE考生使用手冊 docx

用户手册

Microsoft Word - 新建 Microsoft Word 文档.doc

Ps22Pdf

. v dx v d () () l s dl s d (_) d () v s v s () a dv a d (_) ( ) ( ) x- = v- = = v 0 = m/s a = = m/s 2 a- = ( ) x- v- a- Page 2 of 20

2010年9月全国计算机二级C语言笔试试题:文字版

Microsoft Word - 11.doc

数据采集编程指南 下篇 ni.com/china/daq

2015年计算机二级(C语言)模拟试题及答案(四)

untitled

Microsoft Word - SMB-63-2(簡体字).doc

民 國 105 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 選 簡 章 目 錄 壹 考 選 依 據 1 貳 考 ( 甄 ) 選 對 象 1 參 資 格 規 定 1 肆 員 額 及 專 長 類 別 2 伍 報 名 及 選 填 志 願 日 期 方 式 3 陸 選 填 官 科 (

规格说明

378高雄市都市計畫說明書

信息科技学业考试考纲.doc

资源库建设方案(11月14最新)

《C语言程序设计》教材习题参考答案

B

C语言教程

《C语言基础入门》课程教学大纲

内 容 简 介 本 书 由 6 章 组 成, 第 1 章 ~ 第 5 章 紧 扣 上 海 市 高 等 学 校 计 算 机 等 级 考 试 ( 二 级 C 程 序 设 计 ) 考 试 大 纲, 对 C 程 序 设 计 的 教 学 内 容 进 行 了 有 重 点 的 讲 解, 对 考 试 要 求 的 知

1 TPIS TPIS 2 2

3. 企 业 债 券 : 公 司 债 券 : 5. 证 券 公 司 债 券 : 6. 企 业 短 期 融 资 券 : 7. 中 期 票 据 : 8. 资 产 支 持 证 券 : 9. 国 际 开 发 机 构 人 民 币 债 券 : 10. 中 小 非 金 融 企 业 集 合 票 据 例 题? 判 断

四、通 讯 规 约

<453A5C C435CB3F6B0E65C43D3EFD1D4C9EEB6C8BDE2C6CA5C43D3EFD1D4C9EEB6C8BDE2C6CA5FB1EAD7BC5C43D3EFD1D4C9EEB6C8BDE2C6CA5FB1EAD7BC5C43D3EFD1D4C9EEB6C8BDE2C6CA5FB1EAD7BC312E646F63>

Microsoft Word - 01.DOC

,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : : : /16 : : 96 : : : ISBN 7

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>


Microsoft Word - 正文.doc

Tel:

零基础十天学会51单片机创新视频教程

L15 MIPS Assembly

untitled

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 与 C++ 不 同,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 Java 世 界 中, 所 有 事 物 都 是 Object 1. 通 过

9,, (CIP) /. :, ISBN T U767 CI P ( 2004 ) : 122 : / mail.whut.edu.c

Microsoft Word - 09.數學 docx


Microsoft Word doc

1

<4D F736F F D D342D3231D2C7B1EDCCD6C2DBB8E5B1E0D6C6CBB5C3F72E646F63>

極限 limit 是由 無限接 近 的想法產生出來的數學概 念 最初用來決定某些函數在沒 有定義的點上的函數值 使得它 與鄰近的函數值有某種協調關 係 極限觀念的第一個應用 是 在決定函數由平均變化率導出瞬 間變化率 此過程即為微分 萊 布尼茲 Leibniz 從幾何觀點討論微分

10 在 内 部 排 序 过 程 中, 对 尚 未 确 定 最 终 位 置 的 所 有 元 素 进 行 一 遍 处 理 称 为 一 趟 排 序 下 列 排 序 方 法 中, 每 一 趟 排 序 结 束 都 至 少 能 够 确 定 一 个 元 素 最 终 位 置 的 方 法 是 ( ) Ⅰ. 简 单

!"# $ %&&% ( ")*+(,-&%.,/01%,&!$ "$ #$ $$23/!"# %&&% &14145.&&&..! (0(6.&4%.5./ %- /%&..&&& %&&% (. %&&% (. ")*+(,-&%.,/01%,& 23 %(4. %%$&&

微處理機期末專題

一 行 业 信 用 质 量 分 析 信 息 技 术 行 业 细 分 子 行 业 较 多, 部 分 子 行 业 受 到 宏 观 经 济 的 影 响 呈 现 较 明 显 的 周 期 性, 如 电 脑 与 外 围 设 备 办 公 电 子 设 备 等 传 统 智 能 硬 件 行 业, 但 以 技 术 进 步

一 单 项 选 择 题 : 第 1~0 小 题, 每 小 题 2 分, 共 80 分 下 列 每 题 给 出 的 四 个 选 项 中, 只 有 一 个 选 项 最 符 合 试 题 要 求 1. 求 整 数 n(n 0) 阶 乘 的 算 法 如 下, 其 时 间 复 杂 度 是 int fact(in

Microsoft PowerPoint - plan03.ppt

2015 年 水 利 建 设 市 场 主 体 信 用 评 价 结 果 一 勘 察 单 位 ( 共 92 家 ) AAA 级 (48 家 ) 1 中 国 电 建 集 团 北 京 勘 测 设 计 研 究 院 有 限 公 司 2 北 京 市 水 利 规 划 设 计 研 究 院 3 中 水 北 方 勘 测

Microsoft PowerPoint - Compiler-7 - Runtime Environment.ppt [兼容模式]

Microsoft PowerPoint - os_4.ppt

北京2014年会计从业资格考试《会计基础》备考机试卷一

1

Ps22Pdf

Transcription:

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 - 2 -

New Ctrl+N #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 - 6 -

2 1 AT89C51 AT89C2051 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. - 7 -

2 2 XTAL1 19 XTAL2 18 XTAL1 XTAL2 XTAL1 XTAL2 12MHz 6MHz 1MHz-24MHz 30PF AT89C51 12,16,20,24MHz AT89C51 24PC 24MHz,40P6 3. RST 9 24 51 P0 P3 1 SFR ROM 00H 2 3 RAM - 8 -

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 (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-9 -

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 AT89C51 AT89LV51 xxxx xxxx YYWW YYWW Vpp = 5V AT89C51 AT89LV51 xxxx-5 xxxx-5 YYWW 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 AT89C51 C HEX C KEIL uvision2 HEX HEX Intel,, 16, - 10 -

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-11 -

3 2 3 3 PC Windows, 1200 Hello World! AT89C51 3 4 AT89C51, LED 11.0592MHz 12MHz, 1 VCC +5V 31 OneLED - 12 -

http://www.cdle.net #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 // - 13 -

/* */ C C main main 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 - 14 -

char unsigned char signed char signed 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-15 -

TwoLED, #include <AT89X51.h> // 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-16 -

5 * 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-17 -

1 123,0 89 0x 0x34,-0x3B L 104L 034L 0xF340 2 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 - 18 -

#include <AT89X51.H> // P1 P1 void main(void) // const unsigned char design[32]=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 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 - 19 -

5 1 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 RAM D:0x08, 4 Memory Address D:0x08 design uvision2 View 5 2 3-20 -

5 2 5 3 [ ] [ ] auto, extern, static register (auto) C51 6 1 KEIL uvision2 AT89C51 RAM 128 80H FFH 128 52 SFR AT89C51-21 -

data bdata idata pdata xdata code 128 ), 16 256 256 MOVX @Ri (64KB) MOVX @DPTR 64KB, MOVC @A+DPTR 6 1 SMALL,COMPACT LARGE 8051 SMALL 8051 SMALL data COMPACT 8051 256 @R0/R1 LARGE 8051 64KB DPTR sfr,sfr16,sbit sfr sfr16 51 sfr = ; sfr16 = ; AT89C51 P1 sfr P1 = 0x90; // P1 I/O 90H sfr P1 P1 80H FFH sfr 8 sfr16 8052 T2 sfr16 T2 = 0xCC; // 8052 2 T2L=CCH,T2H=CDH sfr16 16 0 1 sbit P1 2 P1.1 : (1)sbit sbit P1_1 = Ox91; sfr sbit 80H-FFH (2)Sbit ^ - 22 -

sft P1 = 0x90; sbit P1_1 = P1 ^ 1; // (3)sbit ^ sbit P1_1 = 0x90 ^ 1; 2 C51 bdata bdata, : unsigned char bdata ib; // ucsigned char ib int bdata ab[2]; // ab[2] sbit ib7=ib^7 // sbit sbit ab12=ab[1]^12; char0-7,int0-15,long0-31 RunLED2 : sfr P1 = 0x90; // sbit P1_0 = P1 ^ 0; // sbit P1_7 = 0x90 ^ 7; // sbit P1_1 = 0x91; // P1 P10,P11,P17 void main(void) unsigned int a; unsigned char b; do for (a=0;a<50000;a++) P1_0 = 0; // P1_0 for (a=0;a<50000;a++) P1_7 = 0; // P1_7 for (b=0;b<255;b++) for (a=0;a<10000;a++) P1 = b; // b P1 = 255; // P1 LED for (b=0;b<255;b++) for (a=0;a<10000;a++) //P1_1 P1_1 = 0; for (a=0;a<10000;a++) P1_1 = 1; while(1); - 23 -

1, www.cdle.net, 2003-7-14, typedef DELPHI DELPHI int Integer C51 typedef int integer; integer a,b; integer int integer,integer int, a,b int typedef typedef int integer; integer = 100; typedef typedef typedef typedef C = C x=10; = = a = 0xFF; // FF a b = c = 33; // b,c d = e; // e d f = a+b; // a+b f = - 24 -

== = if (a=x) = == == a+b,a/b C + / C51 + - * / % 1 2 a+b*(10-a), (x+9)/(y-a) 10.0/20.0 0.5 7/3 2 C ++ -- C VB PASCAL 1 1 1 1 I++ ++I I-- --I I++ I-- I I+1 I-1 ++I --I I+1 I-1 I :( PC MAX232 TTL RS232 MAX232 http://www.cdle.net MAX232-25 -

7 1 MAX232 7 3 MAX232 P DB9 PC com 7 2 DB9-26 -

7 3 MAX232 Hello World Hello! DOWN Windows http://emouze.com comdebug Hello World! - 27 -

7-4 2 C C == VB PASCAL =,!= not P 2 0 1 1 0 1 2 I J I==J,(I=4)>(J=3),J+I>J - 28 -

#include <AT89X51.H> #include <stdio.h> void main(void) int x,y; SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // while(1) printf("! Robot!! n"); // printf(" int,x Y n"); // scanf("%d%d",&x,&y); // if (x < y) printf("x<y n"); // X Y else // X Y if (x == y) printf("x=y n"); // X Y else printf("x>y n"); // X Y PC scanf Printf,scanf www.cdle.net C51-29 -

0 1 1 && 2 1 2 :! 2 7-5 1 2 0 0 1 0 2 1 0 1 2! &&,!True False && True True False!True False && True False False && True //!Ture False False False //False && True False False // False False False - 30 -

#include <AT89X51.H> #include <stdio.h> void main(void) unsigned char True = 1; // unsigned char False = 0; SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // if (!True False && True) printf("true n"); // else printf("false n"); // keil!true False && True 3 C C C51 6 1 2 : ~ ( ) << ( ) >> ( ) & ( ) ^ ( ) ( ) 7 1 X 1 Y 2 X Y ~X ~Y X&Y X Y X^Y 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 7 1-31 -

P1 P1.0-P1.7 P1 P1 LED #include <at89x51.h> void main(void) unsigned int a; unsigned int b; unsigned char temp; // P1 = 0xAA; // D1,D3,D5,D7 P1 10101010, 0 LED for (a=0;a<1000;a++) for (b=0;b<1000;b++); // temp = P1 & 0x7; // P1 0x7 // P1 0x7 temp P1 // LED D1,D3,D5,D7 for (a=0;a<1000;a++) for (b=0;b<1000;b++); // P1 = 0xFF; // LED for (a=0;a<1000;a++) for (b=0;b<1000;b++); // P1 = 0xAA; // D1,D3,D5,D7 P1 10101010, 0 LED for (a=0;a<1000;a++) for (b=0;b<1000;b++); // P1 = P1 & 0x7; // LED D2 // P1=0xAA=10101010 // 0x7 0x7=00000111 // P1 P1=00000010 // O LED for (a=0;a<1000;a++) for (b=0;b<1000;b++); // P1 = 0xFF; // LED while(1); // = C += >>= -= &= *= = - 32 -

/= ^= %= -= <<= C a+=56 a=a+56 y/=x+9 y=y/(x+9) C VB Dim a,b,c C int a,b,c, C 1 2 3 n n C?: :? 1 : 2 0 1 0 2 1 2 a=1,b=2 ab min if (a<b) min = a; else min = b; // a<b min a b - 33 -

min = (a<b) a : b C C C * & = * = & unsigned int ABC CBA 0x0028,0x002A porta 0x002C *,& unsigned int data ABC _at_ 0x0028; unsigned int data CBA _at_ 0x002A; unsigned int data *Port _at_ 0x002C; #include <at89x51.h> #include <stdio.h> void main(void) SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // ABC = 10; // CBA = 20; - 34 -

Port = &CBA; // CBA Port *Port = 100; // Port printf("1: CBA=%d n",cba); // CBA Port = &ABC; // ABC Port CBA = *Port; // Port CBA printf("2: CBA=%d n",cba); // CBA printf(" ABC=%d n",abc); // ABC 0x00 0x00 0x00 0x00 0x0A 0x00 0x002DH 0x002CH 0x002BH 0x002AH 0x0029H 0x0028H ABC = 10; ABC 0x28H 10(0xA) ABC int 0x28H 0x29H 0x28H 0x00 0x29H 0x0A 0x00 0x00 0x00 0x00 0x002DH 0x002CH 0x002BH 0x002AH 0x0A 0x0029H ABC int 0x00 0x0028H CBA = 20; 0x00 0x00 0x002DH 0x002CH 0x14 0x002BH CBA int 0x00 0x002AH 0x0A 0x0029H ABC int 0x00 0x0028H - 35 -

Port = &CBA; CBA Port 0x00 0x002DH 0x2A 0x002CH CBA Port 0x14 0x00 0x0A 0x00 0x002BH 0x002AH 0x0029H 0x0028H *Port = 100; Port 0x00 0x2A 0x002DH 0x002CH 0x64 0x002BH Port CBA 2AH 0x00 0x002AH 100 0x0A 0x00 0x0029H 0x0028H Keil 7 6 7 7-36 -

sizeof size sizeof sizeof ( ) sizeof ( ) printf("char? %bd n",sizeof(char)); printf("long? %bd n",sizeof(long)); : char? 1 long? 4 void main(void) unsigned char a; unsigned int b; b=100*4; a=b; while(1); a 100*4 a b char int char 255-37 -

7 8 b=100*4 b=0x190, Watches a watches 5 Locals watch 1 watch#1( watch#2), 2 F2 a 0x90 b 8 1 INT CHAR CHAR INT 8 2 char int 3 float float long long unsigned unsigned C51 char,int,long float ( ) #include <at89x51.h> #include <stdio.h> void main(void) char xdata * XROM; char a; int Aa = 0xFB1C; long Ba = 0x893B7832; float Ca = 3.4534; SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // XROM=(char xdata *) 0xB012; // XROM *XROM = R ; // XROM a = *((char xdata *) 0xB012); // a = *XROM printf ( %bx %x %d %c n,(char) Aa, (int) Ba,(int)Ca, a);// while(1); - 38 -

1c 7832 3 R XDATA XROM XROM=(char xdata *) 0xB012 0xB012 XROM #define ROM 0xB012 ROM 0xB012 C (1) C C C VB VB 51 C ; b = b * 10; Count++; X = A;Y = B; Page = (a+b)/a-1; Email ; ; C ; (1)while,for ; for (;a<50000;a++); a 0( a a a ) for (;a<50000;a++); for (a=0;a<50000;a++); (2) goto while P3.7 P1 8 1-39 -

#include <AT89x51.h> 8-1 void main(void) unsigned int a; do P1 = 0xFF; // P1 LED while(p3_7); // P3_7 P1 = 0; // LED for(;a<60000;a++); //, a // while(1); // P3_7, - 40 -

(2) BBS C,[],() VB () C ; C #include <at89x51.h> #include <stdio.h> void main(void) unsigned int a,b,c,d; // main? SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TH1 = 0xE8; //11.0592MHz 1200 TL1 = 0xE8; TI = 1; TR1 = 1; // a = 5; b = 6; c = 7; d = 8; // printf("0: %d,%d,%d,%d n",a,b,c,d); // 1 unsigned int a,e; // 1 a = 10,e = 100; printf("1: %d,%d,%d,%d,%d n",a,b,c,d,e); // 2 unsigned int b,f; // 2 b = 11,f = 200; printf("2: %d,%d,%d,%d,%d,%d n",a,b,c,d,e,f); - 41 -

// 2 printf("1: %d,%d,%d,%d,%d n",a,b,c,d,e); // 1 printf("0: %d,%d,%d,%d n",a,b,c,d); while(1); 0 5,6,7,8 1: 10,6,7,8,100 2: 10,11,7,8,100,200 1: 10,6,7,8,100 0 5,6,7,8 (3) C XX XX XX if C 3 : 1: if ( ) if (a==b) a++; a b a 1 2: if ( ) 1 else 2 1 2 if (a==b) a++; else a--; a b a 1 a-1 3 if ( 1) 1 else if ( 2) 2 else if ( 3) 3 else if ( m) n else m if else if else else if - 42 -

(4) switch ( ) case 1: 1; break; case 2: 2; break; case 3: 3; break; case n: n; break; default: switch case break switch case default default printf C 1K scanf 2K 2K AT89C2051 51 PC AT89C51 PC AT89C51 IO ( ) http://www.cdle.net PC LED /*---------------------------------------- CDLE-J20_Main.c PC IO IO V2.0 PC DLL http://www.cdle.net Copyright 2003 http://www.cdle.net All rights reserved. E-mail: pnzwzw@163.com pnzwzw@cdle.net ----------------------------------------*/ - 43 -

#include <AT89X51.h> static unsigned char data CN[4]; static unsigned char data CT; unsigned char TS[8] = 254,252,248,240,224,192,128,0; void main(void) void InitCom(unsigned char BaudRate); void ComOutChar(unsigned char OutData); void CSToOut(void); void CNToOut(void); unsigned int a; CT = 0; // CN[0] = 0; CN[1] = 51; CN[2] = 51; CN[3] = 0; InitCom(6); // 9600 1-8 300 57600 EA = 1; ES = 1; // do for (a=0; a<30000; a++) P3_6 = 1; for (a=0; a<30000; a++) // P3_6 = 0; while(1); // 11.0592M 1 300 57600 void InitCom(unsigned char BaudRate) unsigned char THTL; switch (BaudRate) case 1: THTL = 64; break; // 300 case 2: THTL = 160; break; //600 case 3: THTL = 208; break; //1200-44 -

51 C case 4: THTL = 232; break; //2400 case 5: THTL = 244; break; //4800 case 6: THTL = 250; break; //9600 case 7: THTL = 253; break; //19200 case 8: THTL = 255; break; //57600 default: THTL = 208; SCON = 0x50; // 1, TMOD = 0x20; // 1 2 TCON = 0x40; // 1 TH1 = THTL; TL1 = THTL; PCON = 0x80; //,SMOD RI = 0; // TI = 0; TR1 = 1; // // void ComOutChar(unsigned char OutData) SBUF = OutData; // while(!ti); // TI = 0; // TI // void ComInINT(void) interrupt 4 using 1 if (RI) // if (CT>3) CT = 0; // CN[0] = 0; CN[1] = 51; CN[2] = 51; CN[3] = 0; CN[CT] = SBUF; CT++; RI = 0; //RI if (CN[0]==0x61 && CN[3]==0x61) // axxa - 45 -

//a ID CSToOut(); // // // void CSToOut(void) unsigned char data a; unsigned int data b; switch(cn[1]) //axxa X,0 P0 1 P1 2 P2 3 2 X 3 XX 33 //XX 44 5 5 case 0: // X 3 X P0 = CN[2]; CNToOut(); break; case 1: P1 = CN[2]; CNToOut(); break; case 2: P2 = CN[2]; CNToOut(); break; case 3: P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; CNToOut(); break; case 4: P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; for (a=0; a<8; a++) P0 = TS[a]; for (b=0; b<50000; b++); - 46 -

P0 = 0xFF; for (a=0; a<8; a++) P1 = TS[a]; for (b=0; b<50000; b++); P1 = 0xFF; for (a=0; a<4; a++) P2 = TS[a]; for (b=0; b<50000; b++); P2 = 0xFF; CNToOut(); break; case 5: // CN[2] switch(cn[2]) case 0: ComOutChar(CN[0]); ComOutChar(CN[1]); ComOutChar(P0); ComOutChar(CN[3]); break; case 1: ComOutChar(CN[0]); ComOutChar(CN[1]); ComOutChar(P1); ComOutChar(CN[3]); break; case 2: ComOutChar(CN[0]); ComOutChar(CN[1]); ComOutChar(P2); ComOutChar(CN[3]); break; case 3: ComOutChar(CN[0]); ComOutChar(CN[1]); ComOutChar(P3); ComOutChar(CN[3]); break; - 47 -

51 C break; void CNToOut(void) ComOutChar(CN[0]); ComOutChar(CN[1]); ComOutChar(CN[2]); ComOutChar(CN[3]); CSToOut CN[1] IO CN[1]=0 CN[2] P0 CN[1]=1 P1 if (CN[1]==0) IO InitCom void InitCom(unsigned char BaudRate) InitCom(6), 9600 SCON TCON TMOD SCOM 51 AT89C51 SBUF SBUF SBUF 99H CPU SBUF SBUF 99H sfr sfr SBUF = 0x99; reg51.h at89x51.h #include SCON SCON 51 98H 51 51 SCON MSB LSB SM0 SM1 SM2 REN TB8 RB8 TI RI 8 1 SCON - 48 -

SM0 SM1 8 2 SM0 SM1 0 0 0 fosc/12 0 1 1 8 UART 1 0 2 9 UART fosc/32 fosc/64 1 1 3 9 UART 8 2 1 fosc UART (Universal Asynchronous Receiver SM2 2 3 0 0 REM REM 1 0 REM P3.0,P3.1 REM=0 REM=1 REM=0 TB8 8 2 3 9 RB8 8 2 3 9 / 0 RB8 1 SM2=0 RB8 TI 0 8 TI CPU TI SBUF TI=1 RI 0 8 RI=1 CPU 1 SM2=1 RI RI 1 10 1 0,8 1 1 1 2 AT89C51 AT89C2051 51 0 1 2 89C52 9600 9600 9600 8 1 10 9600-49 -

1 9600 10 960 51 0 fosc/12 12M 1M 2 fosc/64 fosc/32 PCON SMOD SMOD 0 focs/64,smod 1 focs/32 1 3 1 2 52 2SMOD 32 1 PCON SMOD 1 2 1 2 TL1 TH1 TH1 TL1 2 1 /(256 TH1) 51 TH 51 1/12 12M 51 51 1M 11.0592M 9600 11.0592M 12M 1 2 SMOD 1 TH1 11.0592M 9600 (2 32) ((11.0592M/12)/(256-TH1)) TH1 250 // 12M 9600 (2 32) ((12M/12)/(256-TH1)) TH1 249.49 12M TH1 TH1 9600 11.0592M http://www.cdle.net/alldata/mywz/04032401_1.htm - 50 -