通信企业管理通信网络实验副本精编.docx

上传人:b****7 文档编号:11196714 上传时间:2023-02-25 格式:DOCX 页数:40 大小:30.51KB
下载 相关 举报
通信企业管理通信网络实验副本精编.docx_第1页
第1页 / 共40页
通信企业管理通信网络实验副本精编.docx_第2页
第2页 / 共40页
通信企业管理通信网络实验副本精编.docx_第3页
第3页 / 共40页
通信企业管理通信网络实验副本精编.docx_第4页
第4页 / 共40页
通信企业管理通信网络实验副本精编.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

通信企业管理通信网络实验副本精编.docx

《通信企业管理通信网络实验副本精编.docx》由会员分享,可在线阅读,更多相关《通信企业管理通信网络实验副本精编.docx(40页珍藏版)》请在冰豆网上搜索。

通信企业管理通信网络实验副本精编.docx

通信企业管理通信网络实验副本精编

(通信企业管理)通信网络实验__副本

实验壹准备性实验

(壹)实验大纲

壹、实验目的:

1.熟悉掌握实验板各个常用外设的使用,熟悉单片机系统构成及编程、调试方法。

2.掌握A/D采样及其转换程序的编写。

3.掌握液晶显示驱动的程序编写及测试。

4.掌握单片机串行口通信的编程和测试。

二、设备环境:

壹块带有A/D采样、液晶显示、485通信接口的实验板,壹个电源适配器,壹根标准串口线,PC机壹台。

三、实验步骤:

1.测试实验板工作状态

(1)编写壹个简单的单片机程序,例如按下开关S3使LED1点亮。

(2)将程序由计算机经过RS-232通信模块下载到实验板。

(3)断开计算机和实验板间的连线,重新上电,于实验板上运行程序,若能实现预期功能就进行下壹步调试,否则检查原因重新调试。

2.编写液晶驱动程序且测试,例如显示welcome,整理成壹个可调用的显示程序模块,为以后其他程序的测试及开发做准备;

3.编写A/D采样程序,通过调用显示程序模块来测试正确和否,编写且调试程序实现持续的A/D转换功能,例如单片机持续进行A/D转换且显示,这时调节电位器,液晶屏显示的电压值会随调节而变动。

测试通过后,同样整理成壹个可调用的A/D采样程序程序模块;

4.编写串口通信程序模块,于主程序中调用该模块连续发送壹组简单的二进制数据,利用示波器测取DB9接口(485通信接口)的TXD端的波形,观测所取波形数据是否和发送的壹致,若壹致,则通信接口和程序测试通过;另外,也能够通过发送壹个简单的字符串于俩个实验板子之间进行直接简单的串口通信测试,当壹个板子能够收到另壹板子发过来的字符串且通过液晶正确显示,则通信接口和程序测试通过

四、需要验证或研究的问题

1、改变电位器,液晶显示值实时改变;

2、能够向电脑发送和接受数据,且于液晶显示屏上显示;

3、能够通过按键控制LED;

4、能够获取拨码开关的值且显示。

(二)实验方案

壹、实验目的:

1.掌握单片机实验板的使用,熟悉单片机系统构成及编程、调试方法。

2.掌握A/D采样及其转换程序的编写。

3.掌握液晶显示驱动的程序编写及测试。

4.掌握单片机串行口通信的编程和测试。

二、实验过程:

1.熟悉实验板资源:

1:

四针电源插座,能够直接用电脑电源中的5V电源接口直插。

注:

四个针从外到里(从左至右)分别为+5V、GND、GND、无用。

2:

通用电源接口。

注:

之上俩个电源接口任选其壹。

3:

俩个DB9,485通信接口

4:

电源开关,拨下为关,拨上为开,也能够通过右边的红色电源灯判断。

5:

电位器,可用来调节液晶对比度。

6:

电源灯7:

232—485选择插针

8:

485—MVB选择插针9:

