单片机学习手册C51版_第1页
单片机学习手册C51版_第2页
单片机学习手册C51版_第3页
单片机学习手册C51版_第4页
单片机学习手册C51版_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机知识学习手册项目一单片机的认识、单片机芯片引脚Pl.o Pl I P1.2 Pl.l Pl.4Pl.5 Pl.6 Pl.711I iRST/VPD一 RXDRq- rxp/Pj.i - I.NTo/Pai - INTt/PjJ-TgL Ti/Pi.s-4 5 6 7 S 9 10 I】 12 138915116RD/Pj.7I?XTALi-18XTALi 一19Vss 一154039383736353433翌3130292827262524232221vcpt>.popo,po,pe>,po,po,po.89C5189s51共有40个引脚,说明如下:1 .电源:VCC(40)

2、-芯片电源,接+5VVSS(20)-接地端;2 .时钟:XTAL1(19) XTAL2(18)-晶体振荡电路反相输入端和输出端。3 .控制线:控制线共有4根,(1) ALE/PROG(30地址锁存允许/片内EPRO网程脉冲ALE功能:用来锁存P0 口送出的低8位地址PROG功能:片内有EPROM的芯片,在EPRO网程期间,此引脚输入编程脉冲。(2) PSEN(29)外ROM读选通信号。(3) RST/VPP(9度位/备用电源。RST( Reset)功能:复位信号输入端。VPP功能:在Vcc掉电情况下,接备用电源。(4) EA/Vpp:内/外ROM选择/片内EPROM编程电源。89C5189s5

3、1芯片用内部 ROM (程序 存储器),所以此引脚必须接高电平+5V.4.输入/输出口线P0 口 8位双向口线P1 口 8位双向口线P2 口 8位双向口线P3 口 8位双向口线? P0.0 P0.7(39 32)? P1.0 P1.7(1 8)? P2.0 P2.7 (21 27)? P3.0 P3.7(10 17)其中P3中的各位有第二功能 思考: 判断第1脚的方法是什么?二、单片机的最小系统OP ,0%中Ea能够让单片机工作的最小硬件电路,称为单片机最*.犷I岛;展,小系统。包括单片机芯片、电源电路、晶振电路、复位电,kQ "d瓯w路。 1、电源电路如果有现成的5V稳压电源,可直

4、接把VCC脚与EA脚 后1RST接+5V,然后把VSS脚接5V电源的地就可以了。如果没有 也包一15现成的稳压电源,可通过220V交流电进行降压一整流一XTA1.2滤波一稳压得到。一羊丞52、复位电路I 工4 3早:XTAL1 %晶施电路复位是指单片机的初始状态,当单片机刚上电时,单片 L?_机应在初始状态。有时程序执行过程中会出现动作乱的现一象,也可让单片机复位-下,让程序从头开始执行。单片 机复位后,各特殊功能寄存器的初始状态教材。复位电路的工作原理是一个 RC电路的充电过程,因单片机的复位是高电平复位,必须在 RST 引脚上保持两个机器周期以上的高电压才能让单片机可靠复位,所以上图中的电

5、阻及电容的 大小要选择合适。复位过程是:当刚接上电源时,+5V通过22UF的电容及10KQ的电阻进行充电,电容相 当于短路,所+ 5V直接加到RST引脚上而复位,称之为上电复位,过一段时间,电容充电完 毕,流过10KQ的电阻的电流为零,RSHI相当于与地(低电平)接在一起,单片机在工作状 态。当在程序执行过程中要进行复位时,可按下按键K1, RST为高电平而复位。3、晶振电路如右上图所示,晶振电路主要由晶振(12MHz与两个电容(30PF左右)组成,为单片机 提供时钟脉冲。三、单片机中数的使用1 .十进制数 主要特点: 基数是10。有10个数码(数符)构成:0、1、2、3、4、5、6、7、8、

6、9。 进、借位规则是“逢十进一、借一当十”。【例】1234.56=1 x 103+2X 102+3 x 101+4X 100+5 x 10-1+6X 10-2=1000+200+30+4+0.5+0.06上述,103、102、101、10°、10-1、10-2称为十进制数各数位的“权”2,二进制数主要特点:基数是2。只有两个数码:0和1。 进、借位规则是 逢二进一、借一当二”。每左移一位,数值增大一倍;右移一位,数值减小一半 二进制数用尾缀B作为标识符。【例】111.11B=1X22 +1X21 +1X20 +1X2-1+1X 2-2=7.75其中,22、21、20、2-1、2-2称

7、为二进制数各数位的“ 权”3.十六进制数主要特点:基数是16。共有16个数符构成:0、1、9、A、B、C、D、E、F。其中,A、B、C、D、E、F代表的数值分别为10、11、12、13、14、15。进、借位规则是“逢十六进一、借一当十六”。十六进制数用尾缀H表示。在C51中十六进制数“ 0X”开头的【例】0XA3.4=10X 161+3 X160+4X 16-1=160+3+0.25=163.25其中,163、162、161、160、16-1、16-2称为十六进制数各数位的“权”。十六进制数、二进制数和十进制数对应关系表1011011B=0X1O11OOOB=0X十进制数十六进制数二进制数十进

8、制数十六进制数二进制数00X000000B110X0B1011B10X010001B120X0C1100B20X020010B130X0D1101B30X030011B140X0E1110B40X040100B150X0F1111B50X050101B160X100001 0000B60X060110B170X110001 0001B70X070111B180X120001 0010B80X081000B190X130001 0011B90X091001B200X140001 0100B100X0A1010B210X150001 0101B二、数制转换1.二进制数与十六进制数相互转换二进制数转

9、换成十六进制数整数部分:自右向左,四位一组,不足四位,向左填零,各部分用相应的十六进制数替代;例 0101 1010B=0X5A 11110101B=0XF51101010B=0X10111B=0X小数部分:自左向右,四位一组,不足四位,向右填零,各部分用相应的十六进制数替代;如:0.1101B=0.D0.1010B=0X0.11101B=0X十六进制数转换成二进制数每一位十六进制数分别用相应4位二进制数替代。十六进制数二进制数十六进制数二进制数0X00000B0X81000 B0X10001 B0X91001 B0X20010 B0XA1010 B0X30011 B0XB1011 B0X40

10、100 B0XC1100 B0X50101 B0XD1101 B0X60110 B0XE1110 B0X70111 B0XF1111 B如 16H=0001,0110B0X1FF=0001,1111,1111B0X4F=0100,1111B0X16.D=0001,0110.1101B0X89=B0XF8=0XED= B0XBC= 十进制数整数转换成十六进制数的方法: 除16取余法323D(十进制尸143H(+六进制数)3.十进制数转换成二进制数、十六进制数整数部分的转换十进制整数转换成二进制整数的方法:除2取余法如48D(十进制)=110000BU进制数)小数部分的转换十进制小数转换成二进制小

11、数的方法:0.75D(十进制数)=0.11B将小数部分乘2取整数法(4、二进制数运算(1) 二进制数加法运算规则:0 + 0 = 0, 0 + 1 = 1 + 0 = 1, 1 + 1 = 0 (向高位进1)00110101B+10011100Biiii11010001B2.二进制数减法运算规贝的 0-0 = 0, 1-0 = 0, 1-1=0,0-1= 1 C向高位借1) 0借【例】101i0101B-10011100B00011001B3,二进制数乘法运算规贝I卜 0X0=0, 1XO=OX1=0, 1X1=1.【例】1101BX 1001R1 101+11014.二进制数除法运算规则:0

12、4-0=0, 04-1=0, 1 + 1=1。【例】1001iioi V mono一 1101 mb一 1101 I5 .二进制数“与”运算“&”:按位与规则:0A0 = 0, 1 A 0 = 0,有 0得0,1 A 0 = 0, 1 A l = lo 全1 得 1【例】10110101B& 10011100B10010100B6 .二进制数“或”运算“I”:按位或规则,0 V 0 = 0, 1 V 0 = 1,有 1 得11 V 1 =0, 0 V l = lo 全0得0【例】10110101BI 10011100B10111101B7.二进制数“异或”运算人按位异或规则:0

13、畲0=0, 0金1 = 1,相同得01金0=1, 1 ® 1 = 0o不同得1【例】10110101Ba 10011100B00101001B:运算对象在运算符的右边 功能:对运算对象的各二进位按位求反, 即使每一位上的。变1;变i为。14:即0 0 0 0 1 1 1 0 敬位求反得0000111011110001<<:左移例如:a<<4功能:把a的各二进制位向左移动4位若a=00010011(十进制19),左移4位后为00110000(十进制48),其中左端移由的0001四位丢弃,右边四位补0000000-00110*1 0110000 .>>

14、 :右移例如:a>>2 功能:把a的各二进位向右移动2位若 a= 0000000000001111(十进制 若), 右移2位后为0000000000000011(十进制3)00000000000011110000000000000011有符号数与无符号数有符号数:最高位为符号位,最高位为“ 0”表示正数,最高位为“1”表 示负数。中00001010B表示是正数(+10),而10010001B表示负数。无符号数:最高位不作为符号位,而当成数值位。二进制数有原码、反码与补码三种编码形式原码:二进制数的原形,可为无符号数,也可有符号数。8位无符号数原码范围:0000 0000B1111

15、1111B (0FFH或0255)8 位有符号数原码范围:1111 1111B0111 1111B (FFH- 7FH 或-127 + 127反码:,正数的反码与原码相同;册 负数的反码,符号位不变,数值部分按位取反。,如:原码:1000 0100BH 反码 1111 1011B备补码: 正数的补码与原码相同; 负数的补码,符号位不变,数值部分按位取反再在 (右边最低位)力口 1备如:备原码:1000 0100BH 反码:1111 1011 +1补码:1111 1100B 补码的用途:将减法运算转换为加法运算。、单片机内部结构单片机内部包括有:一个CPU两个定时/计数器T1、T0, 4KB的程

16、序存储器,128B(字节)的数据存储器,中断系统,串行通信口,4个并行I/O 口。1、存储器的结构单片机中的数据以8位二进制数为一个单元进行存储的,所以存储器的结构以8位二进制 数为一个单元,一个单元就象一层有 8位房间的楼层,每个房间只能存放 0或1存储内容单元地址D7D6D5D4D3D2D1DO存储的十六进教0009H10011011(0009B) =9EB0008H00000010(0008H)=02H0007H01111100(0007H)=7CH0006H11100111(0006H)=0E7H0005H00011111(0005H)=lFE0004H00111001(0004H)=

17、39H0003H11001010(0003H)=OCAHOO02H10101011(0002H)-OAEH0001H10101101(0001H)=OADHOOOOH1°101110(0000H)=0AM(1)程序存储器ROM89S51单片机内部有4KB的程序存储器,用于存放用户编写的程序。单元地址从0000H到0FFFH在一般的单片机控制系统中一般是够用白1如果不够用,可外加芯片扩展到64KB。(2)数据存储器RAM89S51单片机内部有256B(字节/含特殊功能寄存器)的数据存储器,用于存放运算过程中产生的中间结果。如果不够用,可外加芯片扩展到64KB为了方便数据存储器的使用,又

18、将它分成几个区1)工作寄存器区:地址从00H到1FH,共32个存储单元。存储内容单元地址D7D6D5D4D3D2DIDO1FH工作寄存器R八 !r Vr) a19H工fi户寄存器R118H工n户寄存器R0 (17H户寄存却八- 211H工作寄存器Rl乙10H工作寄存器RO /OFH工作寄存器R7、 ! !)1109H工户寄存器R1OSH户寄存器R。/07H工十户寄存器R7- - - 01H工作寄存器R1OOH工作寄存器R0,单片机复位后,默认选择0区,工作区的选择由程序状态字 PSW中的RSI RS0两位设置 PSW程序状态字的各位定义D7D6D5D4D3D2D1D0CYACF0RS1RS0O

19、V-P各位的说明在教材11页,请阅读工作寄存器区的选择方法RS1RS0区号000区011区10:2区113区存储内容单元地址D7D6D5D4D3D2DIDO2FHTFH7EH7BHtot7BH7AH79H78H 21HOFHOEHODHOCHOBHOAH09HOSH20H加06H05H04H03H02H101HOOHI2)位寻址区:地址从20H至ij 2FH共16个单元,见教材15页的表1.3,在这16个单元中 的每一位均有一个地址与它对应。位寻址区的位地址3)堆栈和数据缓冲区:地址从 30H到7FH,本区主要由用户存放数据。当然工作寄存器、 位地址区在没有被用时也可用来存放用户数据。单元地址

