銆愬師鍒涖戝熀浜庡崟鐗囨満鐨勭孩澶栭仴鎺х郴缁熻璁℃瘯涓氳鏂囪璁?- 鐧惧害鏂囧簱 联系客服

发布时间 : 星期四 文章銆愬師鍒涖戝熀浜庡崟鐗囨満鐨勭孩澶栭仴鎺х郴缁熻璁℃瘯涓氳鏂囪璁?- 鐧惧害鏂囧簱更新完毕开始阅读d6f9d662e3bd960590c69ec3d5bbfd0a7956d534

2.2.5电源模块

本设计中用4节5号电池来供电,4节5号电池提供的电压是 5 * 1.5 = 6V,不能直接加到系统里面,所以我用了IN2007这个二极管来分压,IN4007上的压降约为0.7V,6 - 0.7 = 5.3V,那么VCC约为5.3V,5.3V作为VCC没有超过5.5V,可以作为供电电源。

电源模块原理图如图2-8所示。

VCC/+4节1.5V电池GND/12IN4007D6VCC四节5号电池

图2-8 电源电路

2.2.6主机模块

主机电路如图2-9所示。

VCCD3R6470VCC123456789TXD1011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1GNDSTC89C52EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.74039383736353433323130292827262524232221正转D4led反转D5LED运行LEDP1.4P1.5P1.6P1.7RESTR710KC710UFS1SW-PBC530PF晶振C630PFVCCVCC11.0592MHzP2.3P2.2P2.1P2.0 图2-9 主机电路

本设计的主芯片采用STC89C52单片机,STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有

灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位IO 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器计数器,一个6向量2级中断结构,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T12T可选。

STC89C52具体介绍如下: (1) 主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源 GND(Pin20):接地线 (2)外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 (3)控制引脚(4根)

RSTVPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALEPROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号

EAVPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

(4)可编程输入输出引脚(32根)

STC89C52单片机有4组8位的可编程IO口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。

P0口(Pin39~Pin32):8位双向IO口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向IO口线,名称为P1.0~P1.7 P2口(Pin21~Pin28):8位准双向IO口线,名称为P2.0~P2.7 P3口(Pin10~Pin17):8位准双向IO口线,名称为P3.0~P3.7

下文简单介绍一下本设计中使用到的STC89C52的功能寄存器[1],及其初始化。

(1) 串行通信控制寄存器:可位寻址的专用寄存器,它用于定义串行口的工作方式及实施接收和发送的控制,单元地址是98H 。如表2-5所示。

表2-5 SCON寄存器

SCON D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI SM0,SM1 = 00,方式0,8位同步移位寄存器,其波特率为fosc 12[1]

SM0,SM1 = 01,方式1,10位异步接收发送,其波特率可变,由定时器1控制

SM0,SM1 = 10,方式2,11位异步接收发送,其波特率为fosc 64,fosc 32(SMOD)

SM0,SM1 = 11,方式3,11位异步接收发送,波特率可变,有定时器控制。 fosc 是系统晶振的频率,本设计中晶振频率是11.0592MHz = 11059200Hz REN用于控制数据接收的允许和禁止,REN = 1时,允许接收,REN = 0,禁止接收.该位可以软件置位以允许接收,又可以软件清0来禁止接收。

TI 发送操作是在TI = 0下进行的,然后由发送电路自动在数据前后分别添加1个起始位和一个停止位 ,串行数据由TXD引脚输出,发送完一帧数据后,TXD引脚主动维持高电平,且TI在发送停止位时有硬件自动置位,并可向CPU发送中断请求,T1位必须软件复位。

本设计中的,串行口设定工作方式一,SM0,SM1 = 01,方式1,10位异步接收发送,其波特率可变,由定时器1控制,由于设定为波特率可变的10位异步通信方式,发送或接收一帧信息包括1个起始位0,8位数据位和一个停止位1。 这是模式下,发送时钟和接收时钟和通信波特率由定时器1溢出信号经过32分频,并由SMOD倍频,因此方式1的波特率是可变的。

波特率9600bps计算过程 首先由公式:

波特率 = (2SMOD32) * 定时器T1的溢出率 T1的溢出率 = T1计数率产生溢出所需的周期数

= (fosc 12) (2k - TC)

K- 定时器T1的位数 TC-定时器T1的预置初值

SMOD = 0 ,fosc = 11.0592MHz = 11059200Hz,k = 8 ,TC = 0Xfd = 253 代入公式中得 波特率 = (1 32)* (11059200 12) (28 - 253 ) = 9600bps (2) 本设计中用到了TMOD这个特殊功能寄存器。如表2-6所示。

表2-6 TOMD寄存器

TMOD D7 GATE D6 CT D5 M1 D4 M0 D3 GATE D2 CT D1 M1 D0 M0 TMOD的功能是用于控制定时器计数器T0,T1的工作方式的,TMOD寄存器不能位寻址,只能用字节传送指令设置其内容,字节地址是89H[1]。

本设计中TMOD = 0X21,定时器T1工作在方式2,是自动重新装入计数初值的8位定时器计数器工作模式,用于串口通信中波特率发生器,16位的定时器计数器被拆成两个8位寄存器TH1,TL1,CPU在对它们初始化的时候必须装入相同的定时器初值。这样省去了程序需不断给计数赋值的麻烦,计时的准确性也提高了,由T1作为波特率发生器,SCON工作在方式1的时候波特率是由定时器T1的溢出率控制。

而定时器T0工作方式一,是16位的定时器方式,TH0为高8位,TH0为低8位,T0作用是产生50ms的定时,50ms的定时时间是这样得到。 给TH0和TL0赋初值TH0 = 0x4c ; TL0 = 0x00; 由公式得 : T = (M - TC) * T0

M ---计数器的模值 TC---预设的初值

T0---计数器计数脉冲的周期,即单片机系统主频周期的12倍 M = 216 = 65535, TC = 0x4C00 = 19456;T0 = 1211059200 0x4C00 = 19456;65535-19456 = 46080;

T = (M - TC) * T0=(65535-19456)*(1211059200)=46080 * = 0.05S = 50ms; 这样只要启动定时器0后,就会自动产生50ms的定时了。 注意 由于这种方式下,计数初值在每次进入中断后都要重新赋值。