端接电阻

10:

端接电阻引入插针11:

LCD液晶

12:

DB9,232通信接口13:

STC12C5A60S2芯片

14:

俩个LED灯15:

MVB引入插针

16:

俩个按键17:

第二路串口引入插针

18:

电位器,用于AD采用的输入

19:

复位按键20:

LED灯

21:

多余的IO口引出插针

22:

六位拨码开关,实际只有前五位有效(从左至右,往下拨置地,往上拨至高)

(1)单片机STC12C5A60S2

STC12C5A60S2单片机是单时钟/机器周期(1T)的单片机,内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地),2路PWM,8路高速10位A/D转换,转换速度可达250K/S。

其工作频率范围为0-35MHz,片上集成1280字节RAM。

具有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)。

(2)跳线接口

跳线接口P_232/485用于RS-232通信和RS-485通信的切换。

当RXD232和RXD、TXD232和TXD跳于壹起时,为RS-232通信,用于单片机从PC机上下载程序;当RXD485和RXD、TXD485和TXD跳于壹起时,为RS-485通信,用于同各单片机之间的多机通信。

(3)1602液晶显示模块

1602液晶显示模块最佳工作电压为5V。

模块内部的控制器共有11条控制指令,包括清显示、光标返回、置输入模式、显示开/关控制、光标活字符移位、置功能、置字符发生存贮器地址、置数据存贮器地址、读忙标志或地址、写命令和读命令。

2.液晶驱动程序的编写且显示功能

程序流程为:

开始→LCD初始化→延时→设第壹行显示位置→显示第壹行内容→设第二行显示位置→显示第二行内容。

编写且调试程序测试显示单个数字功能,例如每次按下开关,液晶屏会显示壹位数字,显示的数字为“0”、“1”、“2”、…“9”、“.”依次循环。

编写且调试程序测试显示多位数字的功能,例如于显示屏上同时显示各位数字2009

3.A/D转换程序编写且显示功能

设置模拟信号输入接口;设置A/D转换控制特殊功能寄存器;读取A/D转换结果。

编写且调试程序测试A/D转换功能,如按下开关后,单片机进行壹次A/D转换,转换的结果换算成电压值,且于液晶屏上显示。

4.实验板调试方法

(1)用带DB9接口的连线将实验板的J_UART1接口和计算机的DB9串行接口连接,且将跳线接口P_232/485的3、5引脚和4、6引脚分别短接,此时实验板处于断电状态。

(2)用编译器将编写的程序编译成*.bin或*.hex格式文件。

(3)于计算机上运行单片机编程PC端控制软件STC-ISP.exe软件,通过该软件选择单片机型号、需要烧录的文件、计算机串行口号,选择下次冷启动后时钟源为“外部晶体或时钟”,选择“Download/下载”按钮,然后给实验板上电复位,程序就下载到单片机内部。

(4)断开计算机和实验板间的连线,重新上电复位,实验板开始运行程序。

5.测试单块实验板串行口收发数据的功能

(1)将实验板的跳线接口P_232/485的3、4引脚短接,使单片机的RXD和TXD引脚相连。

(2)编写且调试程序实现以下功能:

按下开关S3后,单片机进行壹次A/D转换,转换结果取高八位由串行口TXD发送,单片机再以查询方式读取串行口RXD的数据,对数据进行换算后于液晶屏上显示。

(3)编写且调试程序使第

(2)步的功能能够持续实现。

三、实验程序:

1.主程序:

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机内核特殊功能寄存器C51CoreSFRs

//76543210ResetValue

sfrACC=0xE0;//Accumulator0000,0000

sfrB=0xF0;//BRegister0000,0000

sfrPSW=0xD0;//ProgramStatusWordCYACF0RS1RS0OVF1P0000,0000

//-----------------------------------

sbitCY=PSW^7;

sbitAC=PSW^6;

sbitF0=PSW^5;

sbitRS1=PSW^4;