20、 3FHD7D6D5D4D3D2DIDOBfa fa .31H/30H/数据缓冲区4)特殊功能寄存器区:地址从80H到FFH,特殊功能寄存器区是分散的,见教材的15页表1.4。在特殊功能寄存器中,如果地址能被8整除,则可进行位操作。如 P1 口的地址为90H,90H=9X16=144144+ 8=18 所以可用 P1.0=1 将P1.0置1或P1.2=1 清零、软件启动、界面图Keil软件的使用或在开始一程序一O阳.iNnn3;I二区国|用心*o曙一Build Comnard Frdin Fites /1、首先建立一个工程点击Projectf New Project如下图所示。File Edi

21、t ViProject,-Bnport H Visionl Project.,Open. Project.,ebug Flash Faripher4ls Tools SVCS Window HelpProject iVorkspactCompoiieritE EnviroiMieikt Books, P B则会出现如下图Create Hev Project叵区Select Device for rarget 'Target 1,则会出现然后注意工程保存在什么位置(要方便自己查找),输入文件,保存类开会自动生成,不用管, 点保存,则会出如下图.Sei mzt DKvi i:k f if

22、;e 1力工“十 Tur",1*诧词初:电工l4olE.£tRM* kmAT39LS52KTO9LS53 ATa9LSB25Z mSLWl ATa9LV5Z AT09LY5S AI3952D5 明器4第1 毕9S4R1FPe£FLtL«nF Vs« 取忤词ad y 疝m (L杵 L) imd qE F41IT Usa Extand4d AsEenBldr (A:5L) lDEtfi-tiid aE A口 神sssT".,RlasESZAT09S53v选择3於51芯片,再点确定«H-i则出现Copy Stmdar4 8061

23、Startup Cade to Project Folitr And Add F£le to Frojtet ?l星了| 否盘) "I这个影响不大可点是或否,影响不大。则会出现:Exxq -耐皿3Fil( Edit View Project Debug Fl野h FeriPr:;=ct J/arkpKe1+1 口 Target 1xW Target 1这样应建立了一个新的工程。可在保存的位置找工程文件名。2、建立一个汇编语言文件。点击File New,如下图所示则出现皆 TckI1匚向X程序文件编辑区Textl为文件名,先要保存一下选为文件保存的位置,文件名要注意一下,用汇

24、编语言编写则后缀(扩展名)为.ASM,如果用C 语言编写则为.C。设置好后点击保存,则程序文件应建立好了。在保存的位置可找到该文件。3、程序录入编辑及编译(1)在程序编辑区录入程序(2)将程序文件添加到工程文件中右键单击Source Groupl如下图则出现Fil 巨 Edit Fi 坦,# Proj ect Debug Flash Peripherals Tocls SVl* Target 1Prc;-ect "二LORG 二I 二二主C: VDoctnents and Set:亲早POptioikE for Group J Source Group 1Open Lin FileO

25、pen 猫亚 FilsF7商 Rebuild target 国 Guild targetHe* GroupY皿电M白匚Qmpo工en±EFLemova Group J Source Group 1 and iI 1s Filesy Incluife E&peiLienci es点击,Add Files to Group Source Group 1 则出现如下图然后点Add选好文件类型为C Source file (*C)再在保存位置中找到刚才编辑好的程序文件, 即可。根圜典跑Project 'A'arkspace-m Twget 1-.弓 Source固m.

