微型计算机技术及应用实验指导书.doc_第1页
微型计算机技术及应用实验指导书.doc_第2页
微型计算机技术及应用实验指导书.doc_第3页
微型计算机技术及应用实验指导书.doc_第4页
微型计算机技术及应用实验指导书.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机技术及应用实 验 指 导 书信息工程学院实验总室2011年9月编写目 录学生实验室规则2仿真系统使用简介3实验一 基本I/O接口实验8实验二 P3.3口输入,P1口输出10实验三 中断应用实验工业顺序控制13实验四6位8段LED动态显示控制15实验五定时器与中断综合应用实验秒表17实验六串并转换试验21实验七8255控制交通灯22实验八 A/D转换实验24实验九 步进电机控制实验25实验十小直流电机调速实验27实验十一 D/A输出拟定波形实验29实验十二 电脑时钟30实验十三1616点阵显示控制实验31实验十四8155并行扩展33键盘、4位LED显示34实验十五216LCD液晶显示接口实验36实验十六MCS-51 串行口应用实验双机通信37实验十七MCS-51 串行口应用实验与PC机通信38附录 字形/字位表/键值表41学生实验室规则1、学生应在实验课前做好实验的预习工作,并写好预习报告交老师检查。无预习报告不准参加实验。 2、学生应按时上实验课,按照老师要求对号入座,进入实验室后不得大声喧哗与打闹,保持肃静的实验环境。 3、在实验室内不准吃东西、喝饮料、不准吸烟、不准穿背心、拖鞋,注意着装礼貌。 4、学生要按技术规程操作仪器设备,不懂要求与技术操作者应虚心请教老师。对于与实验无关的仪器,不要揎自使用,不能揎自交换仪器以及把公物拿出实验室。 5、学生做实验应严肃认真、耐心细致,听从老师指导,正确操作。严防触电、损坏仪器或其它事故发生。 6、实验完毕,应把实验数据记录或结果交指导老师审阅。 7、学生离开实验室前,要将所用仪器设备放置原处,关好仪器开关,并保持室内及实验台的整洁。 8、学生损坏仪器要及时报告老师,并按规定进行经济赔偿。 9、学生应按时交实验报告。 仿真系统使用简介一、 Dais仿真实验系统简介本实验室应用Dais958H+型仿真实验系统,它是及微机原理8086/8088、单片机MCS-51、MCS-96为一体的三合一仿真系统, 把不同类型CPU的三总线(八位数据线、十六位地址总线、CPU控制总线)浓缩与合成,形成混为一体的通用型微机仿真实验系统。系统提供丰富的软硬件资源,实验项目完整丰富,与课程教学紧密结合,能完成微型计算机原理与接口技术、单片机原理及应用课程的实验内容。系统中的实验部件均为模块化设计电路,各模块之间相互独立,学生根据设计要求进行硬件电路设计连线及软件编程。本实验系统同时配有直流电机、步进电机、音响等实验被控对象,可支持控制应用等综合性实验。师生可根据实际需要选择,修改或新开实验项目。系统硬件主要内容如表一所示:表一 系统硬件主要内容CPU管理CPU:89C52 、目标CPU: 准16位微处理器8088、8032/78E438系列单片机、196KB/KC单片机系统存储器监控管理程序在管理CPU的FLASH中、由RAM器件 61256二片构成最小系统(寻址范围64K)、BPRAM 61256(32K)接口芯片及单元实验8251、8253、8255、8259、8237、ADC0809、DAC0832、164、273、244、393分频、电子发声单元,电机控制单元, 开关及发光二极管、单脉冲触发器、继电器控制、1616点阵、216LCD等外设接口打印接口,RS232C串口、D/A驱动接口、步进电机驱动接口、音频驱动接口、PC总线接口显示器6位LED、二路双踪示波器键盘32键自定义键盘EPROM编程器对EPROM 2764/27128快速读出系统电源+5V/2A,12V/0.5A1. 系统组成Dais958H+型仿真实验系统的微机接口实验由管理CPU、目标CPU 8088/8032/196单元和通用电路、接口实验电路及稳压电源组成,并配有CPU选择开关、串行口通信波特率选择开关。系统既能独立运行(脱机方式),也可以PC微机为操作平台。系统接口实验电路为单元电路方式,通过RS232串行接口与PC微机相连,在Windows集成软件的支持下,利用上位机丰富的软硬件资源,实现用户程序的编辑、编译、调试运行。目标CPU8088采用主频为14.3818MHz晶振,51系列单片机晶振频率6MHz。“MCS-51实验系统”支持汇编语言及C51编程、调试及运行。2. 系统资源分配实验系统寻址范围定义如表二所示:系统数据区F000:000000FFH系统堆栈区F000:010001FFH系统程序区F000:020007FFH用户程序区用户数据区0000:100007FFFH用户堆栈区0000:04000600H中断向量区0000:000003FFH系统已定义的I/O地址如下:接口芯片口地址用途74LS273FFDDH字位口74LS273FFDCH字形口74LS245FFDEH键入口8255A口FFD8HEP总线8255B口FFD9HEP地址8255C口FFDAHEP控制8255控制口FFDBH控制字3. 常用控制电路1.串行口通信波特率选择开关(位于实验箱右上角的船形开关) 串行口通信波特率选择开关2. CPU选择开关(位于实验箱右侧,串行口通信波特率选择开关下方的船形开关)3、三输入、八输出译码器(74LS138)电路系统上配有带使能控制的三输入、八输出译码器74LS138一片。系统实验程序中对译码器的定义是:使能控制端G的有效寻址范围为0FFE0H0FFFFH,译码器输入控制端A、B、C连接地址线A2、A3、A4,其译码输出端Y0Y7的有效寻址范围分别为0FFE0H、0FFE4H、0FFE8H、0FFECH、0FFF0H、0FFF4H、0FFF8H和0FFFCH,如下图 二、 Dais仿真实验系统安装使用1.硬件安装电源连接:通过随机所配的三芯电源线接入AC220V电网。打开电源开关系统应显示闪动的“P.”,若否应按下复位(RESET)键,如仍不显示闪动的“P.”,应立即切断电源,检查后重新进行或向指导教师报告。2.Windows环境快捷使用在桌面上双击图标,弹出图1所示“选择通讯端口”对话框,然后选择PC机与实验系统所插串口一致的串口选项(串口1或2),与仿真器串行口通信波特率选择开关所对应位置一致的选项,(右侧是57600、中间是9600),软硬件设置、串口接线正确,且仿真器电 图1: 选择通讯端口对话框源打开,点击“确认”,计算机与仿真器连接,便进入Dais集成调试环境(IDE),如图2所示。IDE是 Intergrated Development Environment(集成开发环境)的缩写。使用 IDE可以轻松地创建文件,并可通过其良好的界面来编译或编辑文件,以生成下载至 Dais 仿真器中的调试程序文件。点击“确认”若未进入Dais集成调试环境而系统弹出图3所示Information提示框,选择“Yes”连接仿真器进入Dais集成调试环境。选择“No”与选择“选择通讯端口”对话框“取消”一样,不连仿真器进入Dais集成调试环境。注意:若仿真器与计算机没有连接,主界面上仿真器连接图标有颜色(红绿),否则仿真器连接图标显示灰色。图2:IDE集成调试环境主界面图3: Information对话框 注意:点击“NO”可不连仿真器直接进入集成调试环境主界面,然后在菜单“设置”选项中选择“选择通讯端口”进行设置连接仿真器。在单片机实验中在菜单“设置”选项中选择“仿真模式”,仿真模式设置如图4所示:图3:仿真模式设置对话框系统功能自检(联机方式)单片机实验中,点击工具条中“”图标,在打开对话框中(Dais文件夹)双击LED51.asm文件,进入实验源程序的编辑窗口。工具条中点击“”图标,进行源文件编译、装载,在出现编译成功的对话框后点击“OK”自动进入源文件调试状态。点击“”运行, 执行系统自检程序,以连续方式运行“8”字循环右移程序,若LED出现跑“8”显示,说明系统已进入正常工作状态,点击“”停止。调试程序时,可在在工具条中点击所需的运行方式:“”单步、“”宏单步、“”运行。若需要以断点方式运行,可直接点击源语句行前的“”图标来完成所需断点的设置与清除,然后再点击“”图标进入断点运行状态。系统进入运行状态后若需终止程序运行请点击图标“”退出当前操作返回待令状态。步骤可在IDE集成开发环境主界面菜单栏中的对应功能菜单项实现注意:(1)当已经建立或打开了的一个源程序文件(汇编语言或C51,其扩展名是 .asm或 .C),可以使用菜单编译项中的“文件编译、连接、装载”命令或单击工具栏“”按钮即可对当前源文件进行编译、连接,如果源文件存在错误,即弹出下列“编译连接产生错误”对话框,单击“OK”,编译错误信息便出现在“编译连接信息”窗口,双击错误信息行,光标便自动跳转到源文件编辑窗口的出错行,以便进行修改。如果源程序文件没有错误,即弹出“编译、连接成功”对话框。 (2)当启动调试软件或在使用软件过程中出现通讯错误提示框,如下图所示。 主要有以下几个原因: 仿真器与计算机没有连接; 仿真器的电源没有打开; 仿真器连接的实际串行口波特率选择开关位置与软件设置不一致; 对于的错误,只要在硬件上检查一下,或用杀毒软件清除病毒即可。对于第种错误,请单击“No”进入主界面,再打开“设置通讯端口选择”菜单,选择与硬件实际连接的端口及波特率与仿真器一致,单击“确定”按钮即可。IDE集成开发环境系统使用详见IDE主界面菜单中的“帮助”项。3. 初始化状态51系列单片机8032实验系统复位后各寄存器的初始化值如下:PC=0000H,SP=07H,P0P3=FFH,DPTR=0000H,ACC、B、PSW均为0,其余详见教材。4. 实验注意事项1)实验接线图上的粗实线表示学生在实验时要用导线连接起来。2)文件名:所编辑的文件起名不得超过8个字符,不可以使用汉字以及“- 、?、*、/”等DOS文件名所不可使用的字符,也不可输入盘符和路径!否则,当你点击 “” 图标编译、连接、装载程序时,系统提示错误,出现如下错误信息提示对话框。说明所编辑文件名起名错误,按要求重新起名;或者是预说明语句不正确。 实验一 基本I/O接口实验一、实验目的 1、熟习单片机实验系统的操作方法及实验步骤。2、学习P1口使用方法。3、用汇编语言编写程序,学习延时子程序的编写和使用。二、实验内容1、P1八位分别连线八只发光二极管;编程实现控制八个灯依次循环点亮,延时1s。2、P1.0口输出方波,方波占空比50%,周期为50ms。 三、程序参考流程(注:书中给出的流程图仅作为编程参考,可不依据该流程图自行编写程序完成实验。)四、编程提示1、P1口为双向I/0接口,每一位都可作为输出或输入端。编写程序可对其按字节操作(如:MOV P1,#0FFH)或者按位操作(如:SETB P1.0)。2、单片机定时可用指令循环方式(软件延时)或定时器定时方式(硬件延时)实现。若用指令循环方式,其程序延时时间计算公式如下:延时时间 = 执行指令所需机器周期 指令循环次数例如:要实现100ms延时,可编写程序如下:DEL: MOV R3,#200 DEL1: MOV R2,#125 DEL2: DJNZ R2,DEL2 ; 125 * 4 =500s DJNZ R3,DEL1 ;0.5ms*200=100ms本实验箱单片机外接晶振频率为6MHz,执行一条单周期指令(如:MOV)时间为2s,执行一条双周期指令(如:DJNZ)为4s。以上程序精确延时时间为:(500+2+4)*200+2=101.202(ms) 3、参考例子 P1口输出,点亮一个发光二极管L17汇编语言参考程序:汇编语言不区分大小写ORG 0000h ;伪指令,定义程序存储初始地址MOV P1,#0feh;将立即数0feh送入P1口END ;结束指令C语言参考程序:注意:C语言区分大小写#include / 包含SFR预定义头文件void main() / 主函数 P1=0xfe; / P1口输出fe 让灯L1延时0.5s闪烁汇编语言参考程序ORG 0000hstart:CPL p1.0 ; P1.0位取反ACALL delay ;调用延时子程序AJMP start ;无条件跳转指令delay:MOV R3,#5 ;延时子程序DEL1: MOV R2,#200DEL2: MOV R1,#125DEL3:DJNZ R1,DEL3 DJNZ R2,DEL2DJNZ R3,DEL1RET ;子程序返回语句ENDC语言参考程序#include#define uint unsigned int /自定义数据类型void delay(); /函数声明void main() while(1) /无限循环函数 P1=P11;/P1.0求反,表达式不唯一 delay(); /延时程序调用 /函数定义,该函数为一个无参数函数void delay() /该函数实现程序延时功能 uint x,y; /修改x,y初值可以改变延时时间for(x=100;x0;x-) for(y=200;y0;y-) ;五、实验电路六、实验步骤1、实验接线:用导线把P1.OP1.7分别连接至L1L8,打开实验箱电源;2、编程调试:在PC机上打开实验软件(MCS-51单片机实验系统),用汇编语言编写并调试程序;下载运行程序,观察发光二极管点亮移位情况,如果现象不对继续修改程序。七、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:若采用计数器延时,试编写程序实现,可分别用汇编和C51语言。实验二 P3.3口输入,P1口输出一、实验目的1、进一步熟悉汇编语言编程思路和程序调试方法。2、学习P1、P3 I/O口使用。二、实验内容1、P3口做输入口,外接一开关作为脉冲信号源,每输入一个脉冲,P1口按十六进制加一。2、P1口做输出口,编写程序,使P1口接的8 个发光二极管L1L8按16进制加一方式点亮发光二极管。三、实验说明1、P3口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P3口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。2、参考例子 读取P3口输入开关状态输出到P1口通过外接的LED灯显示.43汇编语言参考程序:ORG 0000h MOV P3,#0FFH ;P3口初始化MOV ACC,P3 ;将P3口数据读入累加器ACC中MOV P1,ACC ;将将ACC中数据送入P1口输出END C语言参考程序: #include void main() P3=0xff; /P3口初始化P1=P3; / P3口输入送P1口输出 查询方式判断开关状态,关时L1灯灭,开时L1灯亮汇编语言参考程序ORG 0000hMOV P3,#0FFH ;P3口初始化test:JNB P3.3,open ;判位跳转指令 SETB P1.0 ;置1指令AJMP test ;无条件跳转指令open:CLR P1.0 ;清0指令AJMP test ENDC语言参考程序#includesbit p3_3=P33; /位变量定义sbit p1_0=P10;void main() P3=0xff;while(1) if(p3_3=1) p1_0=1; else p1_0=0; 四、程序参考流程 五、实验线路图 六、实验步骤1、实验连线用导线把P3.3连至K1,P1.0-P1.7连至L1-L8。2、编程调试:在PC机上打开实验软件(MCS51单片机开发系统),用汇编语言编写并调试程序;下载运行程序,用连续方式运行程序。3、观察运行结果在连续运行状态下,开关K1每拨动一次,L1-L8发光二极管按16进制方式加一点亮。七、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:若采用中断方式判断开关状态,试编写程序实现。实验三 中断应用实验工业顺序控制一、实验目的1、 掌握中断程序的编写方法。2、 了解工业顺序控制相关概念及操作方法。3、 学习单片机控制喇叭等发声器件的原理及实现方法。4、 学习利用C51编写程序的技巧及方法。二、实验内容P1.0P1.6控制注塑机的七道工序,实现模拟控制七只发光二极管点亮,低电平有效。设定每道工序时间转换为1秒,P3.4为开工启动开关,高电平启动。P3.3(外部中断1输入口)为故障输入信号,低电平报警。P1.7为报警声音输出端,产生频率范围在202MHZ之间的方波信号,经功率放大器(LM386)放大后,驱动喇叭发出报警声。设定前6道工序只有一位输出,第七道工序有三位(LED6、7、8)输出。编程实现:1、打开开工开关后,七道工序循环动作;2、有中断信号输入时,立即停止工序动作(即:所有灯熄灭)并发出报警; 3、中断去除后,工序恢复到中断来时刻的工序动作。三、程序参考流程四、编程提示1、工业顺序控制概念:在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制。倒注塑机工艺过程大致按“合模注射延时开模产伸产退”顺序动作,用单片机最易实现。2、单片机中断系统是为使CPU具有对外界事件进行处理能力而设置的。当CPU正在处理某事件时外界发生紧急事件请求,CPU暂停当前工作,转而去处理这个紧急事件。处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。能够实现中断功能的事件为中断系统,向CPU发出中断请求称为中断源。MCS-51单片机的中断系统提供了5个中断源,具有两个中断优先级,可实现两极中断服务程序嵌套。通过关中断或开中断来控制中断源的状态。3、中断相关寄存器及其设置: 1)中断屏蔽:CPU可以对中断源开放或屏蔽,每一个中断源是否允许中断,是由内部中断允许寄存器IE的相应位控制。该位为1允许中断,为0禁止中断,其格式如下: EA/ESET1EX1ET0EX0cpu中断开放标志串口中断T1定时外部中断1T0定时外部中断0 例句:如要使CPU可以对所有中断源开放: EA=1; 2)中断优先级:MCS-51有两个中断优先级,对于每一个中断源均可编程为高优先级或低优先级,可以实现二级中断嵌套。中断优先级响应的原则:低级可被高级中断,反之不能;任何一种中断,一旦被CPU响应,不能被同级中断源所中断。中断优先级寄存器IP的格式如下:“1”为高级优先,“0”为低级优先。/PSPT1PX1PT0PX0串口中断定时器T1外部中断1定时器T0外部中断0 (寄存器地址IE:0A8H IP:0B8H) 3)中断触发方式选择:单片机触发方式有电平触发和边沿触发两种。本实验中外部中断信号接开关,所以应设为电平触发。编程时需要设置定时器控制寄存器TCON中与中断有关的位为“1”,外部中断0对应:IT0;外部中断1对应:IT1(例句: IT0=0 ;设置外部中断0为电平触发)4)中断源入口地址:MCS-51中断系统5个中断源入口地址分别为:中断源入口地址中断号外部中断00003H0定时器T0000BH1外部中断10013H2定时器T1001BH3串行口0023H44、电子控制系统常见的报警方式有:指示灯或数码管显示报警;采用声、光以及语音进行报警;具有控制功能的报警等。利用单片机系统进行报警的策略是把采集到的数据送到单片机进行处理,与该参数的上、下限给定值进行比较,若超过给定值时则进行报警;否则,就作为正常值进行显示或控制。本实验中用喇叭发出声音报警,报警声音的产生方法:编写程序使P1.7口输出方波脉冲信号,其频率范围在202MHZ(即人耳能够听到的音频范围).将该信号用导线引至音频放大电路输入端,再接至喇叭,即可发出声音。5、参考例子C语言参考程序外部中断0响应程序,当有外部中断信号输入时喇叭发出声音#include sbit beep=P17; /音频脉冲输出端bit warm; /定义位变量作为发声标志void song(int x) /喇叭蜂鸣函数 /形参x的值可以改变声音频率 int y=x; warm=0; beep=0; for( ;y0;y-); beep=1; for( ;y0;y-);init_sys() / 系统初始化函数IT0=0; / 设置外部中断0触发方式EX0=1; /外部中断0允许开放EA=1; / 总中断允许位置一warm=0; P3=0xff; /P3口初始化void main() /主函数 init_sys(); /系统初始化函数调用 while(1) if(warm=1) song(10); /发声标志为1时调用喇叭蜂鸣函数/外部中断0的中断函数void int0() interrupt 0 warm=1; /设置发声标志为1 五、实验电路六、实验步骤1、实验接线:按实验电路图连线。P3.4连K1,P3.3连K2,P1.0 P1.6分别连到L1L7,P1.7连SIN(功放LM386输入端),用一根八芯排线将步进电机驱动单元接口连接至音频驱动单元。初始状态K1,K2开关拨在高电平位置(开关向下为高)。2、编程及调试:编写程序,编译通过后下载运行程序。把K1接高电平,观察发光二极管点亮情况,确定工序执行是否正常。然后把K2置为低电平,看是否有声音报警。恢复K2为高电平,即中断信号消失,报警停,应该又从刚才报警时刻某道工序顺序执行下去。可用单步、单步跟踪,非全速断点、全速断点、连续执行等软件调试功能调试程序,直到符合自己程序设计要求为止。七、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:如果开工信号改由外部中断0(即用P3.2连K1)产生,而且要求中断0级别高于中断1,请问寄存器IE、IP应如何设置,并编写相应程序。实验四6位8段LED动态显示控制一、实验目的1、了解数码管动态显示的原理及编程方法;2、了解用总线方式控制数码管显示。二、实验内容 实验箱面板上自带的48键盘和6位LED显示电路如实验电路图所示。编程完成以下两个实验。1、 观察跑“8”自检程序的实验现象,再根据程序流程图自行编写程序实现。2、 根据单片机系统LED显示的基本原理,编写程序实现同时在六位LED上显示任意六个“静态”数字,如“129458”。要求用查表程序实现。三、编程提示1、LED的显示代码分为字形码和字位码,即对应字形口和字位口。2、字形端口的地址为FFDCH或DCH,字位端口的地址为FFDDH或DDH。字形表(详见附录)代码C0F9A4B0999282F880908883C6A1868E字形0123456789ABCDEF字位表LED位置LED6LED5LED4LED3LED2LED1字位值20H10H08H04H02H01H3、LED显示块是电发光二极管作为显示字段组成的显示器,有共阳、共阴两种连接方式。本实验电路用的是共阴极LED。型号为LG505011AG,是七段附带一个小数点(dp)的共阴极显示器,内部结构及显示的字符形状如图所示。adp最终分别连接数据总线D0D7。(实验箱为共阴极连接,在实际电路中段驱动接一240反向线驱动器,软件译码相当于共阳极接法)。 4、参考例子C语言参考程序1)在一位LED显示器上显示数值1#include #include /绝对地址访问头文件#define led_zx XBYTEOxffdc/定义6位LED显示器字形口的绝对地址#define led_zw XBYTEOxffdd /定义字位口地址void main() led_zx=0xf9; /字形码送入字形口 led_zw=0x01; /字位码送入字位口 2)左移跑“8”自检程序#include #include #define led_zx XBYTEOxffdc#define led_zw XBYTEOxffdd unsigned char code SEG_TAB=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /LED显示器09字形表void delay(x)int x; int y=x; for(;y0;y-) for(;y0;y-) ;void main() / 主函数 while(1) int i,j=1; led_zx=SEG_TAB8; /利用数组下标从字形表中查出数字8对应的字形码(0x80)送入字形口 for(i=0;i6;i+) led_zw=j; /字位码送入字位口 j=j1; delay(8000); /延时 四、实验电路五、实验步骤 实验箱内部连线已经联好,实验不需外部连线。编写程序,编译通过后下载运行,察看显示现象、验证实验结果。六、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:1)请解释实验中提到的“静态显示”和“动态显示”有何区别?若要实现静态显示,电路联线应如何修改,画图说明?2)动态显示时,要使人眼看到的数字图象无闪烁感,显示程序中刷新频率至少为多少?实验五定时器与中断综合应用实验秒表一、实验目的1、学习MCS-51单片机中定时器工作方式和定时计数功能;2、掌握定时器用中断方式产生延时的编程方法。二、实验内容用两位LED作为显示器,实现秒表计时显示功能。显示效果从“00”计到“59”再反复,每秒显示数字改变一次。要求用定时器在中断方式下实现0.1S计时,然后用程序计数10次实现一秒定时。三、程序参考流程四、编程提示1、51单片机有两个16位内部定时器/计数器。若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。由于脉冲周期固定由计数值可以计算出时间,有定时功能。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。2、TMOD1) M1M0工作方式控制位 2)定时器方式或计数器方式选择位 若C/T=1时,为计数器方式;C/T=0时,为定时器方式。 3)GATE 定时器/计数器运行门控标志位 当GATE=1时,T/C的启动受双重控制,即要求INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时,相应的T/C才被选通工作。若GATE=0, T/C的启动仅受TR0 (或 TR1)控制,即置1, T/C就被选通,而不管 INT0(或INT1)的电平是高还是低。3、TCONTF0、TF1分别是定时器/计数器T0、T1的溢出中断标志位,加法计数器计满溢出时置1,申请中断,在中断响应后自动复0。TF产生的中断申请是否被接受,还需要由中断是否开放来决定。TR1、TR0分别是定时器/计数器T1、T0的运行控制位, 通过软件置1后,定时器/计数器才开始工作,在系统复位时被清0。 4、初始化1)初始化步骤:在使用51系列单片机的T/C前,应对它进行编程初始化,主要是对TCON和TMOD编程,还需要计算和装载T/C的计数初值。一般完成以下几个步骤:确定T/C的工作方式编程TMOD寄存器;计算T/C中的计数初值,并装载到TH和TL;T/C在中断方式工作时,必须开CPU中断和源中断编程IE寄存器;启动定时器/计数器编程TCON中TR1或TR0位。2)计数初值的计算定时器的计数初值:在定时器方式下,T/C是对机器周期脉冲计数的,fOSC=6MHZ,一个机器周期12/fOSC=2us,则:方式0 13位定时器最大定时间隔=213*2us=16.384ms方式1 16位定时器最大定时间隔=216*2us=131.072ms方式2 8位定时器最大定时间隔=28*2us=512us若T/C工作在定时器方式1时,要求定时1ms,求计数值。如设计数初值为x,则有:(216-x)*2us=1000us 推出x=216-500因此,TH,TL可置65536-500计数器的计数初值在计数器方式下:方式0 13位计数器的满计数值=213=8192方式1 16位计数器的满计数值=216=65 536方式2 8位计数器的满计数值=28=256若T/C工作在计数器方式2时,则要求计数10个脉冲的计数初值,设计数初值为x。则有: 28-x=10 即 x=28-10因此,TH=TL=256-105、本实验编程主要包括:定时器中断程序、定时器初始化程序、显示程序三部分,程序编写比较复杂,学生在实验过程中可分步完成,最终组成一个完整的程序。比如显示程序需要动态显示两位数据,可以先实现一位显示计数,再修改程序实现两位显示。学生在编写程序过程中,可参考有关书籍中的查表程序、定时器中断程序、两位十进制数个位与十位分离程序(显示时需要把个位与十位数字分开,分别查表求字形码)等。6、参考例子C语言参考程序fOSC=6MHz,定时器T0工作于方式1,产生100ms定时中断,使P1.0产生周期为1s的方波。#include #define uchar unsigned charsbit P1_0=P10; uchar count; /计数变量void init_t0_1() /T0初始化函数 TH0=0x3c; /设置T0计数初值 TL0=0xb0; TMOD=1; /设置T0工作方式 TR0=1; /允许T0开始计数 IE=0x82; /定时器T0中断、总中断开放 count=10; /计数变量置初值 void main() init_t0_1(); for(;); /无限循环 void timer0() interrupt 1 /定时器T0中断函数 TL0=0xb0; TH0=0x3c; count-; if(count=0) count=10; P1_0=P1_0; 五、实验步骤本实验不用联线。编写程序,编译通过后下载运行,察看显示现象、验证结果。六、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:为什么只用定时器实现0.1s计时而不是1s?实验六串并转换试验一、实验目的 1.掌握8051串行口方式0工作方式及编程方法。 2.掌握利用串行口扩展I/O通道的方法。二、实验内容 利用8051串行口和串行输入并行输出移位寄存器74LS164,扩展一个8位输出通道,用于驱动一个数码显示器,在数码显示器上循环显示8051串行口输出的09这10个数字。三、实验说明串行口工作在方式0时,可通过外接移位存储器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。四、程序参考流程五、实验电路六、实验步骤1、实验连线P3.0、P3.1分别与串并单元的DATA、CLK相连,串并单元的CLR与系统/CLR相连2、在与PC联机状态下,编辑调试程序,编译、连接、下载,用连续方式运行程序。3、观察运行结果以连续方式运行程序,串并单元数码管上循环显示0-9这10个数字。七、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。实验七8255控制交通灯一、实验目的了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。二、实验内容用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。三、实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态 4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。四、编程提示可编程并行通信接口8255A有3个8位数据端口,即端口A、端口B、端口C、通过软件在控制端口中设置控制字来决定它的工作方式。为了适应多种数据传送方式的要求,8255A有3种基本工作方式。方式0:为基本输入输出方式;方式1:为选通输入输出方式;方式2:为双向传输方式方式选择控制字的格式如下:本实验用方式0,是一种基本的输入/输出方式。它是把PA0-PA7、PB0-PB7、PC0-PC7、全部输入/输出线都用作传送数据。设置方式选择控制字使各端口工作在输出方式。A组方式选择控制端口A和端口C的高四位 PC4-PC7的工作方式,B组方式选择控制端口B和端口C的低四位 PC0-PC3的工作方式。8255端口地址如下: 8255 A口地址 FFD8H 8255 B口地址 FFD9H 8255 C口地址 FFDAH 8255控制口地址 FFDBH 五、程序参考流程六、实验电路七、实验步骤1、实验连线8255PA口接L12L5,PB0PB3接L4L1。2、在与PC联机状态下,编辑调试程序,编译、连接、下载,用连续方式运行程序。3、观察运行结果在连续运行方式下,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。闪耀若干次后,再切换到东西路口方向,之后重复以上过程。八、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。实验八 A/D转换实验一、实验目的 1、掌握A/D转换器与单片机连接方法; 2、掌握A/D芯片0809转换性能及编程方法; 3、了解单片机如何进行数据采集。二、实验内容1.利用实验系统上的ADC0809做A/D转换器,实验系统上的可调电位器提供模拟量输入,编制程序,将模拟量转换成数字量,再通过数码管显示出来。要求显示效果为:LED显示器右边三位显示当前采集的电压值转换后的数字量;调节电位器,LED的内容随着输入电压变化而相应改变;LED以十进制方式显示。*2、进行A/D转换,将转换输出的数据转换成相应的电压值,将相应的电压值在上显示出来。数字电压表可以测量0-5V的电压,并在4位数码管上显示出来,测量的最小分辨率为0.019V,测量误差约为0.02V。 三、程序参考流程四、编程提示在单片机控制系统中,测控对象的参数往往是温度、压力和流量等非电量,运用传感器将非电量变换成连续变化的电信号,再将模拟电信号离散化,使其转换成计算机能够接受的数字量,这一过程称模数(A/D)转换。经过计算机处理的数字量,往往又需要转换成模拟量,以驱动执行机构,实现直接数字控制,这一过程称数模(D/A)转换。A/D转换器种类很多,有计数型、逐次逼近型、双积分型和并行高速A/D转换器。本实验选用ADC0809芯片,为逐次逼近型、八位8通道A/D转换器,转换速度100us。A/D与CPU的连线如下面的实验电路所示, A/D对应的外部口地址为0FFE0H。编程采用程序查询方式。五、实验电路六、实验步骤连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。74LS02门电路的脚接模数转换单元的SC/ALE,02门电路、脚接译码单元的Y0,02门电路的脚系统单元的IOW,02门电路的脚接模数转换单元的OE,02门电路的接系统单元的IOR。用8芯扁平电缆将I/O OUT区的数据总线插座与数据总线单元任一插座相连。模数转换单元的的CLK插孔与系统单元的ALE相连。把模数转换单元的模拟量调节输出端与模数转换单元的IN0相连。编写程序并运行,手动调节电位器W1,观看LED的内容是否随着电压变化而相应变化。七、实验报告要求1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。2、描述实验程序运行结果。3、完成思考题:若用其它通道采样,电路连线及程序应作如何调整? 实验九 步进电机控制实验一、实验目的了解控制步进电机的基本原理,掌握用单片机控制步进电机转动的编程方法。二、实验内容以P1.O-P1.3作为脉冲信号输出端,键盘输入控制信号,LED显示器输出显示信息。设计程序分步实现以下功能:1、 设置一开关作为执行键(也可用键盘某键实现),输入高电平时,电机运行;2、

温馨提示

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

评论

0/150

提交评论