sbitRS0=PSW^3;

sbitOV=PSW^2;

sbitP=PSW^0;

//-----------------------------------

sfrSP=0x81;//StackPointer0000,0111

sfrDPL=0x82;//DataPointerLowByte0000,0000

sfrDPH=0x83;//DataPointerHighByte0000,0000

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机系统管理特殊功能寄存器

//76543210ResetValue

sfrPCON=0x87;//PowerControlSMODSMOD0LVDFPOFGF1GF0PDIDL0001,0000

//76543210ResetValue

sfrAUXR=0x8E;//AuxiliaryRegisterT0x12T1x12UART_M0x6BRTRS2SMODBRTx12EXTRAMS1BRS0000,0000

//-----------------------------------

sfrAUXR1=0xA2;//AuxiliaryRegister1-PCA_P4SPI_P4S2_P4GF2ADRJ-DPS0000,0000

/*

PCA_P4:

0,缺省PCA于P1口

1,PCA/PWM从P1口切换到P4口:

ECI从P1.2切换到P4.1口,

PCA0/PWM0从P1.3切换到P4.2口

PCA1/PWM1从P1.4切换到P4.3口

SPI_P4:

0,缺省SPI于P1口

1,SPI从P1口切换到P4口:

SPICLK从P1.7切换到P4.3口

MISO从P1.6切换到P4.2口

MOSI从P1.5切换到P4.1口

SS从P1.4切换到P4.0口

S2_P4:

0,缺省UART2于P1口

1,UART2从P1口切换到P4口:

TxD2从P1.3切换到P4.3口

RxD2从P1.2切换到P4.2口

GF2:

通用标志位

ADRJ:

0,10位A/D转换结果的高8位放于ADC_RES寄存器,低2位放于ADC_RESL寄存器

1,10位A/D转换结果的最高2位放于ADC_RES寄存器的低2位,低8位放于ADC_RESL寄存器

DPS:

0,使用缺省数据指针DPTR0

1,使用另壹个数据指针DPTR1

*/

//-----------------------------------

sfrWAKE_CLKO=0x8F;//附加的SFRWAK1_CLKO

/*

76543210ResetValue

PCAWAKEUPRXD_PIN_IET1_PIN_IET0_PIN_IELVD_WAKE_T1CLKOT0CLKO0000,0000B

b7-PCAWAKEUP:

PCA中断可唤醒powerdown。

b6-RXD_PIN_IE:

当P3.0(RXD)下降沿置位RI时可唤醒powerdown(必须打开相应中断)。

b5-T1_PIN_IE:

当T1脚下降沿置位T1中断标志时可唤醒powerdown(必须打开相应中断)。

b4-T0_PIN_IE:

当T0脚下降沿置位T0中断标志时可唤醒powerdown(必须打开相应中断)。

b3-LVD_WAKE:

当CMPIN脚低电平置位LVD中断标志时可唤醒powerdown(必须打开相应中断)。

b2-

b1-T1CLKO:

允许T1CKO(P3.5)脚输出T1溢出脉冲,Fck1=1/2T1溢出率

b0-T0CLKO:

允许T0CKO(P3.4)脚输出T0溢出脉冲,Fck0=1/2T1溢出率

*/

//-----------------------------------

sfrCLK_DIV=0x97;//ClockDivder-----CLKS2CLKS1CLKS0xxxx,x000

//-----------------------------------

sfrBUS_SPEED=0xA1;//Stretchregister--ALES1ALES0-RWS2RWS1RWS0xx10,x011

/*

ALES1andALES0:

00:

TheP0addresssetuptimeandholdtimetoALEnegativeedgeisoneclockcycle

01:

TheP0addresssetuptimeandholdtimetoALEnegativeedgeistwoclockcycles.

10:

TheP0addresssetuptimeandholdtimetoALEnegativeedgeisthreeclockcycles.(default)

11:

TheP0addresssetuptimeandholdtimetoALEnegativeedgeisfourclockcycles.

RWS2,RWS1,RWS0:

000:

TheMOVXread/writepulseis1clockcycle.

001:

TheMOVXread/writepulseis2clockcycles.

010:

TheMOVXread/writepulseis3clockcycles.

011:

TheMOVXread/writepulseis4clockcycles.(default)

100:

TheMOVXread/writepulseis5clockcycles.

101:

TheMOVXread/writepulseis6clockcycles.

110:

TheMOVXread/writepulseis7clockcycles.

111:

TheMOVXread/writepulseis8clockcycles.

*/

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机中断特殊功能寄存器

//有的中断控制、中断标志位散布于其它特殊功能寄存器中,这些位于位地址中定义

//其中有的位无位寻址能力,请参阅新壹代1T8051系列单片机中文指南

//76543210ResetValue

sfrIE=0xA8;//中断控制寄存器EAELVDEADCESET1EX1ET0EX00x00,0000

//-----------------------

sbitEA=IE^7;

sbitELVD=IE^6;//低压监测中断允许位

sbitEADC=IE^5;//ADC中断允许位

sbitES=IE^4;

sbitET1=IE^3;

sbitEX1=IE^2;

sbitET0=IE^1;

sbitEX0=IE^0;

//-----------------------

sfrIE2=0xAF;//AuxiliaryInterrupt------ESPIES20000,0000B

//-----------------------

//76543210ResetValue

sfrIP=0xB8;//中断优先级低位PPCAPLVDPADCPSPT1PX1PT0PX00000,0000

//--------

sbitPPCA=IP^7;//PCA模块中断优先级

sbitPLVD=IP^6;//低压监测中断优先级

sbitPADC=IP^5;//ADC中断优先级

sbitPS=IP^4;

sbitPT1=IP^3;

sbitPX1=IP^2;

sbitPT0=IP^1;

sbitPX0=IP^0;

//-----------------------

//76543210ResetValue

sfrIPH=0xB7;//中断优先级高位PPCAHPLVDHPADCHPSHPT1HPX1HPT0HPX0H0000,0000

sfrIP2=0xB5;//------PSPIPS2xxxx,xx00

sfrIPH2=0xB6;//------PSPIHPS2Hxxxx,xx00

//-----------------------

//新壹代1T8051系列单片机I/O口特殊功能寄存器

//76543210ResetValue

sfrP0=0x80;//8bitPort0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.01111,1111

sfrP0M0=0x94;//0000,0000

sfrP0M1=0x93;//0000,0000

sfrP1=0x90;//8bitPort1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01111,1111

sfrP1M0=0x92;//0000,0000

sfrP1M1=0x91;//0000,0000

sfrP1ASF=0x9D;//P1analogspecialfunction

sfrP2=0xA0;//8bitPort2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.01111,1111

sfrP2M0=0x96;//0000,0000

sfrP2M1=0x95;//0000,0000

sfrP3=0xB0;//8bitPort3P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.01111,1111

sfrP3M0=0xB2;//0000,0000

sfrP3M1=0xB1;//0000,0000

sfrP4=0xC0;//8bitPort4P4.7P4.6P4.5P4.4P4.3P4.2P4.1P4.01111,1111

sfrP4M0=0xB4;//0000,0000

sfrP4M1=0xB3;//0000,0000

//76543210ResetValue

sfrP4SW=0xBB;//Port-4switch-LVD_P4.6ALE_P4.5NA_P4.4----x000,xxxx

sfrP5=0xC8;//8bitPort5----P5.3P5.2P5.1P5.0xxxx,1111

sfrP5M0=0xCA;//0000,0000

sfrP5M1=0xC9;//0000,0000

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机定时器特殊功能寄存器

//76543210ResetValue

sfrTCON=0x88;//T0/T1ControlTF1TR1TF0TR0IE1IT1IE0IT00000,0000