26、(3)必要的参数设置点击 ProjectfOption for TargetFiLe Edi t 岂包 w Froj Zct| Dabu4 Fl 星±h Pexiphwral5 Tools SVCS Window 曲 Ip8州 Project.Import U Vi mi cnl Froj ect. BOpen Project.,.Cl q>5 ProjectC&mpanents, Environment, Books.S elec it D&vi e-e for Target Tar g&t VOptions for I-arget f Target

27、V 1Build targetRftb-uild all target filesTranslate C: VDocwn&ikts. and S e 11 i ngs Adm i ni s t r at or M® XXQ. ASFfl则会出现如下图:在Target选项卡中设置好晶振频率 再选Output选项卡,如下图:设置好各项后点击确定,必要的参数应设置完毕(4)程序编译检查点击 Projectf Build target files 如下图所示Eale £dit J£lc*tG.fbu< Plash Fw口phtrilsIo515 斛C5 由谒

28、e Help窗宙Q。蜴鸽再PrajMl WErkspKb-?°i TALftftt L 巨白Sour ce. ns.耳*w Pr je-ct ,Import F VisLiiL Project.Optji Froj qct.#5E fr»jeclC回呼向信hl|;/Il白踹工 .£eltct Dmct fur Tftr<et 'Target 1,OptiQRK fw torpt 'TirpE 1' I Build E趾即 tj.FT% EcEild QL tsr cet files吊E第 Te中二.*1,青 C. Uqmnmts: M

