图2-4 STC89C52RC芯片引脚图
(1) 电源和晶振
VCC:供电电压。 GND:接地。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 (2) I/O口 ① P0口
P0口的字节地址为80H,位地址为80H~87H。P0口既可以作为通用I/O口使用,也可以作为单片机系统的地址/数据线使用。当作为输出口使用时,由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。 ② P1口
P1口的字节地址为90H,位地址为90H~97H。P1口只能作为通用I/O口使用。当作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻;当作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。 ③ P2口
P2口的字节地址为0A0H,位地址为0A0H~0A7H。P2口用于为系统提供高位地址,但只作为地址线使用而不作为数据线使用。此外,P2口也可作为通用I/O口使用。 ④ P3口
P3口的字节地址为0B0H,位地址为0B0H~0B7H。P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) (3) 4根控制线
① RST:复位信号。保持RST脚两个机器周期以上的高电平,就可以完成CPU系统复位操作,使系统的一些单元内容回到规定值。
② /PSEN:外部程序存储器读选通信号。在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。
③ /EA/VPP:访问程序存储器控制信号。当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
④ ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此也可作为外部时钟或外部定时脉冲使用。 2.2.3 串口通信
通信主要有两种方式:并行通信和串行通信。并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信[14]是指每个字节的各位分别进行传送的通信方式。 1 串口通信方式
STC89C52串行口可设置四种工作方式,可有8位、10位和11位帧格式。本系统中,STC89C52RC采用串行口工作于方式1,即每帧10位的异步通信格式:1位起始位,8位数据位(低位在前),1位停止位。当SM0=0,SM1=1时,串行口选择方式1。其帧格式为:
起始 D0 D1 D2 D3 D4 D5 D6 D7 停止 图2-5 帧格式图
2 串行通信控制寄存器
(1) 串行控制寄存器(SCON)
SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。
各位含义如下:
① SM0、SM1:串行口工作方式选择位。 ② SM2:多机通信选择位。
③ REN:串行口允许接收位。‘1’时允许接收,‘0’时禁止接收。
④ TI: 串行口发送中断标志位。在方式1中,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束。
⑤ RI: 串行口接收中断标志位。在方式1中,当接收到停止位时,该位由硬件置位。RI=1,表示帧接收结束。 (2) 串行数据缓冲器(SBUF)
串行数据缓冲器SBUF的地址为99 H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。 (3) 电源控制寄存器(PCON)
PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。 (4) 中断允许寄存器(IE)
在IE中,ES位为串行中断允许控制位。ES=0时禁止串行中断,ES=1时允许串行中断。 3 数据发送与接收 (1) 数据发送
在不发送数据时,TXD端保持高电平。当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。 (2) 数据接收
REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。先接收起始位,然后依次将采样RXD端并将
数据移入移位寄存器中。
若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。 (3) 波特率的设定
串口方式1的波特率是可变的,由定时器T1的溢出率决定:
2 SMOD
波特率??定时器T1溢出率32其中,SMOD为PCON寄存器最高位的值。
溢出率为溢出周期的倒数,假定计数初值为X,则计数溢出周期为 12
溢出周期??(256?X)fosc
其中,fosc为晶振频率。 则波特率计算公式为:
SMOD 波特率 ? 2 ? fosc3212??256?X?
(2.2) (2.3) (2.4) 由波特率算出计数初值,以便进行定时器的初始化。初值X确定如下: fosc ? 2 SMOD
X?256?384?波特率(2.5)
2.3显示部分
该部分由锁存器74HC573与数码管构成,单片机通过两片74HC573分别对共阴极数码进行位选和段选。
第三章 软件设计
无线数据传输主要由无线数据收发器NRF24L01、STC89C52RC单片机、显示器和按键组成,收发器与STC89C52RC间用串行口通信。整个系统的各个部分都是服务于无线数据传输这个目的。所以,在整个系统的软件设计中,无线数据的传输是最为重要的。这里使用C语言编写单片机控制程序。
3.1 主程序流程图
当单片机上电开始执行之后,对液晶和单片机寄存器进行初始化,同时设置串口控制字及波特率,接着进入键盘扫描程序和接收程序。若有某个按键按下,则执行相应的键盘子程序;若单片机判断接收到数据,则开始进行CRC校验,如果数据正确就通过液晶显示传送的信息。主程序流程图见图3-1。
按键按下 收到数据 扫描键盘,同时判断是否有数据接收 设置串口工作方式 开始 初始化 N 判断是否有判断是否接N
Y 执行相应的程序 Y N CRC校验是否正确
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的无线射频收发系统 - 课程设计报告(3)在线全文阅读。
相关推荐: