对于基本数据类型量,根据变量值在程序执行过程中是否发生变化,又可分为常量和变量两种。常量——与变量相对应,在程序执行的过程中,其值不能发生改变。习惯上用大写字母来表示符号常量的标识符,用小写字母表示变量标的识符。程序中使用变量须先用标识符作为变量名,并指出所用的数据类型和存储模式。各变量名之间用逗号间隔,类型说明符与变量名之间至少用一个空格间隔。......
2023-11-04
1.串行中断控制寄存器(SCON)
串行口控制与状态寄存器(SCON)是一个逐位定义的8位寄存器,用于定义串行口工作方式以及实施接收和发送控制,字节地址为98H,位地址98H~9FH。SCON各位结构定义见表3-12。
1)SM0、SM1串行口工作方式选择位,两个选择位对应4种工作方式,其实fosc为晶振频率,表3-13所示SM0和SM1工作方式选择位。
图3-18 串行口结构图
表3-12 SCON各位结构定义
表3-13 SM0和SM1串行口工作方式选择位
2)SM2:多机通信控制位。工作方式0中,SM2置0,工作方式1中,若SM2为1,则只有接收到有效停止位时,RI置1被激活。SM2位主要用于工作方式2和方式3,当SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI置1发出中断申请,否则会将接收到的数据放弃。当SM2=0时,则接收数据RI不会被激活。
3)REN:允许串行接收位。REN用于控制数据接收的允许和禁止,由软件置位或者清除,当REN=1时,允许串行接收,REN=0时,禁止串行接收。
4)TB8:在方式2或方式3中,为要发送的第9位数据。也可作为奇偶校验位,根据需要由软件置1和清零,在多机通信中,该位用于表示地址帧或者数据帧。(www.chuimin.cn)
5)RB8:接收到数据第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。
6)TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其他方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。在任何工作方式中,都必须由软件清除TI。
7)RI:接收中断标志位。在方式0,当接收完第8位数据后由硬件置位。在其他工作方式中,在接收到停止位的中间时刻由硬件置位。RI=1时,申请中断,要求CPU读数。在工作方式1中,SM2=1且未接收到有效的停止位时,不会对RI置位。任何工作方式中,都必须由软件清除RI。
2.电源控制寄存器(PCON)
PCON主要是为CHMOS型51单片机实现电源控制而设置的专用寄存器,其中最高位是SMOD,它是与串行口的波特率设置有关的选择倍增位。单元地址是87H,表3-14所示为PCON电源管理寄存器各位定义如下:
表3-14 PCON电源管理寄存器各位定义
SMOD:串行口波特率倍增位,当SMOD=1时,方式1或者3,波特率=定时器1溢出率/16;方式2,波特率=定时器1溢出率/32;当SMOD=0时,方式1或者3,波特率=定时器1溢出率/32;方式2,波特率=定时器1溢出率/64。
GF1、GF0:通用标志位,用户使用软件置位、复位。
PD:掉电方式位。
IDL:待机方式位,当IDL=1,则进入待机工作位。如果PD=1、IDL=1,则进入掉电工作方式。复位时PCON所有位均为0。
有关51单片机初级入门实战教程的文章
对于基本数据类型量,根据变量值在程序执行过程中是否发生变化,又可分为常量和变量两种。常量——与变量相对应,在程序执行的过程中,其值不能发生改变。习惯上用大写字母来表示符号常量的标识符,用小写字母表示变量标的识符。程序中使用变量须先用标识符作为变量名,并指出所用的数据类型和存储模式。各变量名之间用逗号间隔,类型说明符与变量名之间至少用一个空格间隔。......
2023-11-04
注意:进行单片机电子系统设计时,时钟频率一般选用11.05926MHz时,可以获得标准的波特率,所以51单片机选用这个看起来很“怪”的晶振。因为方式0和2波特率是固定传输,方式1和3波特率是可变的,表3-15给出方式1和方式3常用波特率设置。表3-15 常用波特率设置表单片机的串行通信方法较为多样,传统的串行通信方式是通过单片机自带的串行口进行RS232方式的通信。......
2023-11-04
所谓的函数调用就是在一个函数体中引用另外一个已经定义的函数,前者为主调函数,后者为被调用函数。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值。因此在以后各主调函数中不用对ann和circle函数说明,可直接调用。......
2023-11-04
函数名由用户自定义,后面是空括号,代表没有函数参数,即代表无参函数,注意空括号不可以省略。函数被调用时,主调函数将通过实际参数,简称实参,传递实际的值给这些形参。3)函数定义时没有写明类型标识符,则默认为整型。......
2023-11-04
③if-else-if形式:当有多个分支选择时,采用if-else-if语句,形式为if语句1;else if语句2;else if语句3;…使用switch语句时注意以下几点:①case后的各常量表达式的值是不一样的,否则会出现错误。②在case后,允许出现多条语句,可以不用{}括起来。③各case和default语句位置的先后顺序可以改变,而不会影响程序执行结果。......
2023-11-04
提供内部上电自动复位电路,当外加电源电压超过4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。1602LCD芯片逻辑工作电压4.5~5.5V,LCD驱动电压3~5V,最佳工作电压5.0V,显示容量16×2个字符;工作电流2.0mA;字符尺寸2.95×4.35(W×H)mm。表14-1 LCD1602引脚描述第1引脚:VSS为地电源。LCD1602基本操作时序见表14-2。......
2023-11-04
手机电池的使用寿命和单次使用时间以及充电过程密切相关。设计比较科学的充电器往往采用专用充电器控制芯片配合单片机控制的方式。例如在充电后增加及时关断电源、蜂鸣报警和液晶显示等功能。充电器种类繁多,但从严格意义上讲,只有单片机参与处理和控制的充电器才能称为智能充电器。在众多的51系列单片机中,AT89系列单片机在我国得到了极其广泛的应用。而51单片机在实现手机电池充电器方面的应用就更具有意义了。......
2023-11-04
②数组名不能与其他变量名同名。③C语言允许同一个类型说明中,说明多个数组和多个变量。定义一个3行3列共3×3=9个元素的整型数组,可以采用二维数组定义 int a[3][3];其中数组各个元素为a[0][0],a[0][1],a[0][2]a[1][0],a[1][1],a[1][2]a[2][0],a[2][1],a[2][2]二维数组赋值时,可以分段赋值也可以连续赋值。......
2023-11-04
相关推荐