第一讲 C51程序设计基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机C51程序设计教程与实验主讲教师:董蕴华实验指导教师:杨其锋教学安排•本课程共45学时(理论25学时,实验20学时)•课程性质:考查本课程考试以应用程序设计作为考查的评分依据学习本课应具备的基础知识学习本课程应具备的基础知识☆单片机原理及应用☆C语言程序设计学习本课应具备的硬件☆实验板一块☆程序下载线一条本课程主要内容•单片机基础知识(复习)•C51编程语言及开发环境KeiluVision•功能模块的C语言编程实现MCS-51系列单片机的结构(1)面向控制的8位CPU;(2)128B的片内数据存储器;(3)可以寻址64KB的片外程序存储器;(4)可以寻址64KB的片外数据存储器;(5)32根双向和可单独寻址的I/O线;(6)一个全双工的异步串行口;(7)两个16位定时/计数器;(8)5个中断源,两个中断优先级;(9)有片内时钟振荡器;(10)采用高性能HMOS生产工艺生产;(11)有布尔处理(位操作)能力;(12)含基本指令111条,其中单机器周期指令64种。MCS-51系列单片机的内部总体结构88微处理器(运算部件)控制部件B数据存储器RAMP0口P2口程序存储器P1口P3口串行口定时/计数器中断系统特殊功能寄存器(SFR)88ROM/EPROMVCCVSSXTAL1XTAL2PSENALEEARESETY3C822PC922PR1110KC710uF+5VR12510R13510R14510R15510R16510R17510R18510R19510+5V+5V+5Vp1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78RESET9INT1(P3.3)13INT0(P3.2)12T1(P3.5)15T0(P3.4)14X119X218EA/VP31RXD(P3.0)10TXD(P3.1)11P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.728P2.627P2.526P2.425ALE/P30P2.122P2.223P2.324PSEN29P2.021(P3.7)RD17(P3.6)WR16AT89S52R20510R21510R22510R23510P2.2+5VR110KRESET红外遥控接收温度传感器蜂鸣器左(移)上(加)右(移)下(减)南红南黄南绿西红西黄西绿北红北黄北绿东红东黄东绿510×12P0.7P0.6P0.5P0.4P0.0P0.1P0.3P0.212J1扬声器接口P1.1P1.2P1.3P1.0P1.5P1.6P1.7INT0INT1RXDTXDIN4148X4TXDRXDp1.1INT0P1.0+5VR668R768R82.2KR91KR101KR510KC322PC422PC5100nC610uFLED1LED21234USBUSBPC8(RESET)1AGND22AREF21AVCC20XTAL19XTAL210GND8VCC7PC0(ADC0)23PC1(ADC1)24PC2(ADC2)25PC3(ADC3)26PC4(ADC4/SDA)27PC5(ADC5/SCL)28PD0(RXD)2PD1(TXD)3PD2(INT0)4PD3(INT1)5PB0(ICP)14PB1(OC1A)15PB2(OC1B)16PB3(MOS1/OCZ)17PB4(MISO)18PB5(SCK)19IC2ATMEGA48Y212MGND+5VGND+5VGNDGNDGNDGND+5V+5V+5VUSB2USB2USB3USB3USB3P1.5P1.6P1.7RESETVcc11X12X23GND4RST5I/O6SCLK7Vcc28DS1302IC3DS1302Y132.768KHzC16pFC26pFR25.1kR35.1KR45.1K+5V+5V12J2CON2P3.7P3.6P3.5S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16+5VA0A1A2GNDSDASCLWPVCC24C04AT24C04R2510KR2410K数据存储扩展123INT0DS18B20DS18B20DZ13.6VDZ23.6V85508550INT1P2.3P2.2P2.1P2.0D1D2D3D4P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.7P2.6P2.5P2.4P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7RESETP1.4P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.712345J3P1.0P1.1P1.2P1.3P1.41234567891011121314151617181920J5123456789J4P0.0P0.0P0.1P0.1P0.2P0.2P0.3P0.3P0.4P0.4P0.5P0.5P0.6P0.6P0.7P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT11234567894.7kP3.4P3.5P3.5P3.4abfcgdeVCC1245679edcdpbaf10gdp8A1abfcgdeVCC1245679edcdpbaf10gdp8A2abfcgdeVCC1245679edcdpbaf10gdp8A3abfcgdeVCC1245679edcdpbaf10gdp8A4abfcgdeVCC1245679edcdpbaf10gdp8A5abfcgdeVCC1245679edcdpbaf10gdp8A6A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC574LS164A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC674LS164A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC774LS164A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC874LS164A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC974LS164A1B2QA3QB4QC5QD6GND7CLK8CLR9QE10QF11QG12QH13VCC14IC1074LS164P3.6P3.7P1.2P1.3P3.6P3.7+5V+5V+5V单片机实验板----带USB下载功能第一讲C51程序设计基础主要内容:•单片机程序设计语言•单片机汇编语言与C语言的特点•C51语言程序设计知识1.1单片机程序设计语言(1)机器语言:机器可以识别的语言如:74010111010000000001780201111000000000103800111000(2)汇编语言:由指令助记符书写的语言如:MOVA,#01HMOVR0,#02HADDA,R0(3)C51:通用程序设计语言,由函数组成如:voidmain(){intm;m=1+2;}三种语言的特点•机器语言:计算机可以识别,直接面向硬件、程序代码短、可直接运行、运行速度快、但难懂、难记、开发慢;•汇编语言:必须“翻译”成机器语言,直接面向硬件、运行速度快、但通用性差、不易移植;•C语言:使用了与人的思维更接近的关键字和操作函数,容易理解,通用性好、易移植。应用C语言设计单片机程序可以大大加快开发速度,增强程序可读性,便于修改、扩充、移植,是目前开发人员用的最多的一种单片机开发语言。C的优势•C语言作为一种方便语言得到广泛支持,多个硬件开发都用C,如单片机、DSP、ARM。•C本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同单片机中移植过来。•C提供很多数学函数并支持浮点运算,开发效率高。1.2C51与ASM-51相比的优势•对单片机的指令系统不要求了解,仅要求对8051的存储结构有初步了解;•寄存器分配,不同存储器的寻址及数据类型等细节由编译器管理;•程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;•提供的库包含多个标准子程序,具有较强的处理能力;•由于具有方便的模块化设计,便于移植。汇编语言特点•代码执行效率高;•占用存储空间少;•可移植性差。长度上比较:高级语言比汇编语言长15%~200%;执行时间上比较:高级语言比汇编语言增长50%~300%。C51用于编写复杂的大型程序,对要求反应灵敏、控制及时,实时检测等控制系统都是用汇编语言和C语言联合编写的。对时钟要求严格时,使用汇编语言是唯一的方法。1.3C语言程序设计知识简单C程序举例voidmain(){intb,a=1;//a表示一个整型变量,变量名为a//;为语句结束符号b=++a;//a的值加一变为2,然后将a的值赋给b}说明:C程序从main开始执行程序,前一个void表示无值返回;C程序中用到的变量一定要先定义变量的数据类型,只有定义了变量的数据类型后,变量才会在内存中按其数据类型长度给其分配空间。1.3.1C51的标识符•标识符是用来表示组成C51程序的常量、变量、语句标号以及用户自定义函数的名称等。简单的说标识符就是名字,需满足以下原则:•(1)由字母、数字和下划线组成;•(2)由字母或下划线开头;•(3)大小写字母表示不同意义;•(4)标识符不能使用C51的关键字。•如:smatr,Delay,FLOAT是正确的,而是float,p1.1错误的。1.3.2数据类型(P69)每个变量在使用之前必须定义其数据类型。数据类型有以下几种:数据类型位数字节数值域bit10~1signedchar81-128~+127unsignedchar810~255enum162-32768~+32767signedshort162-32768~+32767unsignedshort1620~65535signedint162-32768~+32767unsignedint1620~65535数据类型(二)数据类型位数字节数值域signedlong324-2147483648~2147483647unsignedlong3240~4294967295float3240.175494E-38~0.402823E+38sbit10~1sfr810~255sfr161620~65535单片机中使用最多的是char,int型,默认为有符号型。C51具有标准C语言的所有标准数据类型,除此之外,为了更加有效的利用8051结构,还加入了以下特殊的数据类型。•sbit从字节中声明的位变量0或1。•sfr特殊功能寄存器,sfr字节地址为0~255•sfr16同sfr,只是sfr字地址为0~65535bit、sbit、sfrs和sfr16数据类型专门用于8051硬件和C51编译器,并不是标准C语言的一部分,不能通过指针进行访问。sbit、sfr和sfr16数据类型用于访问8051的特殊功能寄存器.☆特殊功能寄存器(SFR)51系列单片机提供128字节的SFR寻址区,地址为80H-FFH。除了程序计数器PC和4组通用寄存器之外,其他所有的寄存器均为SFR,并位于片内特殊功能寄存器区。这个区域部分可位寻址,字节寻址或字寻址,用以控制定时/计数器,串口,I/O及其他部件。特殊功能寄存器可由以下几种关键字说明。(1)sfr:声明字节寻址的特殊功能寄存器。例:sfrP0=0x80;//P0口地址为80HsfrTL0=0x8A;sfrTH0=0x8C;•注意:“sfr”后面必须跟一个特殊寄存器名;“=”后面的地址必须是常数,不允许带有运算符的表达式,这个常数值的范围必须在特殊功能寄存器地址范围内,位于80H到FFH之间。(2)sfr16:许多新的8051派生系列单片机用两个连续地址的SFR来指定16位值,例如8052用地址0xCC和0xCD表示定时器/计数器2的低和高字节。例:sfr16T2=0xCC;//定义T2口地址的低字节地址T2L=0xCC,高地址T2H=0xCD

1 / 120
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功