您好,欢迎访问三七文档
C51相关知识单片机C语言SFR声明:sfrP0=0x80;sfrTCON=0x88;sbitIT0=TCON^0;sbitLED=P1^0;sbitbeep=P1^1;一个字节是8位,一位控制一个I/O口,字节控制所有的I/O口常用延时办法非精确延时1、for(i=0;i100;i++);2、i=100;while(i--);For(表达式1;表达式2;表达式3){语句(内部可为空)}执行过程:1.求解一次表达式1.2.求解表达式2,若其值为真(非0即为真),则执行for中语句。然后执行第3步。否则结束for语句,直接跳出,不再执行第3步。3.求解表达式3.4.跳到第2步重复执行。While(表达式){语句(内部也可为空)}特点:先判断表达式,后执行语句。原则:若表达式不是0,即为真,那么执行语句。否则跳出while语句。延时子程序voiddelay(uintz){uintx,y;for(x=z;x0;x--)for(y=122;y0;y--);}常用延时办法精确延时办法1、利用库函数_nop_();(需要includeintrins.h)2、利用定时器进行定时(后边的课程进行介绍)变量类型关键字所占字节取值范围Signedchar1-127~127unsignedchar10~255Signedint2-32768~32768Unsignedint20~65535Signedlong4-2147483648~2147483647Unsignedlong40~4294967295Float4-3.4*10-38~3.4*1038C语言位运算符&:按位与9&5即00001001&00000101|:按位或9|5即00001001|00000101^:按位异或9^5即00001001^00000101~:取反~00001001:左移000000013:右移000010013++,--:a++;++a;a--;--a;函数函数:实现一个特定功能的模块。Main()函数为主函数,且唯一。注意:如果函数体放在main函数的后边,则需要进行函数声明才能使用。数组数组是一组变量,这组变量需要满足三个条件:1、具有相同的数据类型2、具有相同的名字3、在存储器中是被连续存放的a[5]={1,2,3,4,5}a[]={1,2,3,4,5}a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;Switch语句适合多选一的选择性语句,具体使用方法:Switch(表达式){case表达式一:语句1;case表达式二:语句2;……default:语句n;}C51中断服务程序外部中断0中断服务程序voidexter0()interrupt0{}定时器0中断服务程序voidtimer0()interrupt1{}外部中断1中断服务程序voidexter1()interrupt2{}定时器1中断服务程序voidtimer1()interrupt3{}串行通信中断服务程序voidserialcom()interrupt4{}流水灯实验练习1、8个发光管由左至右间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。2、8个发光管间隔200ms由左至右,再由右至左,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。3、间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。中断控制流水灯中断的SFR中断使能控制寄存器IEEA:总中断使能位,总阀门。EC:PCA中断使能位ET2:定时器2中断使能位ES:串口中断位76543210符号EAECET2ESET1EX1ET0EX0ET1:定时器1溢出中断使能EX1:外部中断1使能ET0:定时器0溢出中断使能EX0:外部中断0使能80C51单片机的中断优先级有三条原则:CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。中断响应条件中断源有中断请求;此中断源的中断允许位为1;CPU开中断(即EA=1)。以上三条同时满足时,CPU才有可能响应中断。中断响应条件使用中断的方法第一:设置中断允许寄存器IE,将中断允许总控制位EA和要使用的中断相对应的位“置1”。第二:设置中断优先级寄存器IP,将高优先级的中断的相应位“置1”。第三:写中断服务程序(注意中断服务程序入口)定时器和计数器2个定时器/计数器:定时器0和定时器1定时器:每经过一个机器周期,计数寄存器加1。因此,可以将机器周期看作为计数周期。计数器:每当外部计数管脚T1,发生一次1到0的跳变,寄存器加1。此功能中,外部输入引脚每个机器周期被采样一次。特殊功能寄存器TCONTF:定时器溢出标志。溢出时,该位自动置1。中断执行时硬件清零,或者软件清零。TR:定时器运行控制位,置1开始计时,清0停止计时。位76543210符号TF1TR1TF0TR0IE1IT1IE0IT0定时器的特殊功能寄存器TMODT1和T0分别代表单片机两个计数器GATE:该位被置位时为门控位。仅当TR1被置位并且INT1脚为高,定时器开始计数。当该位被清零时,只要TR1被置位,定时器1马上开始计数。C/T:该位为0的时候,用作定时器,该位为1的时候,用做计数器。位76543210符号T1GATET1C/TT1M1T1M0T0GATET0C/TT0M1T0M0M1,M000011011模式0模式1模式2模式3模式1:16位的计数器。(TH1,TL1)模式2:自动装载8位计数器。主要应用在串口波特率发生器。模式0&模式3:几乎不用。TCON和TMOD复位后都会自动变成0x00.使用定时器的方法第一:设置特殊功能寄存器TMOD,使之工作在需求的状态。第二:设置计数寄存器的初值,精确设定好定时时间。第三:设置中断允许寄存器IE,允许定时器中断第四、设置特殊功能寄存器TCON,通过打开TR来让定时器进行工作。TR0/1=1;第五、写中断服务程序(注意要重新赋定时器初值)作业1、充分理解中断的意义。2、理解清楚定时器在工作方式1下的编程方式和使用方法,并且独立使用定时器进行流水灯实验操作。3、学会通过查找设置特殊功能寄存器SFR的方式来编写程序。4、使用照葫芦画瓢将这节课的全部程序重新编写并且下载到单片机里边,看是否能够将功能进行实现。数码管显示器及其接口单片机系统中常用的显示器有:发光二极管LED(LightEmittingDiode)显示器、液晶LCD(LiquidCrystalDisplay)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。我们的学习板用共阳LED显示器,根据电路连接图显示16进制数的编码已列在下表。共阴极共阳极共阳数码管真值表0123450xc00xf90xa40xb00x990x926789Ab0x820xf80x800x900x880x83CdEF0xa70xa10x860x8e共阴数码管码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0123450x7d,0x07,0x7f,0x6f,0x77,0x7c,6789AB0x39,0x5e,0x79,0x71,0x00CDEF无显示LED数码显示方式及电路静态显示方式LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示动态显示:轮流向各位数码管送入数据,并且将数据输入速度控制在人肉眼所分辨不出来的范围内,利用发光二极管的余晖让人的视觉能够识别的过程。人眼睛的分辨率大约在50ms左右。动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。ALEWRRDRXDTXDINT0EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND20U189C52PSENP10P11P12P13P14P15P16P17T0T1INT1P00P01P02P03P04P05P06P07P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27P20P21P22P23abfcgdeDPY117421105abcdefg3dpdpabfcgdedpabfcgdedpabfcgdedpC06C28C39C412LEDDPY4-LED12345678161514131211109R1KP00P01P02P03P04P05P06P075V1、键盘的分类键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。89S52按键在闭合和断开时,触点会存在抖动现象:按下抖动释放抖动理想波形实际波形稳定闭合+5V+5VAB无抖动有抖动消除抖动方法硬件—单脉冲触发器,即双稳态触发器或基本R-S触发器。软件—延时,用子程序K99K10AK15FP10P11P12P13P14P15P16P17EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10VCC40GND20U189C52P10P11P12P13P14P15P16P17K00K11K22K33K55K66K77K88K44K11BK12CK13DK14EAT89S52串行通信280C51的串行口1计算机串行通信基础3单片机串行口编程应用举例1计算机串行通信基础随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。计算
本文标题:C语言相关知识
链接地址:https://www.777doc.com/doc-3392328 .html