29、ad咤5?|.«加:口) 5 tr*tort臭面YXX3Q. ASM则在界面的最下面出现指示:园I备曲*0零|国皿.Em Id target 'Target 1'bls与 eitibl Lnq XXQ.ASH.*正 在编 译程序Fixi目日聊 Sita: datn=B*l xdata=Ci 仃口壮目=刀-cr白atinw h白k £l1用 Frcrni "XXO",. . "XXQ" U Errurlmj, MhuI里1yL程序的大小| fttiild Coninnand Fmdn Fites /正在生成HEX文件 0

30、错误,0报警如果有错误要改正程序的错误,再进行编译,一直到没有错误为止,要生成HEX文件,我们才能下载到单片机中。程序下载到单片机的程序应用1、启动软件:在桌面找到EFTBITEE图,双击将会出现如下图PROGISP1.6日)立件始命令itS(V)关于刎该H源55配置说羽升5正确选择端口一'.L-0000H000-跖回JL 3 Z 1 的-3LeLeLflBI院-nDnnnnnn编程器及接口IUSBASR甘洋校正醉芯片 W眼51 芯片识鼠 1E: 51位配置方式I可导.送J调入Rwh调入Ewoffl浅出FlwhIF laih:a/4ID;£底位值网一商位值 扩展位值 irai

31、 示:在隹用本联陆Z前建议先浏览说明栏的内容靖程r读识别字r 按股 EEPROM口芯片图腺r痂得雌r空片检至r桃星芯片15潟程F35Hr我is自4a拢r ifiJiEEPADMr smw皆啖盼FLWHr触好戏病爽自动诲出写人状态空雨使用时阻 DQ:(M:MCopytrLtil Or) ZhiffTi SoEtnlu-tInc 30UT必须要选择正确的端口及单片机型号,然后调入从KEIL C51®译生成的HEX文件 2、调入HEX文件:左键单击调入FLASH,口下图所示:孟那|第电|配立|说ffl| H S正确选择端口底配BE才式.向导运JE位蔺 高位0 1 犷展位苒 城睡身及接qp&

32、#177;曰由屏足片|ATESG517芯片识寻呼1E :51 :05 F3择芯型 选好片号温献示:在建用聿歌将之II建设先瓯说雌的内容瞅“h:#B FlashF山加。四哂6 锢程 r读识别手 F芯片喊:: r型片拈豆 口纲程FLASH FLtHHUMBFLASHflXEpmmEpFM:0/0r EEPHCMr晴程培生r惶定芯片r K!ffiSs+i>ftr现供时钟 r臊帆数s淌自前空闲使月时以00:00:(50 Copjri(r) Zhi£史以%即灯工毗20M将会出现HEX文件选择窗口:打开r?ixf TRQGTS:F (Fer L, 5.选择正确文件后,点打开,则出现如下图回

33、区QmEIInElmnJrlednno口一 3aLB3LB2LB1B132位配置方式I向导方式低位值F 高位值 /犷展位值 力晒值|fT读出 写入您所信赖的开发专豪温弗提万:K J U .点使用工软件之前建议先浏览说明栏的内容JLoad Flash iile C:pocuments and SettingsVdminislrftloiffiwxq.hexF显示打开的文件的位置状态空闲使用时闰00.00:00jWiiiim iraan ,mbii|蠲入日期h J诙出FishFldth:2li6M09G编程r南咫脖p芯片瞰r空片检查P编程Fl>SH厂编程EEPRriP长验FL蛤Hr r r

34、r画画画s调入Epworn嗪出£川口同 Epfom:070厂按捡EIF匚M r编堤喀丝 r做定芯片r数梏自动重载厂提供时割r脱机数整*目动Copyright Zhi Softwaie Ine 2007PRdCISP (Ver 1.6.6)文件编 命令(T) 一 选择的 美干曲 弱程蝙辑配置说明升级|国回国熔丝低位辑|自己置说明升轨O口口口 口口口位展扩丝熔QDmmElmEIQMi.LB 3LG2BlB2LB1位配置方式峭导方知f距位值 / 向位值 /扩展位值 加理值|FF读出写入调A fe曲读出Flm新Flash:211G/40%编程读识另序 q芯片端 r空片检查册入Ep<om

