1、第一部分 使用说明书一、系统实现的功能基于单片机控制的数字随动系统是在清华大学科教仪器厂生产的SKJ-II型数字随动系统的基础上改进的,具体包括51单片机的数字调节器模块、安全实验的电源模块、大屏幕显示部分、SKJ-II型数字随动系统学习机部分,各部分功能分别描述如下。51单片机的数字调节器模块:1)功能位置调节器,可以实现PI或PID调节,PID参数可以通过拨码开关选择64种PID参数实验,人工给定范围-155155的控制、程序给定270360(0)900(360)270的3值梯阶波或234360(0)1200(360)234三角波控制,控制精度1;2)可以8位AD采样电位器连续给定、也可以
2、程序给定三角波或3值梯阶波,具体通过2位拨码选择,其中连续调节的电位器是SKJ-II的电位器,AD的前端通过信号调理电路实现了与SKJ-II的无缝对接,模拟信号调理范围-12V12V;3)8位DA及信号调理电路实现与SKJ-II的无缝对接,输出控制电压范围-11V11V;4)可以对给定量和反馈量各用4位实现值域0356.9,刷新速率6ms,显示分辨率0.1;5)可以实现声、光报警功能,其中声音报警采用越限报警方式,报警门限可以通过修改程实现,光报警主要监测程序执行时是否存在漏采样,反映采样周期合适与否;6)可以实现采样数据的发送通信,波特率19200bps,采用8位数据、无校验、1个停止位的帧
3、格式,RS-232协议。7)有测试钩,便于仪器仪表的在线测试。8)可以更换晶体等元件,便于主要元件改变参数。9)备留了典型传递函数的仿真模块,并且可以更换关键环节的参数;10)采用在线编程的51兼容单片机STC89C52RC,具有在线编程功能;11)开放的软件,便于学生修改软件和参数。安全实验的电源模块:是购买的开关电源模块,全塑封装,适合学生安全实验的要求,输入 AC220+/-10%,输出 +12V1A。大屏幕显示部分:采用购置的个人微型计算机,开发了实时微机软件,通过接收通信的数据,进行显示和最后1屏数据的存储,其中显示包括给定轮、反馈轮的形态显示和波形显示。SKJ-II型数字随动系统学
4、习机:学习机由电控箱和机械装置两部分组成。电控箱提供系统电源,模拟环节,执行机构驱动电路及前后接口,是数字随动系统的重要部分,机械装置主要包括直流力矩电机、测速发电机、减速器、绝对值编码器、接线端子和基座。二、技术性能指标:电源输入 AC220+/-10%输出 +5V1A +/-12V0.1A 24V2A模拟调节器速度调节器ASR P或PI/PD/PID调节其中:PI/PD/PID出厂前设置为PI电流调节器ACR接成PI调节器。其中RI=78K RP=75K C=0.022PWM 功放器开关频率 60HZ6000HZ可调,出厂时调到约2KHZ。脉冲幅值+/-10%脉冲占空比0100%可调功率放
5、大器电压-24V+/-10%最大输出电流 1.2A电流反馈取样电阻 0.5R/2W机械部分(1)力矩电机,测速电机,光电编码器(参见附录一)(2)减速器减速比 4:1摩擦机构,可调整模拟负载采用单片机配信号调理、A/D、D/A、LED显示、RS232通信、打码开关、报警等作为控制器,控制器的指标(1)8位A/D,采样周期可达6ms(2)8位D/A,控制更新周期可达6ms(3)8位LED数码管扫描显示,扫描周期可达5ms,数据更新速率20ms(4)RS232发送8位给定量和反馈量的高8位,19200bps,无奇偶校验,更新速率20ms(5)8位打码开关,可以给定方式和类型,还可以设置PID参数(
6、6)误差声音报警更新周期20ms(7)计算速度溢出光报警5ms安全实验的电源模块模块化的开关电源给51单片机的数字调节器模块供电输入 AC220+/-10%输出 +12V1A显示微型计算机可以实现形态显示和波形实时显示,显示指标为(1)图形显示分辨率:640*480(2)给定量和反馈量形态显示,更新速率20ms(3)给定量和反馈量波形显示,更新速率20ms(4)1屏周期12.8s(5)最佳操作系统:win98-MSDOS(6)RS232接收报文,COM1口,19200bps,位数据,无奇偶校验,更新速率20ms三系统简介SKJ-II型数字随动系统学习机由电控箱和机械装置两部分组成。电控箱提供系
7、统电源,模拟环节,执行机构驱动电路及前后接口,是数字随动系统的重要部分,其结构和原理简介如下:参见图2)。数字接口XS2是计算机或单片机接口,XS2为标准D型25P插座,插座各引脚定义见表1,用户可根据自己配置灵活接线,其中+5V,+/-12V电源可提供接口电路和单片机装置用,也可使用外接电源。表插座引脚符号对照表符号XJ3(15)XJ2(25)备注+5V11电源光电编码器D09220 UP(XJ6)D121421D231522D310323D441624D511425D651726D712527D861828DGND137,19数字地CP7(接高电平)DGND14,15屏蔽层接地AGND8,
8、20摸拟地+12V21电源-12V22电源Un (XJ5)23速度反馈Ui (XJ4)11电流反馈Un* (XJ3)24速度给定Ui* (XJ2)12电流给定Uct* (XJ1)2510电流反馈2(XB5,在板内模拟环节速度调节器ASR和电流调节器ACR由通用型运放LM358组成,其外围电路如图2所示,用户也可根据实验需要改变各环节有关参数。PWM功率放大器PWM功放器由双运放A1组成三角波振荡器,与A3a及外围电路组成的电压比较器共同构成电压控制PWM电路。当X11端电压由-5V+5V变化时,X12端输出脉冲宽度由100%0,调节RP3可使X11电压为0时X12输出脉冲为50%,有关PWM电
9、路工作原理可查阅有关资料。电动机功率放器是由晶体管V1V10及相应电路组成的H桥式电路。电阻R40和R43为0.5电流取样电阻,其中一路经A3b反相后送出。电阻R56为0.5取样电阻,用于测量电动机电流。其它电路及扩展区测速电机接口及滤波调整电路。由电位器P4,插口X18,X19等组成,可由J5观察测试。为便于用户扩展试验或二次开发,主板上附设了用户扩展区,可装接20P以内IC7片,16P以内3片。四面板图说明学习机面板是以系统结构和工作原理结合的形式设计的,采用了符合国家标准的图形符号,并在各环节和信号线上设置了检查测试插口。图1是面板布置图,有关内容说明如下:1, 符号及插孔。Ui,Un,
10、Up分别为电流 ,速度,位置反馈信号。 Ui*,Un*,分别为电流,速度给定信号。Uct*为计算机控制信号。XJ1XJ6 为相应测试孔,其中XJ6为光电编码器最低位(2)脉冲信号,其余信号通过XS3连接到XS2插座上。XJ7为三角波输出信号测试端。X1X15为可叠插式插头互联的接线孔,可根据实际上验内容要求插接并可检没到各部位信号。X16,X17为力矩电机接线端,X18,X19为没速电机接线端,。+5V,+12,12V,24为相应直流电源没试端,并通过对应LED显示。 GND为公共接地端。2, 电位器及开关。电位器RP1为-5V+5V直流电压调节,通过S开关可接通或断开,作为速度环的阶跃输入信
11、号。RP5为速度 调节器比例放大倍数调节电位器。RP3为PWM电路调零电位器。RP4为测速电机输出电压调节电位器。3, 接线插座。XS2为25线D型插座,这两插座是计算机插接口。XS3为光电码盘信号输入插头,XS2XS3的接线见表一,面板方向见各插座引线顺序图见图2 4信号切换开关 XB1-XB5为给定和反馈信号A/D切换开关,其中XB5与XB4同为电流反馈切换开关,两者大小相等,相位相反,故面板上仅标出XB4,为保证实验顺利进行,所有切换开关均在面板背后,由实验室管理人员根据实际需要设置,出厂位置如图1所示。五51单片机的调节器技术说明51单片机的数字调节器原理图如图所示,采用STC89C5
12、2RC单片机作为数字控制器,采用大模式扩展地址总线,但未用低8位地址,只用高8位地址,即A15A8,要扩展A/D转换、D/A转换、LED数码管扫描显示、D/I数据输入等接口,为了节省硬件,采用线选法端口译码,用A15作为数码管扫描显示的段码写端口线选地址,用A14作为数码管扫描显示的位码写端口线选地址,用A13作为绝对值编码器的高8位数据输入读端口线选地址,用A12作为D/A数据写端口线选地址,用A11作为启动A/D转换写端口线选地址和读取A/D转换数据的读端口线选地址,用A10、A9、A8作为A/D转换的通道选择,六使用与维护1 验机与准备(1) 通电前,检查面板上的紧固件,插座是否牢固,连
13、接线是否正确。(2) 通电合上电源开关。这时+12V、-12V-+5V、-24V的电源指示灯应被点亮,同时用万用表检测各路电源的电压的数值和极性是否正确。允许误差+-12V及+-5V电源,+-5%以内-24V电源 +-10%以内。(空载时约为2428V)(3) 检查PWM脉冲调制功率放大器的工作情况PWM脉冲调制功率放大器由三部分组成:三角波发生器,电压比较器和功率放大器。1 首先在面板X17用示波器观察X12的波形,应为V=10V F=2KHZ的对称三角波2 将比较器的输入端接地X11与地短接,用示波器观察三角波的波形,应为一频率与三角波相等的矩形波,调节电位器RP3使矩形波宽度对称(方波)
14、。3 连接X12与X13,用示波器观察功率放大器输出端的波形,也应是一反方波,宽度也应对称不对称可以用RP3调节。4 把执行机构力矩电机接在功放的输出端X16X17上这时X11仍然接地,调节RP3可以使点电机正反转,最后调节RP3使电机停转,输出端X16X17的矩形波对称的位置上。以上四步检查通过 说明PWM功放工作正常。(4) 检查模拟电路的工作1 连接X2和X3X8和X9X10和X11X6和X5,合上开关s调节电位器RP1,这时电机就可以运转,X2的信号电压大,转速快:X2信号电压小,转速慢。电压反相,电机也反向旋转。2 测量速度反馈电压XJ 5的极性,应使XJ5点的电压与X3的电压极性相
15、反。如果极性一致,则应将电机接线端X18.X19的引线对调。3 速度环闭环调节:将X6和X5断开,使X4 和X5连接,利用开关S给一个阶跃信号,观察速度输出,通过调节Rp5,使动态特性符合要求。4电流反馈电压XJ4的极性与X9的电压极性相反。速度反馈电压的极性正确时电流反馈电压也是正确的。(注意XJ4为一个方向反馈电压,测量时如测不出可使电机反向即可。2 使用注意1可锁紧叠插件的使用:X1X5及电源指示灯下的插孔在插头插入时手握塑料柄适当用力并向一个方向(一般习惯顺时针)旋转3050即可锁紧,拨出时向相反方向旋转即可,不能硬拔,更不可直接拉导线,以免连接损坏。2微型插孔使用:XJ1XJ6为微型
16、插孔,可与示波器探头直接连接,亦可在孔内插入0.5mm的单股导线,但须防止导线折断在孔内。3插座XS2,XS3插拔时要对准方向,并在断电状态下操作。4如需调整XB1XB5或PWM开关频率,断电并拔出电源插头,将电路板从机箱拿出即可调整。3 维护保养1, 电控箱不用时应拔下相应插接线,并盖好箱盖。2, 注意适时减速齿轮滴入少量机油,以减少磨损并可减少噪声。3, 如果要对电动机和测速电机进行维修清洗,必须及时把短路环放入,以免失去磁性。七,附件及备件1, 附件:D型25线插头1套连接线10cm 8 根25cm 4 根40cm 2根电机连接线0.4mm 80cm 4 (红,黑各2根)2, 备件4插座
17、10个插针10个八电动机,测速发电机及光电编码器原始数据光电编码器型号:AL05512绝对式额定数据:(1)电源电压:50.5V(2)测量角度0360 (3)角分辨率360/512(4)测量误差20(5)输出高电平3.5V(6)输出低电平0.5V(7)消耗电流250mA(8)波形: 方波(9)上升下降时间1S(10)响应频率5KHZ(11)最大允许转数500r/min(12)启动力矩 210-N.m. 直流力矩电机型号SYL1.5额定数据:(1)转子绕组绝缘电阻不小于100兆欧(2转子绕组经受耐压500伏/分钟(3静磨擦力矩(组装式)0.0294N.m(4)空载启动电流0.18安(5)转子直流
18、电组(20 C)27欧姆士10%(6)连续堵转力矩0.147N.m -5%(7)连续堵转电流0.9安(8)连续堵转电压约20伏(9)空载转速约800转/ 分(10)转向火花1.5级测速电机型号70CDY1额定数据:(1)灵敏度1伏/弧度/秒(2)纹波电压1%(20转/分时波动峰值对平均值(3)每转纹波频率33周/转(4)线性度1%(5)不对称度1%(6)最大运行速度400转/分(7)直流电阻230(20 C)(8)最小负载电阻23K(9)静摩擦力矩300g.cm9图1 面板布置图图2 SKJ-2数字随动系统实验箱部分电路原理图3 51单片机控制器原理图实验一基于定时器定时中断的扫描显示实验一、
19、实验目的1. 进一步学习单片机内部定时器的使用和C51编程方法。2. 进一步掌握中断处理程序的C51编程方法。3. 进一步学习扫描显示的工作原理和C51编程方法。二、实验仪器1. 实验板1块(AC/DC开关型12V1A模块电源1个,RS232标准串行通信电缆1根)。2. 带DB9串口的台式微机1台。实验一图1 扫描显示电路原理图实验一图2 单片机部分原理图三、实验内容利用定时器定时中断,在中断服务程序中完成八段数码管的显示,在主程序中实现有限范围的秒的加、减计数,并且根据加、减计数值更新显示缓冲区的数据,秒的加法计数从-100100周期性计数,秒的减法计数从100 -100周期性计数。秒加法计
20、数值在左边4位数码管显示,秒加法计数值在右边4位数码管显示。通过改变SW3SW2SW1拨码开关位置改变时间常数,从而可以改变扫描显示周期,没有闪烁感的扫描显示周期为多少合适。四、实验电路连线和实验原理本实验连线实验板上已经接好,无需另外接线,扫描显示电路原理图如图实验一图1,单片机部分原理图如图实验一图2。其中地址译码采用线选法译码,显示段码端口地址由写信号/WR和地址线A15,显示位码端口地址由写信号/WR和地址线A14,其余地址线无效,我们假设为1。故显示段码端口地址为0111,1111,1111,1111B,即0x7FFF,进行写操作,即可输出显示段码,锁存于U4这个8位锁存器中。显示位
21、码端口地址为1011,1111,1111,1111B,即0xBFFF,进行写操作,即可输出显示段码,锁存于U5这个8位锁存器中。采用8段共阴数码管,则扫描显示需要锁存8位段码,选用74HC273芯片能够实现,其中段码的LSB位对应段A,段码的MSB位对应段H,则小数点不亮时数符09的段码如实验一表1所示。程序中可以用如下方法定义端口:#define Displaydata XBYTE 0x7FFF /数码管段码锁存器端口地址实验一表1 小数点不亮时共阴数码管段码表数符0123456789段码0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f可以考虑用查表的方法实现
22、数字到段码的查表法,具体表格定义如下:uchar code Disptab10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; 涉及到符号时,+号段码为0x00;-号段码为0x40;小数点单独控制,需要小数点的位,对应段码获得后,再或上0x80即可。为了显示两个数,其中一个-100100,另外一个100 -100,这里包括符号位,共计需要8个数码管,则扫描显示需要1个8位锁存器锁存8位数码公共端信息,选用SN74ABT273芯片能够实现,其中位码的LSB位对8号数码管,段码的MSB位对1号数码管,编号从1到8对应功能和位码如实验一表2所示。
23、实验一表2 编号从1到8数码管对应功能和位码数码管编号显示内容二进制位码十六进制M1加法符号位01111111B0x7f72加法百位10111111B0xbf63加法十位11011111B0xdf54加法个位11101111B0xef45减法符号位11110111B0xf736减法百位11111011B0xfb27减法十位11111101B0xfd18减法个位11111110B0xfe0程序中可以用如下方法定义端口#define Displaybit XBYTE 0xBFFF/数码管位码锁存器端口地址可以考虑用查表的方法实现扫描位控到位码的查表法,具体表格定义如下:uchar code Dis
24、pbit8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /共阴位码表扫描显示中经常需要考虑每位要显示一定的时间,经常使用软件延时的方法,但这种方法不好,我们采用定时器定时的方法,在中断服务程序中执行显示操作,具体方法如下:Displaydata=dispbufM; /查段码表送数显的段端口Displaybit=DispbitM; /查位码表送数显的位端口M+; /修改下一次的显示位时间常数高字节表、低字节表和1秒对应中断次数均采用表格提供,目前定义的拨码开关SW3SW2SW1无论在什么位置,均是扫描周期5ms。uchar code tHtab8=0xfd,
25、0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd; /定时器计数初值高字节表uchar code tLtab8=0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0; /定时器计数初值低字节表uchar code secondtab8=200,200,200,200,200,200,200,200; /1秒中断次数计数值表五、实验步骤1. 编辑源程序,参考扫描周期是5ms的程序2. 用Keil集成开发环境建工程,然后编译该程序,得后缀名.HEX的可执行程序。3. 利用标准串行通信电缆从微机的COM1口连接到51SKJXSJ单板线路板的DB9插座,运
26、行Ver:2.9 Beta5测试版STC-ISP.exe,选择单片机型号:STC89C52RC,打开你编译产生的HEX后缀名的文件,点击下载按钮再MCU上电复位-冷启动(插上AC/DC开关型模块电源),这时会在下面窗口显示一些提示信息,正常在编程结束时在51SKJXSJ单板上扫描显示2个秒计数值,并且每秒钟会改变。4. 记录显示规律。5. 改变扫描周期分别为10ms、20ms、40ms、50ms、100ms、200ms、500ms,求出时间常数和1秒对应中断次数,填入实验一表3中。实验一表3 时间常数和1秒对应中断次数扫描周期5ms10 ms20 ms40 ms50 ms100 ms200 m
27、s500 ms定时周期0.625ms时间常数0xfdc01秒对应中断次数2006. 根据实验一表3,分别修改时间常数高字节表、低字节表和1秒对应中断次数,注意原来的表的值全部是扫描周期5ms的值,重复1、2、3、4,直到做完为止。六、实验报告1. 写出扫描周期与时间常数的关系。2. 写出定量计算时间常数的方法,列写实验一表3的实验数据3. 说明没有闪烁感的扫描显示周期为多少合适。4. 记录显示规律。5. 画出主程序框图和定时中断服务程序框图。七、预习要求1. 复习定时器及中断有关知识;2. 复习扫描显示的有关软、硬件有关知识3. 预习实验内容,看懂线路和参考程序。八、参考程序/ SW1SW8连
28、P10P17,ON位逻辑0,OFF为逻辑1/SW3SW2SW1:000=5ms;001=10ms;010=20ms;011=40ms;100=50ms;101=100ms;110=200ms;111=500ms#include #include #define uchar unsigned char /无符号字符型变量新表示方法定义#define uint unsigned int /无符号整型变量新表示方法定义#define Displaydata XBYTE 0x7FFF/数码管段码锁存器端口地址#define Displaybit XBYTE 0xBFFF/数码管位码锁存器端口地址bit
29、 new_cycle_flag=0; /有新采样数据位标志定义(1是有新数据)char dispbuf8; /显示缓冲区字符型数组定义int Ax_r1,Ax_m1,Ax; /给定量角度、反馈量角度整数定义uchar M=0; /扫描显示位计数变量定义uchar counter_ms_s; /1秒中断次数计数器uchar code tHtab8=0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd;/定时器计数初值高字节表uchar code tLtab8=0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0;/定时器计数初值低字节表ucha
30、r code secondtab8=200,200,200,200,200,200,200,200; /1秒中断次数计数值表uchar code Disptab10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴0-9数字段码表uchar code Dispbit8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; /共阴位码表/*T0T1初始化*/ / 5_ 10_ 20_ 40_ 50_ 60_ 80_ 100_ 200_ 500void T0_init(void) / fdc0_fb80_f70
31、0_ee00_e980_e500_dc00_d300_a600_1f00 TMOD=0x01; /T0方式1定时 TH0=tHtabP1&0x07; /T0频率=(11059200/12)/(65536-0xfdc0)=1600Hz TL0=tLtabP1&0x07; /T0方式1定时周期=1/1600=0.000625s=0.625ms EA=1; /允许中断 ET0=1; /允许T0中断 TR0=1; /启动T0定时/*位置控制的显示数据更新*/void disp_g(void) /给定量显示缓冲区的更新 Ax=Ax_r1; /取要显示的物理量 if(Ax0) /如果给定角是负数 Ax=-
32、Ax; /取绝对值 dispbuf7=0x40; /符号位送负号段码 else dispbuf7=0x00; /符号位送正号段码 dispbuf4=DisptabAx%10|0x80; /给定个位更新 dispbuf5=DisptabAx/10%10; /给定十位更新 dispbuf6=DisptabAx/100; /给定百位更新void disp_f(void) /反馈量显示缓冲区的更新 Ax=Ax_m1; /取要显示的物理量 if(Ax0) / Ax=-Ax; /取绝对值 dispbuf3=0x40; /符号位送负号段码 else dispbuf3=0x00; /符号位送正号段码 disp
33、buf0=DisptabAx%10|0x80; /反馈个位更新 dispbuf1=DisptabAx/10%10; /反馈十位更新 dispbuf2=DisptabAx/100; /反馈百位更新/*主程序*/void main(void) Ax_r1=-100; Ax_m1=100; counter_ms_s=secondtabP1&0x07; T0_init(); /T0、T1初始化程序(11.0592MHz) do if(new_cycle_flag=1) /有新采样数据位标志 counter_ms_s-=1; if(counter_ms_s=0) counter_ms_s=secondt
34、abP1&0x07; Ax_r1+=1; if(Ax_r1=101) Ax_r1=-100; Ax_m1-=1; if(Ax_m1=-101) Ax_m1=100; disp_g(); /是1反馈部分显示缓冲区中段码数据的更新 disp_f(); /是3给定部分显示缓冲区中段码数据的更新 new_cycle_flag=0; /新采样周期标志清0 while(1);/*T0中断服务程序*/void t0(void) interrupt 1 using 1 /0.625ms中断1次,每次均要进行显示处理 TH0=tHtabP1&0x07; /T0时间常数高字节重装0xfdc0 TL0=tLtabP
35、1&0x07; /T0时间常数低字节重装 if(M=8) /5ms到了吗?因为0.625ms*8=5ms new_cycle_flag=1; /置有新采样数据标志 M=0; /M清0 Displaydata=dispbufM; /查段码表送数显的段端口 Displaybit=DispbitM; /查位码表送数显的位端口 M+; /修改下一次的显示位实验二DA转换实验一、实验目的1. 掌握DA转换与单片机的接口方法。2. 了解DA芯片DAC0832转换性能及C51编程方法。3. 掌握DI输入的C51编程方法。二、实验仪器1. 实验板1块(配AC/DC开关型12V1A模块电源1个,配RS232标准
36、串行通信电缆1根)。2. 带DB9串口的台式微机1台。3. 数字万用表。三、实验内容利用实验板上的8位DAC0832芯片做DA转换实验,DA的数据源用8位拨码开关设置的数字量通过DI输入,简单一点就是用P1口,记录数字量与模拟输出的对应关系。数据源的十六进制在左边4位数码管显示(加后缀H),理论上的X9插孔输出电压的十进制在右边4位数码管显示。四、实验电路连线和实验原理本实验连线实验板上已经接好,无需另外接线,DA转换电路原理图如图实验二图1所示,8位拨码开关与单片机部分的连接关系如图实验一图2。实验二图1 D/A转换电路原理图数据锁存级采用了1个写端口来访问,DAC寄存级接成了直通,因为/W
37、R2直接接地、Xfer也直接接地,均为有效电平,所以该DAC0832接成了单缓冲方式。写端口地址译码采用线选法译码,由写信号/WR和地址线A12,其余地址线无效,我们假设为1。故数据锁存端口地址为1110,1111,1111,1111B,即0xEFFF,进行写操作,即可输出DA数据,锁存于U3这个8位DA芯片进行D/A转换。程序中可以用如下方法定义端口:#define DA XBYTE 0xEFFF /外部DA转换数据输入端口地址由于使用了+12V和-12V电源和Vref基准电源,它们均由AC/DC开关型12V1A模块电源变换得到,电源转换电路原理图如图实验二图2所示。五、实验步骤1. 编辑源
38、程序,参考扫描周期是6ms的程序2. 用Keil集成开发环境建工程,然后编译该程序,得后缀名.HEX的可执行程序。3. 利用标准串行通信电缆从微机的COM1口连接到51SKJXSJ单板线路板的DB9插座,运行Ver:2.9 Beta5测试版STC-ISP.exe,选择单片机型号:STC89C52RC,打开你编译产生的HEX后缀名的文件,点击下载按钮再MCU上电复位-冷启动(插上AC/DC开关型模块电源),这时会在下面窗口显示一些提示信息,正常在编程结束时在51SKJXSJ单板上扫描显示拨码开关设置十六进制数据源和DA电路输出的电压的理论数据。4. 按照实验二表1要求设置拨码开关,记录理论电压,
39、用万用表测量S5和X9两处的电压。同时记录+12V和-12V电源电压。+12V和-12V电源电压测试点电路如图实验二图3所示,+12V位于线路板的R27远脚,-12V位于线路板的R29近脚。 实验二图2 电源转换电路原理图 实验二图3 +12V和-12V电源电压测试点实验二表1 DA数据源与DA输出电压的对应关系 六、实验报告1. 整理实验数据,计算误差。2. 写出Vs5、Vx9与数字量N的关系表达式。3. 按照实验二表1计算Vs5的理论值。4. 分析误差来源5. 画出主程序、定时中断服务程序的框图。七、预习要求1. 复习DA有关软、硬件有关知识2. 预习实验内容,看懂线路和参考程序。3. 注
40、意十进制与十六进制的差别。八、参考程序实验三AD转换实验一、实验目的1. 掌握AD转换与单片机的接口方法。2. 了解AD芯片ADC0809转换性能及C51编程方法。二、实验仪器1. 实验板1块(配AC/DC开关型12V1A模块电源1个,配RS232标准串行通信电缆1根)。2. 带DB9串口的台式微机1台。3. 数字万用表。三、实验内容利用实验板上的8位A DC0809芯片做AD转换实验,通过调节电位器改变模拟量,AD转换结果用十六进制显示,记录模拟量与数字量的对应关系。采样周期10ms,转换后的数据由右边4位数码管显示,理论上输入模拟电压在左边4位数码管显示。四、实验电路连线和实验原理本实验连线实验板上已经接好,需另外接线1根线,即X1连到X1_X3或X2。AD转换电路原理图如图实验三图1所示,单片机部分原理图如图实验一图2,给定模拟电压电路原理图如图实验三图2所示。实验三图2