通信网络实验_-_副本.doc_第1页
通信网络实验_-_副本.doc_第2页
通信网络实验_-_副本.doc_第3页
通信网络实验_-_副本.doc_第4页
通信网络实验_-_副本.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 准备性实验(一)实验大纲一、实验目的: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:232485选择插针8:485MVB选择插针 9:端接电阻 10:端接电阻引入插针 11:LCD液晶12:DB9,232通信接口 13:STC12C5A60S2芯片14:两个LED灯 15:MVB引入插针16:两个按键 17:第二路串口引入插针18:电位器,用于AD采用的输入19:复位按键 20:LED灯21:多余的IO口引出插针22:六位拨码开关,实际只有前五位有效(从左至右,往下拨置地,往上拨至高)(1)单片机STC12C5A60S2STC12C5A60S2单片机是单时钟/机器周期(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”、“.”依次循环。编写并调试程序测试显示多位数字的功能,例如在显示屏上同时显示各位数字20093. 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.主程序:/-/新一代 1T 8051系列 单片机内核特殊功能寄存器 C51 Core SFRs/ 7 6 5 4 3 2 1 0 Reset Valuesfr ACC = 0xE0; /Accumulator 0000,0000sfr B = 0xF0; /B Register 0000,0000sfr PSW = 0xD0; /Program Status Word CY AC F0 RS1 RS0 OV F1 P 0000,0000/-sbit CY = PSW7;sbit AC = PSW6;sbit F0 = PSW5;sbit RS1 = PSW4;sbit RS0 = PSW3;sbit OV = PSW2;sbit P = PSW0;/-sfr SP = 0x81; /Stack Pointer 0000,0111sfr DPL = 0x82; /Data Pointer Low Byte 0000,0000sfr DPH = 0x83; /Data Pointer High Byte 0000,0000/-/新一代 1T 8051系列 单片机系统管理特殊功能寄存器/ 7 6 5 4 3 2 1 0 Reset Valuesfr PCON = 0x87; /Power Control SMOD SMOD0 LVDF POF GF1 GF0 PD IDL 0001,0000/ 7 6 5 4 3 2 1 0 Reset Valuesfr AUXR = 0x8E; /Auxiliary Register T0x12 T1x12 UART_M0x6 BRTR S2SMOD BRTx12 EXTRAM S1BRS 0000,0000/-sfr AUXR1 = 0xA2; /Auxiliary Register 1 - PCA_P4 SPI_P4 S2_P4 GF2 ADRJ - DPS 0000,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*/-sfr WAKE_CLKO = 0x8F; /附加的 SFR WAK1_CLKO/* 7 6 5 4 3 2 1 0 Reset Value PCAWAKEUP RXD_PIN_IE T1_PIN_IE T0_PIN_IE LVD_WAKE _ T1CLKO T0CLKO 0000,0000Bb7 - 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/2 T1 溢出率b0 - T0CLKO : 允许 T0CKO(P3.4) 脚输出 T0 溢出脉冲,Fck0 = 1/2 T1 溢出率*/-sfr CLK_DIV = 0x97; /Clock Divder - - - - - CLKS2 CLKS1 CLKS0 xxxx,x000/-sfr BUS_SPEED = 0xA1; /Stretch register - - ALES1 ALES0 - RWS2 RWS1 RWS0 xx10,x011/*ALES1 and ALES0:00 : The P0 address setup time and hold time to ALE negative edge is one clock cycle01 : The P0 address setup time and hold time to ALE negative edge is two clock cycles.10 : The P0 address setup time and hold time to ALE negative edge is three clock cycles. (default)11 : The P0 address setup time and hold time to ALE negative edge is four clock cycles.RWS2,RWS1,RWS0: 000 : The MOVX read/write pulse is 1 clock cycle. 001 : The MOVX read/write pulse is 2 clock cycles. 010 : The MOVX read/write pulse is 3 clock cycles. 011 : The MOVX read/write pulse is 4 clock cycles. (default) 100 : The MOVX read/write pulse is 5 clock cycles. 101 : The MOVX read/write pulse is 6 clock cycles. 110 : The MOVX read/write pulse is 7 clock cycles. 111 : The MOVX read/write pulse is 8 clock cycles.*/-/新一代 1T 8051系列 单片机中断特殊功能寄存器/有的中断控制、中断标志位散布在其它特殊功能寄存器中,这些位在位地址中定义/其中有的位无位寻址能力,请参阅 新一代 1T 8051系列 单片机中文指南/ 7 6 5 4 3 2 1 0 Reset Valuesfr IE = 0xA8; /中断控制寄存器 EA ELVD EADC ES ET1 EX1 ET0 EX0 0x00,0000/-sbit EA = IE7;sbit ELVD = IE6; /低压监测中断允许位sbit EADC = IE5; /ADC 中断允许位sbit ES = IE4;sbit ET1 = IE3;sbit EX1 = IE2;sbit ET0 = IE1;sbit EX0 = IE0;/-sfr IE2 = 0xAF; /Auxiliary Interrupt - - - - - - ESPI ES2 0000,0000B/-/ 7 6 5 4 3 2 1 0 Reset Valuesfr IP = 0xB8; /中断优先级低位 PPCA PLVD PADC PS PT1 PX1 PT0 PX0 0000,0000/-sbit PPCA = IP7; /PCA 模块中断优先级sbit PLVD = IP6; /低压监测中断优先级sbit PADC = IP5; /ADC 中断优先级sbit PS = IP4;sbit PT1 = IP3;sbit PX1 = IP2;sbit PT0 = IP1;sbit PX0 = IP0;/-/ 7 6 5 4 3 2 1 0 Reset Valuesfr IPH = 0xB7; /中断优先级高位 PPCAH PLVDH PADCH PSH PT1H PX1H PT0H PX0H 0000,0000sfr IP2 = 0xB5; / - - - - - - PSPI PS2 xxxx,xx00sfr IPH2 = 0xB6; / - - - - - - PSPIH PS2H xxxx,xx00/-/新一代 1T 8051系列 单片机I/O 口特殊功能寄存器/ 7 6 5 4 3 2 1 0 Reset Valuesfr P0 = 0x80; /8 bitPort0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1111,1111sfr P0M0 = 0x94; / 0000,0000sfr P0M1 = 0x93; / 0000,0000sfr P1 = 0x90; /8 bitPort1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1111,1111sfr P1M0 = 0x92; / 0000,0000sfr P1M1 = 0x91; / 0000,0000sfr P1ASF = 0x9D; /P1 analog special functionsfr P2 = 0xA0; /8 bitPort2 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1111,1111sfr P2M0 = 0x96; / 0000,0000sfr P2M1 = 0x95; / 0000,0000sfr P3 = 0xB0; /8 bitPort3 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 1111,1111sfr P3M0 = 0xB2; / 0000,0000sfr P3M1 = 0xB1; / 0000,0000sfr P4 = 0xC0; /8 bitPort4 P4.7 P4.6 P4.5 P4.4 P4.3 P4.2 P4.1 P4.0 1111,1111sfr P4M0 = 0xB4; / 0000,0000sfr P4M1 = 0xB3; / 0000,0000/ 7 6 5 4 3 2 1 0 Reset Valuesfr P4SW = 0xBB; /Port-4 switch - LVD_P4.6 ALE_P4.5 NA_P4.4 - - - - x000,xxxxsfr P5 = 0xC8; /8 bitPort5 - - - - P5.3 P5.2 P5.1 P5.0 xxxx,1111sfr P5M0 = 0xCA; / 0000,0000sfr P5M1 = 0xC9; / 0000,0000/-/新一代 1T 8051系列 单片机定时器特殊功能寄存器/ 7 6 5 4 3 2 1 0 Reset Valuesfr TCON = 0x88; /T0/T1 Control TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 0000,0000/-sbit TF1 = TCON7;sbit TR1 = TCON6;sbit TF0 = TCON5;sbit TR0 = TCON4;sbit IE1 = TCON3;sbit IT1 = TCON2;sbit IE0 = TCON1;sbit IT0 = TCON0;/-sfr TMOD = 0x89; /T0/T1 Modes GATE1 C/T1 M1_1 M1_0 GATE0 C/T0 M0_1 M0_0 0000,0000sfr TL0 = 0x8A; /T0 Low Byte 0000,0000sfr TH0 = 0x8C; /T0 High Byte 0000,0000sfr TL1 = 0x8B; /T1 Low Byte 0000,0000sfr TH1 = 0x8D; /T1 High Byte 0000,0000/-/新一代 1T 8051系列 单片机串行口特殊功能寄存器/ 7 6 5 4 3 2 1 0 Reset Valuesfr SCON = 0x98; /Serial Control SM0/FE SM1 SM2 REN TB8 RB8 TI RI 0000,0000/-sbit SM0 = SCON7; /SM0/FEsbit SM1 = SCON6;sbit SM2 = SCON5;sbit REN = SCON4;sbit TB8 = SCON3;sbit RB8 = SCON2;sbit TI = SCON1;sbit RI = SCON0;/-sfr SBUF = 0x99; /Serial Data Buffer xxxx,xxxxsfr SADEN = 0xB9; /Slave Address Mask 0000,0000sfr SADDR = 0xA9; /Slave Address 0000,0000/-/ 7 6 5 4 3 2 1 0 Reset Valuesfr S2CON = 0x9A; /S2 Control S2SM0 S2SM1 S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI 00000000Bsfr S2BUF = 0x9B; /S2 Serial Buffer xxxx,xxxxsfr BRT = 0x9C; /S2 Baud-Rate Timer 0000,0000/-/新一代 1T 8051系列 单片机看门狗定时器特殊功能寄存器sfr WDT_CONTR = 0xC1; /Watch-Dog-Timer Control register/ 7 6 5 4 3 2 1 0 Reset Value/ WDT_FLAG - EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0 xx00,0000/-/-/新一代 1T 8051系列 单片机PCA/PWM 特殊功能寄存器/ 7 6 5 4 3 2 1 0 Reset Valuesfr CCON = 0xD8; /PCA 控制寄存器。 CF CR - - - - CCF1 CCF0 00xx,xx00/-sbit CF = CCON7; /PCA计数器溢出标志,由硬件或软件置位,必须由软件清0。sbit CR = CCON6; /1:允许 PCA 计数器计数, 必须由软件清0。/-/-sbit CCF1 = CCON1; /PCA 模块1 中断标志, 由硬件置位, 必须由软件清0。sbit CCF0 = CCON0; /PCA 模块0 中断标志, 由硬件置位, 必须由软件清0。/-sfr CMOD = 0xD9; /PCA 工作模式寄存器。 CIDL - - - CPS2 CPS1 CPS0 ECF 0xxx,x000/*CIDL: idle 状态时 PCA 计数器是否继续计数, 0: 继续计数, 1: 停止计数。CPS2: PCA 计数器脉冲源选择位 2。CPS1: PCA 计数器脉冲源选择位 1。CPS0: PCA 计数器脉冲源选择位 0。 CPS2 CPS1 CPS0 0 0 0 系统时钟频率 fosc/12。 0 0 1 系统时钟频率 fosc/2。 0 1 0 Timer0 溢出。 0 1 1 由 ECI/P3.4 脚输入的外部时钟,最大 fosc/2。 1 0 0 系统时钟频率, Fosc/1 1 0 1 系统时钟频率/4,Fosc/4 1 1 0 系统时钟频率/6,Fosc/6 1 1 1 系统时钟频率/8,Fosc/8ECF: PCA计数器溢出中断允许位, 1-允许 CF(CCON.7) 产生中断。*/-sfr CL = 0xE9; /PCA 计数器低位 0000,0000sfr CH = 0xF9; /PCA 计数器高位 0000,0000/-/ 7 6 5 4 3 2 1 0 Reset Valuesfr CCAPM0 = 0xDA; /PCA 模块0 PWM 寄存器 - ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 x000,0000sfr CCAPM1 = 0xDB; /PCA 模块1 PWM 寄存器 - ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 x000,0000/ECOMn = 1:允许比较功能。/CAPPn = 1:允许上升沿触发捕捉功能。/CAPNn = 1:允许下降沿触发捕捉功能。/MATn = 1:当匹配情况发生时, 允许 CCON 中的 CCFn 置位。/TOGn = 1:当匹配情况发生时, CEXn 将翻转。/PWMn = 1:将 CEXn 设置为 PWM 输出。/ECCFn = 1:允许 CCON 中的 CCFn 触发中断。/ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn/ 0 0 0 0 0 0 0 0x00 未启用任何功能。/ x 1 0 0 0 0 x 0x21 16位CEXn上升沿触发捕捉功能。/ x 0 1 0 0 0 x 0x11 16位CEXn下降沿触发捕捉功能。/ x 1 1 0 0 0 x 0x31 16位CEXn边沿(上、下沿)触发捕捉功能。/ 1 0 0 1 0 0 x 0x49 16位软件定时器。/ 1 0 0 1 1 0 x 0x4d 16位高速脉冲输出。/ 1 0 0 0 0 1 0 0x42 8位 PWM。/ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn/ 0 0 0 0 0 0 0 0x00 无此操作/ 1 0 0 0 0 1 0 0x42 普通8位PWM, 无中断/ 1 1 0 0 0 1 1 0x63 PWM输出由低变高可产生中断/ 1 0 1 0 0 1 1 0x53 PWM输出由高变低可产生中断/ 1 1 1 0 0 1 1 0x73 PWM输出由低变高或由高变低都可产生中断/-sfr CCAP0L = 0xEA; /PCA 模块 0 的捕捉/比较寄存器低 8 位。 0000,0000sfr CCAP0H = 0xFA; /PCA 模块 0 的捕捉/比较寄存器高 8 位。 0000,0000sfr CCAP1L = 0xEB; /PCA 模块 1 的捕捉/比较寄存器低 8 位。 0000,0000sfr CCAP1H = 0xFB; /PCA 模块 1 的捕捉/比较寄存器高 8 位。 0000,0000/-/ 7 6 5 4 3 2 1 0 Reset Valuesfr PCA_PWM0 = 0xF2; /PCA 模块0 PWM 寄存器。 - - - - - - EPC0H EPC0L xxxx,xx00sfr PCA_PWM1 = 0xF3; /PCA 模块1 PWM 寄存器。 - - - - - - EPC1H EPC1L xxxx,xx00/PCA_PWMn: 7 6 5 4 3 2 1 0/ - - - - - - EPCnH EPCnL/B7-B2: 保留/B1(EPCnH): 在 PWM 模式下,与 CCAPnH 组成 9 位数。/B0(EPCnL): 在 PWM 模式下,与 CCAPnL 组成 9 位数。/-/新一代 1T 80

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论