35、读 ajEprcimEpromzOZOF EEPROMr编程馆丝 r锁定芯片在使用本敬件之前建谀先浏览说明栏的内容小Load Fla?h file C:Dncuments ord §初后§国依1|71而151川01面0:4 hexJ: Er曰£T.Writ日 Flash.Verily FlashSuccessfully doneV编程FLASH n 扁程 EE PR OH 校验FLiSH一数据自动再栽r提供时转r脱机数据显示程序下戴的进度目擦除3、将HEX文件下载到单片机芯片选择正确后,检查单片机是否连接好,准备好后就点击自动,则会出现如下图,PRQGISP (&

36、#165;er L.6.6)住用时间 00:00:11 IIIIIIIIIIIIIII程序下载完成后,就会看到单片机板上 LED灯在点亮了。如果要修改源程序,一定要重新编译,重新调入 HEX文件,重新将HEX文件下载到单片机芯 片上,才能反映出修改后的程序是否正确。如果下面的提示框出现表示USBAS居区动文件安装有问题progisperror: could not find USB ASP device:旅如果下面的提示框出现,请检查USB连接线,ISP连接线和开发板的电压项目二 单片机控制8位发光二极管、发光二极管(LED工作原理LED的符号图及电路图工作原理:当LED的阳极加正电压,阴极加

37、负电压,就有电流流过 LED,则会发光 实训板控制LED的电路图。从上图可看出,由于二极管的阳极已接上了 +5V,所以只要在阴极接地(0V)就可以发光。由 于阴极接的是P1 口,所以只要P1 口的某一位输出二进制的0,对应的二极管就发光。如:当P1=F0H时,WJ LED1, LEDZ LED3 LED4亮,只要执行指令:#include<reg51.h>/fe含头文件,该文件定义了特殊功能寄存器void main() / 主函数花括号开头P1=0xF0;/ P1(P1 要大写)口低4 位 LED 亮当需要LED1, LED3 LED5, LED7亮时,P1中各位的电平是(1表示高

38、电平,0表示低电平)分别用二进数与十六进制数表示:当需要LED2, LED4, LED6, LED8 亮时, P1 中各位的电平是(1 表示高电平,分别用二进数与十六进制数表示:当需要 LED1, LED2, LED3, LED8 亮时, P1 中各位的电平是(1 表示高电平,0 表示低电平)0 表示低电平)分别用二进数与十六进制数表示:当需要 LED1, LED2, LED3, LED4 亮时,P1 中各位的电平是(1 表示高电平,0 表示低电平)分别用二进数与十六进制数表示:延时函数(程序) 第一种方法:void delay (unsigned int t) unsigned int i;

39、for(;t>0;t- -)for (i=1;i<124;i+);第二种方法:void delay (unsigned int t) unsigned char i;while(t- -)for (i=0;i<124;i+);学习体验例子一用C51编程实现LED1到LED8循环点亮(跑马灯)#include<reg51.h> / 头文件包含#define uchar unsigned char / 定义无符号字符型数据用 uchar 代替 unsigned char#define uint unsigned int / 定义无符号整型数据用 uint 代替 uns

40、igned intsbit P10=P1A0;用P10定义单片机的1号引脚(PIP;字母要大写)sbit P11=P1A1; 用P11定义单片机的2号引脚(PY1;字母要大写) sbit P12=P1A2;sbit P13=P1A3sbit P14=P1A4sbit P15=P1A5sbit P16=P1A6sbit P17=P1A7; 用P17定义单片机的8号引脚(Pi7;字母要大写)/ 下面是延时子程序void delay(unsigned int t)uchar i;while(t-)for(i=0;i<120;i+);/ 下面是主函数,整个程序中有且只有一个主函数void mai

41、n()while(1) / 一直执行以下程序P10=0;/LED0 亮 delay(600);/ 调用延时函数,括号内的 P10=1;/LED0 灭P11=0;/LED1 亮 delay(600);/ 调用延时函数,括号内的 P11=1;/LED1 灭P12=0;/LED2 亮 delay(600);/ 调用延时函数,括号内的 P12=1;/LED2 灭P13=0;/LED3 亮 delay(600);/ 调用延时函数,括号内的 P13=1;/LED3 灭P14=0;/LED4 亮 delay(600);/ 调用延时函数,括号内的P14=1;/LED4 灭P15=0;/LED5 亮 delay

