单⽚机实验板的安装与调试
单⽚机实验板的安装与调试
安装制作单⽚机实验板是通过实践学习单⽚机技术的⼀种途经,对于掌握单⽚机电路组成原理和应⽤技术具有很好的效果,可以初步形成设计单⽚机应⽤电路的能⼒。实验板的安装与调试⽤到了集成开发软件Keil uVision2,在该软件使⽤C语⾔编辑单⽚机应⽤程序,可以初步培养软件编程的能⼒,为单⽚机技术开发应⽤奠定基础。⼀、单⽚机的基本知识1.1单⽚机的基本结构
单⽚机是将处理器(CPU)、⽚内数据存储器(RAM)、⽚内程序存储器(ROM)、定时器/计数器、并⾏输出输⼊接⼝P0-P3等主要计算机部件集成到⼀块集成电路芯⽚上,具有了微型计算机的功能。
实验板采⽤Atmel公司的ATS52芯⽚(STC公司的STCC52芯⽚),该单⽚机芯⽚主要由1个8位处理器(CPU)、⽚内数据存储器(RAM)、⽚内程序存储器(ROM或EPROM)、2个定时器/计数器、4个并⾏输出输⼊接⼝P0-P3、6个中断源的中断控制系统、1个全双⼯串⾏⼝UART以及⽚内振荡器与时钟发⽣电路等部分,见图1所⽰。
图1 单⽚机组成原理图1.处理器(CPU)
CPU是单⽚机的核⼼,由运算器和控制器组成。运算器包括算术逻辑单元ALU、累加器A、寄存器B、状态字寄存器PSW、暂存器和位处理器等,功能主要实现算术和逻辑运算。控制器包括程序计数器PC、堆栈指针SP、数据指针DPTR、指令寄存器、指令译码器、定时电路及控制电路等。控制器功能是使单⽚机各部件按⼀定时间节拍协调⼯作。2.存储器
存储器包括程序存储器(ROM)和数据存储器(RAM)。程序存储器⽤于存放程序和常数,可提供8KB寻址空间(外存可扩展KB)。ATS52与STCC52芯⽚采⽤的是快速可擦除FlashROM程序存储器。数据存储器⽤于存放读写数据和运算结果,可提供256B寻址空间(外存可扩展KB)。3.定时器/计数器
ATS52型单⽚机内部有3个16位的定时器/计数器,以实现定时和计数功能,并以定时或计数的结果对系统进⾏控制。4.并⾏输⼊输出⼝
ATS52型单⽚机有4个8位并⾏输⼊输出⼝,即P0、P1、P2、P3⼝,它们都是双向端⼝。在系统扩展时,必须靠P0、P2送出数据和地址,P3⼝产⽣必要的控制信号,如读出和写⼊信号。5.串⾏⼝
MCS-51系列单⽚机有⼀个全双⼯的串⾏⼝,主要⽤来实现单⽚机和其他设备的串⾏数据传送。6.中断控制系统
ATS52型单⽚机有5个中断源,两个中断优先级。
图2 引脚图
1.2单⽚机芯⽚管脚及功能(见图2)
单⽚机实验板选⽤ATS52芯⽚,其管脚功能如下:
1. P1(P1.0-P1.7)是8位双向输⼊输出⼝,内部有上拉电阻,管脚号1-8。P1.0引脚的第⼆功能是T2定时器的外部输⼊,P1.1引脚是T2的外部控制端。P1.5、P1.6、P1.7引脚是单⽚机与编程计算机进⾏下载编程的信号端,MOSI是主机输出/从机输⼊端,MISO是主机输⼊/从机输出端,SCK是串⾏时钟信号端。
2. RESET单⽚机复位信号端,接⾼电平时单⽚机置为初始状态,程序从0000H 开始执⾏,管脚号9。
3. P3(P3.0-P3.7) 是8位双向输⼊输出⼝,内部有上拉电阻,管脚号10-17。P3有两种功能,做⼀般功能时⽤法与P1相同;做特殊功能时
P3.0作为RXD串⾏端⼝接收端P3.1作为TXD串⾏端⼝传送端INT外部中断0的输⼊引脚P3.20P3.3 1
INT外部中断0的输⼊引脚P3.4 T0定时器0的输⼊引P3.5 T1定时器1的输⼊引脚
P3.6 WR CPU欲将数据送⼊外部RAM时,此脚为低电平。P3.7 RD CPU欲从外部读取数据时,此脚为低电平。
4.XTAL1和XTAL2两个引脚是产⽣CPU所需的时钟(CLOCK)的输⼊脚,由⽯英振荡器提供,管脚号18、19。5.V SS系统接地(GND)引脚,管脚号20。
6.P2(P2.0-P2.7)是8位双向输⼊输出⼝,内部有上拉电阻。P2有两种功能,做⼀般功能时⽤法与P1相同;特殊功能做外部存储器扩充,⾼位地址(A8-A15),管脚号21-28。
7.PSEN使⽤外部存储器ROM程序时输出低电位信号,让外部ROM启动将数据送⼊总线。管脚号29。
8.ALE/PROG使⽤外部存储器ROM使,⽤于锁定地位地址的信号;在烧录ROM/EPROM时做为接收低电平的烧录信号。管脚号30。
9.EA/V PP该引脚接低电平时,具有外部读取启⽤功能,即CPU读取外部程序器(ROM);该引脚接⾼电时,CPU执⾏4KROM的程序,程序超过4K,CPU⾃动CPU 执⾏外部ROM程序;执⾏程序烧录,此脚输⼊烧录电压。管脚号31。
10.P0(P0-P7)P1(P1.0-P1.7)是8位双向输⼊输出⼝,内部⽆上拉电阻。做⼀般输⼊输出接⼝,与P1相同,可连接8个LS型TTL负载,外接上拉电阻;执⾏外部扩充存储器时,可做为数据总线(D0-D7)或地址(A0-A7)总线。管脚号32-39。11.VCC芯⽚电源电压+5V的输⼊脚。管脚号40。C320PC220PS1S W -P BR110KC110uY112MRSTVCCRST VCCC5100uC7100u
VCCC6104VCCR31001122334455K1
RELAY-SPDTD104007MK1
FENGMINGQI R21K
S2SW-PB S3SW-PBC410412JP2CON2/INT0/INT1/INT0/INT1
VCC L0L1L2L3L4L5L6L71234567JP4470L0L1L2L3L4L5L6L7S0S1S2S3
S4S5S6S7S0S1S2S3S4S5S6S7VCC R54.7K R.7K Q1Q2
Q1Q211223344556677101011111212131314141515161617171818191920202121
2222232324242525262627272828292930303131323233333434353536363737383839394040U1
ATS5212345109876SJ1SW DIP-511223344556612127
7111188101099DS1SIWEISHMAGUAND1D2D3Q3Q4a bc d
e f g R74.7K R84.7KQ3Q4GND1GND2GND3GND4
GND4GND3GND2GND11234567JP5CON3CAP 1+1RR-IN28
CAP-6CAP 2-5
CAP 1-3CAP +2CAP 2+4RT-OUT27R-OUT29
T-IN210T-IN111R-OUT112RR-IN113RT-OUT114GND15VCC16
U3MAX232C111ufC101ufC9
1uf
C81uf MOSI-MISO-SCK-R4100VCCRXRX Q58550Q68550
BI/RBO 4RBI 5LT 3A 7B 1C 2D 6a 13b 12c 11d 10e 9f 15g14U474LS47D0D1D2D3VCC
D0a b c d e f g VCCQ18050Q28050Q38050Q48050C12103P VCCC13103PD41
23jiekou CON3123456710
JP HEADER 5X2
RXD TXD MOSI MISO SCKSCK
MISO MOSI 123
456KAIKAUGUAN162738495STCJDB9STCC1104STCC2104STCC4104
STCC3104VCC RXD TXD RXD-TXD-TXD-RXD-MOSI-MISO-SCK-D0LED D1LED D2LED D3LED D4LED D5LED D6LEDD7LED D8LED IN1G N D2OUT3D9稳压三极管123J?CON3GND15
CAP-6CAP2+4
CAP+2CAP2-5CAP1-3CAP1+1
RT-OUT114RT-OUT27T-IN111T-IN210RR-IN113RR-IN28R-OUT112R-OUT29VCC16
STC232MAX232图3 单⽚机电路原理图
1.3单⽚机实验板组成结构(见图3)
单⽚机实验板包括单⽚机最⼩系统,包括ATS52芯⽚,复位电路,晶振电路;MAX232通讯模块;数码管显⽰模块;LED显⽰模块;继电器模块;蜂鸣器模块组成。通过⼀系列实验,实现单⽚机I/O 控制、中断控制、数码管显⽰、数据通信、继电器控制、实现各个模块的功能,原理图见图3.
通讯模块:此模块直接由单⽚机的串⾏⼝P3.0(RXD )、P3.1(TXD )通过电平转换芯⽚MAX232并连接到232接插件CON1和CON2。
数码管显⽰模块:此模块有4位⼀体共阴数码管⼀个,P1⼝输出,P1.0、P1.1、P1.2、P1.3数据经过74LS47译码驱动显⽰,例如要是右边第⼀个数码管显⽰为0,单⽚机的P0⼝输出ed 就可以使其显⽰了。
指⽰灯模块:此模块有8位发光⼆极管,发光⼆极管是低电平点亮,故要使8位发光⼆极管右边⼀位点亮,单⽚机的P0⼝输出数据FE ,P0.0低电平,然后顺序使P0.1~P0.7为低电平,可以点亮各个发光⼆极管。
继电器模块:本模块采⽤了5V 继电器HHC66A ,由单⽚机的P2.6控制三极管Q5,单⽚机的P2.6脚低电平时,Q5导通,输出结果到CON3,常开触点闭合,常闭触点断开。
蜂鸣器模快:由单⽚机的P2.5控制三极管Q6,单⽚机的P2.脚低电平时,Q6导通,蜂鸣器导通啸叫。
拨码开关模快:拨码开关将⼗进制数转换成⼆进制数,送到单⽚机的P2.0~P2.7⼝,数据经单⽚机P1⼝,P1.0、P1.1、P1.2、P1.3数据经过74LS47译码驱动显⽰出拨码开关将⼗进制数。 ⼆、电路板的安装调试 2.1焊接1.检查印刷电路裸板电源正负端、各相邻焊点是否短路。
2.检测元器件质量,电容、接插件是否短路,按键通断状态是否正确。3.集成电路⼀定焊接插座,确定好插座空间安装位置。4.焊接时特别要注意锡不能太多,否则易发⽣焊点短路。5.电烙铁焊接时间不要过长,以免烫坏焊点。
图4 单⽚机实验板元件安装位置图2.2测试
单⽚机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。1.排除逻辑故障这类故障由于设计和加⼯制板过程中⼯艺性错误所造成的。主
要包括错线、开路、短路。排除的⽅法是⾸先将加⼯的印制板认真对照原理图,看两者是否⼀致。应特别注意电源系统检查,以防⽌电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线短路。必要时利⽤数字万⽤表的短路测试功能,可以缩短排错时间。
2.排除元器件失效造成这类错误的原因有两个:⼀个是元器件买来时就已坏了;
另⼀个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否⼀致。在保证安装⽆误后,⽤替换⽅法排除错误。3.排除电源故障
在通电前,⼀定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,⼀般先检查VCC与GND之间电位,若在5V~5.8V 之间属正常。2.3安装与调试过程中发现的问题及解决办法在安装过程中出现的⼀些问题举例:
1. 在实验板焊接完成后,接上电源下载跑马灯的实验程序后,有个发光⼆极管⼀直不亮。
2. 复位键不能⽤。
3. 下载键盘显⽰程序后,按下⼩键盘不起作⽤。
针对实习中出现的各种问题进⾏分析,复位不能⽤是电阻焊错了,⼩键盘不能⽤是没有将isp jump下⾯两个排针短接,发光⼆极管不能⽤是排阻焊错了。将以电阻重新焊接,排针短接后,系统板各个模块功能正常。
由上得出在动⼿焊接前要认真仔细地分析电路原理图,熟悉系统板各个模块的⼯作原理;在焊接时先⽤万⽤表将各元件测量⼀下,做到⼼中有数,安装时先安装低矮和耐热元件(如电阻),然后再装⼤⼀点的元件(如插槽、数码管),最后装怕热的元件(如三极管)。焊接电解电容与发光⼆极管要注意正负极不要接反。2.3联机调试
联机仿真必须借助仿真开发装置、⽰波器、万⽤表等⼯具。这些⼯具是单⽚机开发的最基本⼯具。
51系列单⽚机的信号线⼤体分为读、写信号线、⽚选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等⼏⼤类。这些信号⼤多属于脉冲信号,对于脉冲信号借助⽰波器(这⾥指通⽤⽰波器)⽤常规⽅法很难观测到,必须采取⼀定措施才能观测到。
对于电平类信号,观测起来就⽐较容易。例如对复位信号观测就可以直接利⽤⽰波器,当按下复位键时,可以看到复位引脚将变为⾼电平;⼀旦松开,电平将变低。
对于脉冲触发类的信号我们要⽤软件来配合,并要把程序编为死循环,再利⽤⽰波器观察;对于电平类触发信号,可以直接⽤⽰波器观察。
三、程序的编制与在线编程
单⽚机的编程语⾔主要⽤汇编语⾔和C51语⾔,汇编语⾔需要掌握单⽚机结构知识,运算效率⾼,占⽤内存少,但汇编语⾔可移植性差,不同的CPU有各⾃的汇编语⾔。C51语⾔的编译器能⾃动完成变量的存储单元的分配,对常⽤的接⼝芯⽚编制通⽤的驱动函数,对常⽤的功能模快、算法等编制相应的函数,可以进⾏信号处理算法和程序的移植。本项⽬⽤C51语⾔编写应⽤程序,以适应各种不同型号的单⽚机编程。
单⽚机使⽤汇编语⾔或C51语⾔编制源程序,需要应⽤编辑软件⽣成·ASM、或
·C⽂件、应⽤编译软件⽣成·
OBJ⽂件、应⽤链接软件⽣成·
HEX⽂件、经过软件
仿真、通过编程器将可执⾏的⽂件下载到单⽚机内。Keil uVision2是将编辑软件、编译软件、链接软件、调试模拟器集成⼀体的单⽚机集成开发软件。3.1集成开发软件的使⽤
源程序可以在脱机模拟状态下调试运⾏,也可以连上仿真器与实验仪在线仿真调试运⾏。这⾥主要介绍后⼀种⽅法。
在线编辑、编译、仿真调试运⾏的操作⽅法是:⾸先在计算机中打开Keil uVision2编程软件,单击菜单中的“P⼯程”键、N新建⼯程命令、在新建⼯程窗⼝内建⽴新⼯程名称,如ccc.UV2,单击保存键。
在选择设备窗⼝选择CPU的类型。实验我们选Atmel公司的ATS52芯⽚。然后单击“确定”,项⽬就建成了。但这是⼀个空项⽬,我们要在这个项⽬中添加源程序。可以单击File菜单中的“命令”命令按钮新建⼀个⽂件,然后在其中输⼊源程序(数码管显⽰的程序)并保存,保存的⽂件名要以“.asm”(当程序是汇编语⾔程序编写时)和“.c”(当程序是C语⾔程序编写时)扩展名作为结尾。保存完了后,程序窗⼝如下所⽰:
在项⽬窗⼝的“Souce Group1”上按右键,将会显⽰下⾯的窗⼝:
单击“Add File to Group ‘Source Group 1’”命令,选择刚才保存的⽂件,就将刚才的源程序添加进了该项⽬。然后单
击“project”菜单中的“Rebuild All target Files”命令,可以将源程序编译,有错误的话在下⾯的信息窗⼝中会有提⽰,根据提⽰进⾏修改。
如果程序编译通过的话,单击“⼯程”菜单中的“D调试”命令即可开始软件调试。如果要做硬件调试,还应做以下设置:在项⽬窗⼝的“Target1”上按右键,将会弹出⼀个菜单。⽤⿏标单击菜单上的“options for target‘target 1’”命令,将显⽰下⾯的窗⼝:我们选择“debug”属性页,将上⾯的由“use simulator”(使⽤软件仿真)改为“use monitor-51 driver”(使⽤M-51仿真器)。然后⽤⿏标单击“setting”(设置)将port(端⼝)设置为串⼝线和单⽚机实验板相连的端⼝,将“baudrate”(波特率)设置
为“38400”,然后在“debug”属性页上将“load application at sta……”和“go till main”前⾯的选择框选上,单击“确定”,如果连线没有问题就可以进⼊硬件调试状态了。我们可以使⽤“debug”菜单下的“go”(运⾏)、“step”(单步)、“step over”(⼤单步)和“run to cursor line”(运⾏到光标处)等命令调试程序了。3.2编辑源程序
在单⽚机开发软件中使⽤C51语⾔编写LED数码管显⽰1-9999程序,下载到单⽚机实验板中运⾏该源程序,观察单⽚机实验板运⾏状态。#include
#define uchar unsigned char#define uint unsigned int
uchar code ma[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};void delay10ms(unsigned char time);#define D4 ~0x7f; //0有效0111 1111#define D3 ~0xbf;#define D2 ~0xdf;
#define D1 ~0xef;main(){while(1){uint i;
for(i=0;i<10;i++){P1=ma[i];P3=0xff;delay10ms(100);}}}
void delay10ms(unsigned char time){uchar i;unsigned int j;for (i=0;i{
for(j=0;j<0x390;j++){;}}
3.3程序的下载
1.单⽚机的在线编程(ISP)
ATS52与STCC52芯⽚,内部具有在系统可擦除FLASH存储器,在单⽚机运⾏过程中⽤内部程序改写FLASH存储器的内容,修改某些运⾏参数。单⽚机通过串⾏端⼝与外部主机(如PC机)通信,从主机接收命令和数据,⽤于擦除和再编程代码。ATS52不需要编程器就可进⾏单⽚机的实验和开发,单⽚机芯⽚可以直接焊接在电路板上,调试ATS52芯⽚及程序。ATS52的ISP功能是在RESET引脚处于⾼电平时,利⽤P1.5(MOSI),P1.6(MISO),ATS52P1.7(SCK)三引脚的数据设置或传送达到程序下载的⽬的,P1.5(MOSI)引脚作为串⾏指令的输⼊端⼝,P1.6(MISO)引脚作为串⾏数据的输出端⼝,P1.7(SCK)引脚作为串⾏移位脉冲的输⼊端⼝。2.ISP应⽤
将通讯电缆串⼝插头插⼊电脑串⼝,此时编程器上LED点亮,表明电源接通。启动在线ISP编程器2.0程序后,会⾃动检测硬件及连接,状态框中显⽰“就绪”字样,表⽰编程器连接和设置均正常。否则请检查硬件连接和端⼝设置。
把ATS52单⽚机芯⽚正确地放到编程器的相应插座上,这时注意,芯⽚的缺⼝要朝向插座的把⼿⽅向。芯⽚放好后,就可以对芯⽚进⾏读写操作了,读写操作按下⾯的步骤进⾏:(1)先选择器件(ATS52)(2)⽤“擦除器件”擦除芯⽚
(3)⽤“打开⽂件”选择打开要编写的.HEX和.BIN⽂件(4)⽤“写器件”编程
(5)⽤“校验数据”检查编程的正确与否这样程序就被烧录到单⽚机芯⽚中了。四、单⽚机实验板调试要求
本项⽬要求从PC机源程序库中下载有关应⽤源程序到单⽚机中,单⽚机实验板各部分电路运⾏正常,源程序执⾏⽆错误。调试源程序内容包括:1.数码管显⽰动态数字2.LED发光动态管运⾏3.中断控制4.继电器输出5.拨码开关输⼊6.蜂鸣器输出单⽚机安装与调试实验讲义机电实习中⼼⾼宁