//-----------------------------------

sbitTF1=TCON^7;

sbitTR1=TCON^6;

sbitTF0=TCON^5;

sbitTR0=TCON^4;

sbitIE1=TCON^3;

sbitIT1=TCON^2;

sbitIE0=TCON^1;

sbitIT0=TCON^0;

//-----------------------------------

sfrTMOD=0x89;//T0/T1ModesGATE1C/T1M1_1M1_0GATE0C/T0M0_1M0_00000,0000

sfrTL0=0x8A;//T0LowByte0000,0000

sfrTH0=0x8C;//T0HighByte0000,0000

sfrTL1=0x8B;//T1LowByte0000,0000

sfrTH1=0x8D;//T1HighByte0000,0000

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机串行口特殊功能寄存器

//76543210ResetValue

sfrSCON=0x98;//SerialControlSM0/FESM1SM2RENTB8RB8TIRI0000,0000

//-----------------------------------

sbitSM0=SCON^7;//SM0/FE

sbitSM1=SCON^6;

sbitSM2=SCON^5;

sbitREN=SCON^4;

sbitTB8=SCON^3;

sbitRB8=SCON^2;

sbitTI=SCON^1;

sbitRI=SCON^0;

//-----------------------------------

sfrSBUF=0x99;//SerialDataBufferxxxx,xxxx

sfrSADEN=0xB9;//SlaveAddressMask0000,0000

sfrSADDR=0xA9;//SlaveAddress0000,0000

//-----------------------------------

//76543210ResetValue

sfrS2CON=0x9A;//S2ControlS2SM0S2SM1S2SM2S2RENS2TB8S2RB8S2TIS2RI00000000B

sfrS2BUF=0x9B;//S2SerialBufferxxxx,xxxx

sfrBRT=0x9C;//S2Baud-RateTimer0000,0000

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机见门狗定时器特殊功能寄存器

sfrWDT_CONTR=0xC1;//Watch-Dog-TimerControlregister

//76543210ResetValue

//WDT_FLAG-EN_WDTCLR_WDTIDLE_WDTPS2PS1PS0xx00,0000

//-----------------------

//--------------------------------------------------------------------------------

//新壹代1T8051系列单片机PCA/PWM特殊功能寄存器

//76543210ResetValue

sfrCCON=0xD8;//PCA控制寄存器。

CFCR----CCF1CCF000xx,xx00

//-----------------------

sbitCF=CCON^7;//PCA计数器溢出标志,由硬件或软件置位,必须由软件清0。

sbitCR=CCON^6;//1:

允许PCA计数器计数,必须由软件清0。

//-

//-

sbitCCF1=CCON^1;//PCA模块1中断标志,由硬件置位,必须由软件清0。

sbitCCF0=CCON^0;//PCA模块0中断标志,由硬件置位,必须由软件清0。

//-----------------------

sfrCMOD=0xD9;//PCA工作模式寄存器。

CIDL---CPS2CPS1CPS0ECF0xxx,x000

/*

CIDL:

idle状态时PCA计数器是否继续计数,0:

继续计数,1:

停止计数。

CPS2:

PCA计数器脉冲源选择位2。

CPS1:

PCA计数器脉冲源选择位1。

CPS0:

PCA计数器脉冲源选择位0。

CPS2CPS1CPS0

000系统时钟频率fosc/12。

001系统时钟频率fosc/2。

010Timer0溢出。

011由ECI/P3.4脚输入的外部时钟,最大fosc/2。

100系统时钟频率,Fosc/1

101系统时钟频率/4,Fosc/4

110系统时钟频率/6,Fosc/6

111系统时钟频率/8,Fosc/8

ECF:

PCA计数器溢出中断允许位,1--允许CF(CCON.7)产生中断。

*/

//-----------------------

sfrCL=0xE9;//PCA计数器低位0000,0000

sfrCH=0xF9;//PCA计数器高位0000,000

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1