42、(600);/ 调用延时函数,括号内的 P15=1;/LED5 灭P16=0;/LED6 亮 delay(600);/ 调用延时函数,括号内的 P16=1;/LED6 灭P17=0;/LED7 亮 delay(600);/ 调用延时函数,括号内的 P17=1;/LED7 亮600 要与600 要与600 要与600 要与600 要与600 要与600 要与600 要与uint x 类型对应uint x 类型对应uint x 类型对应uint x 类型对应uint x 类型对应uint x 类型对应uint x 类型对应uint x 类型对应修改delay(600)延时函数中的数据如改为 100

43、或800,发现什么问题?说明什么问题?拓展任务:1、若要实现LED8到LED1循环点亮,应如何修改程序?2、若要实现 LED1、 LED2 LEDa LED4亮灭两,再至U LED5 LED6 LED7 LED8亮灭两次,应如何修 改程序?项目三 C51编程基础一、C51程序的基本结构以P1.0控制LED闪烁程序为例说明#include<reg51.h>/头文件包含,定义特殊功能寄存器#define uchar unsigned char / 定义用 uchar 表示 unsigned char#define uint unsigned int / 定义用 uint 表示 unsi

44、gned int sbit LED=P1A0;定义用 LED=P1A0 (P1.0)/下面是定义延时函数void DelayMS(uint x) 括号内的uint x为形式参数uchar i;/定义i为无符号(uchar)变量8位二进数while(x-)/while 循环语句 for(i=0;i<120;i+);/下面是主 函数(程序)void main()/主函数开头while(1) /while 循环语句LEDd LED; /P1.0 取反,0 变 1 , 1变 0DelayMS(150); 调用延时函数解格式特点关键字必须用小写字母,大小写敏感不使用行号可使用空行和空格常用锯齿形书

45、写格式优秀程序员的素质之一: 使用TAB缩进 对齐有足够的注释 有合适的空行 用流程图描述算法用一些图框表示各种操作的算法描述方法特点:用图形描述算法,直观形象,易于理解。、流程图描述算法的三种基本结构顺序结构:选择结构:循环结构:当型直到型图1.2顺序结构三、C51基本数据类型、运算符与表达式 1、C语言的数据类型在舁 厅P数据类型名称长度取值范围1unsigned char无符号字符型单字节(8位二进制数)0 2552signed char有符号字符型单字节(8位二进制数)-128 +1273unsigned int无符号整型双字节(16位二进制数)0 655354signed int有符

46、号整型双字节(16位二进制数)-32768+327675unsigned long无符号长整型4字节(32位二进制数)0 42949672956signed long有符号长整型4字节(32位二进制数)-2147483648 +21474836477folat浮点型4字节(32位二进制数)±1.175494E-38 ± 3.402823E+388*指针型13字节对象的地址9bit位0或110sfr特殊功能寄存 器单字节(8位二进制数)0 25511sfr1616位特殊功能 寄存器双字节(8位二进制数)0 6553512sbit可寻址位位0或12、常量定义:程序运行时其值不能

47、改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define符号常量名常量一般用大写字母#define PRICE 30main()int num,total;num=10;total=num*PRICE;3、标识符定义:用来标识变量、常量、函数等的字符序列。命名原则:只能由字母、数字、下划线组成,且第一个字符必须是字母或下划线 大小写敏感。不能使用关键字。见名知意。不宜混淆如l与I, o与0。长度:VC 6.0为255个字符。例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33lotus_1_2_3char

48、a>b _above $1234、变量概念:其值可以改变的量变量名与变量值变量定义的一般格式:数据类型 变量1,变量2,,变量n;四、算术运算符和算术表达式1、基本算术运算符:力口: + ; 减:-;乘:*;除:/ ;求余:% 两整数相除,结果为整数%是求余运算,要求两侧均为整型数据$例 5/2= 2十-5/2.0 = -2.5帝例 5%2= 1-5%2= -11%10= 1#5%1=05.5%2()2、自增、自减运算符 + -I 作用:使变量值加1或减1I种类:由前置+i, -i(先执行i+1或i-1,再使用i值)生后置i+,i-(先使用i值,再执行i+1或i-1)例:j=3; k=+j;/k=4,j=4j=3; k=j+;/k=3,j=4多 j=3; printf("d ,+j);/4* j=3; printf("d ,j+);/3"a=3;b=5;c=(+a)*b;/c=20,a=4缶 a=3;b=5;c=(a+)*b;/c=15,a=43、简单赋值运算符符号: = 格式:变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量4、复合赋值运算符种类:+= -= *= /= %= «= 

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论