微型计算机技术及应用实验指导书.doc
《微型计算机技术及应用实验指导书.doc》由会员分享,可在线阅读,更多相关《微型计算机技术及应用实验指导书.doc(37页珍藏版)》请在咨信网上搜索。
(完整版)微型计算机技术及应用实验指导书 微型计算机技术及应用 实 验 指 导 书 信息工程学院实验总室 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 实验十三 16×16点阵显示控制实验 31 实验十四 8155并行扩展3×3键盘、4位LED显示 34 实验十五 2×16LCD液晶显示接口实验 36 实验十六MCS-51 串行口应用实验㈠——双机通信 37 实验十七MCS—51 串行口应用实验㈡-—与PC机通信 38 附录 字形/字位表/键值表 41 学生实验室规则 1、学生应在实验课前做好实验的预习工作,并写好预习报告交老师检查。无预习报告不准参加实验。 2、学生应按时上实验课,按照老师要求对号入座,进入实验室后不得大声喧哗与打闹,保持肃静的实验环境. 3、在实验室内不准吃东西、喝饮料、不准吸烟、不准穿背心、拖鞋,注意着装礼貌。 4、学生要按技术规程操作仪器设备,不懂要求与技术操作者应虚心请教老师。对于与实验无关的仪器,不要揎自使用,不能揎自交换仪器以及把公物拿出实验室。 5、学生做实验应严肃认真、耐心细致,听从老师指导,正确操作。严防触电、损坏仪器或其它事故发生。 6、实验完毕,应把实验数据记录或结果交指导老师审阅. 7、学生离开实验室前,要将所用仪器设备放置原处,关好仪器开关,并保持室内及实验台的整洁。 8、学生损坏仪器要及时报告老师,并按规定进行经济赔偿。 9、学生应按时交实验报告。 仿真系统使用简介 一、 Dais仿真实验系统简介 本实验室应用Dais—958H+型仿真实验系统,它是及微机原理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分频、电子发声单元,电机控制单元, 开关及发光二极管、单脉冲触发器、继电器控制、16×16点阵、2×16LCD等 外设接口 打印接口,RS232C串口、D/A驱动接口、步进电机驱动接口、音频驱动接口、PC总线接口 显示器 6位LED、二路双踪示波器 键盘 32键自定义键盘 EPROM编程器 对EPROM 2764/27128快速读出 系统电源 +5V/2A,±12V/0.5A 1。 系统组成 Dais—958H+型仿真实验系统的微机接口实验由管理CPU、目标CPU 8088/8032/196单元和通用电路、接口实验电路及稳压电源组成,并配有CPU选择开关、串行口通信波特率选择开关.系统既能独立运行(脱机方式),也可以PC微机为操作平台。系统接口实验电路为单元电路方式,通过RS232串行接口与PC微机相连,在Windows集成软件的支持下,利用上位机丰富的软硬件资源,实现用户程序的编辑、编译、调试运行。目标CPU8088采用主频为14.3818MHz晶振,51系列单片机晶振频率6MHz。“MCS-51实验系统"支持汇编语言及C51编程、调试及运行。 2. 系统资源分配 实验系统寻址范围定义如表二所示: 系统数据区 F000:0000~00FFH 系统堆栈区 F000:0100~01FFH 系统程序区 F000:0200~07FFH 用户程序区 用户数据区 0000:1000~07FFFH 用户堆栈区 0000:0400~0600H 中断向量区 0000:0000~03FFH 系统已定义的I/O地址如下: 接口芯片 口地址 用途 74LS273 FFDDH 字位口 74LS273 FFDCH 字形口 74LS245 FFDEH 键入口 8255A口 FFD8H EP总线 8255B口 FFD9H EP地址 8255C口 FFDAH EP控制 8255控制口 FFDBH 控制字 3. 常用控制电路 1。串行口通信波特率选择开关(位于实验箱右上角的船形开关) 串行口通信波特率选择开关 2. CPU选择开关(位于实验箱右侧,串行口通信波特率选择开关下方的船形开关) 3、三输入、八输出译码器(74LS138)电路 系统上配有带使能控制的三输入、八输出译码器74LS138一片.系统实验程序中对译码器的定义是:使能控制端G的有效寻址范围为0FFE0H~0FFFFH,译码器输入控制端A、B、C连接地址线A2、A3、A4,其译码输出端Y0~Y7的有效寻址范围分别为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,P0~P3=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 =500μs DJNZ R3,DEL1 ;0。5ms*200=100ms 本实验箱单片机外接晶振频率为6MHz,执行一条单周期指令(如:MOV)时间为2μs,执行一条双周期指令(如:DJNZ)为4μs。以上程序精确延时时间为: (500+2+4)*200+2=101.202(ms) 3、参考例子 ① P1口输出,点亮一个发光二极管L1 - 1 - 汇编语言参考程序:[汇编语言不区分大小写] ORG 0000h ;伪指令,定义程序存储初始地址 MOV P1,#0feh;将立即数0feh送入P1口 END ;结束指令 C语言参考程序:[注意:C语言区分大小写] #include <reg51.h〉 // 包含SFR预定义头文件 void main() // 主函数 { P1=0xfe; } // P1口输出fe ② 让灯L1延时0。5s闪烁 汇编语言参考程序 ORG 0000h start:CPL p1.0 ; P1。0位取反 ACALL delay ;调用延时子程序 AJMP start ;无条件跳转指令 delay:MOV R3,#5 ;延时子程序 DEL1: MOV R2,#200 DEL2: MOV R1,#125 DEL3:DJNZ R1,DEL3 DJNZ R2,DEL2 DJNZ R3,DEL1 RET ;子程序返回语句 END C语言参考程序 #include〈reg51。h> #define uint unsigned int //自定义数据类型 void delay(); //函数声明 void main() { while(1) //无限循环函数 { P1=P1^1;//P1.0求反,表达式不唯一 delay(); //延时程序调用 } } //函数定义,该函数为一个无参数函数 void delay() //该函数实现程序延时功能 { uint x,y; //修改x,y初值可以改变延时时间 for(x=100;x>0;x-—) for(y=200;y〉0;y——) ; } 五、实验电路 六、实验步骤 1、实验接线:用导线把P1.O~P1.7分别连接至L1~L8,打开实验箱电源; 2、编程调试:在PC机上打开实验软件(MCS-51单片机实验系统),用汇编语言编写并调试程序;下载运行程序,观察发光二极管点亮移位情况,如果现象不对继续修改程序。 七、实验报告要求 1、写出实验完成后的完整程序及必要的文字说明,画出实验电路图。 2、描述实验程序运行结果。 3、完成思考题:若采用计数器延时,试编写程序实现,可分别用汇编和C51语言。 实验二 P3。3口输入,P1口输出 一、实验目的 1、进一步熟悉汇编语言编程思路和程序调试方法。 2、学习P1、P3 I/O口使用。 二、实验内容 1、P3口做输入口,外接一开关作为脉冲信号源,每输入一个脉冲,P1口按十六进制加一。 2、P1口做输出口,编写程序,使P1口接的8 个发光二极管L1—L8按16进制加一方式点亮发光二极管。 三、实验说明 1、P3口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P3口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1",读入的数据是不正确的。 2、参考例子 ① 读取P3口输入开关状态输出到P1口通过外接的LED灯显示。 38 汇编语言参考程序: ORG 0000h MOV P3,#0FFH ;P3口初始化 MOV ACC,P3 ;将P3口数据读入累加器ACC中 MOV P1,ACC ;将将ACC中数据送入P1口输出 END C语言参考程序: #include <reg51。h> void main() { P3=0xff; //P3口初始化 P1=P3; // P3口输入送P1口输出 } ② 查询方式判断开关状态,关时L1灯灭,开时L1灯亮 汇编语言参考程序 ORG 0000h MOV P3,#0FFH ;P3口初始化 test:JNB P3.3,open ;判位跳转指令 SETB P1.0 ;置1指令 AJMP test ;无条件跳转指令 open:CLR P1.0 ;清0指令 AJMP test END C语言参考程序 #include〈reg51.h> sbit p3_3=P3^3; //位变量定义 sbit p1_0=P1^0; 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。0~P1。6控制注塑机的七道工序,实现模拟控制七只发光二极管点亮,低电平有效.设定每道工序时间转换为1秒,P3.4为开工启动开关,高电平启动。P3。3(外部中断1输入口)为故障输入信号,低电平报警.P1.7为报警声音输出端,产生频率范围在20~2MHZ之间的方波信号,经功率放大器(LM386)放大后,驱动喇叭发出报警声。设定前6道工序只有一位输出,第七道工序有三位(LED6、7、8)输出。 编程实现:1、打开开工开关后,七道工序循环动作;2、有中断信号输入时,立即停止工序动作(即:所有灯熄灭)并发出报警; 3、中断去除后,工序恢复到中断来时刻的工序动作. 三、程序参考流程 四、编程提示 1、工业顺序控制概念:在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制。倒注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。 2、单片机中断系统是为使CPU具有对外界事件进行处理能力而设置的.当CPU正在处理某事件时外界发生紧急事件请求,CPU暂停当前工作,转而去处理这个紧急事件。处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。能够实现中断功能的事件为中断系统,向CPU发出中断请求称为中断源。MCS—51单片机的中断系统提供了5个中断源,具有两个中断优先级,可实现两极中断服务程序嵌套。通过关中断或开中断来控制中断源的状态. 3、中断相关寄存器及其设置: 1)中断屏蔽:CPU可以对中断源开放或屏蔽,每一个中断源是否允许中断,是由内部中断允许寄存器IE的相应位控制。该位为1允许中断,为0禁止中断,其格式如下: EA / / ES ET1 EX1 ET0 EX0 cpu中断开放标志 串口中断 T1定时 外部中断1 T0定时 外部中断0 例句:如要使CPU可以对所有中断源开放: EA=1; 2)中断优先级:MCS-51有两个中断优先级,对于每一个中断源均可编程为高优先级或低优先级,可以实现二级中断嵌套。中断优先级响应的原则:低级可被高级中断,反之不能;任何一种中断,一旦被CPU响应,不能被同级中断源所中断。 中断优先级寄存器IP的格式如下:“1"为高级优先,“0”为低级优先。 / / / PS PT1 PX1 PT0 PX0 串口中断 定时器T1 外部中断1 定时器T0 外部中断0 (寄存器地址IE:0A8H IP:0B8H) 3)中断触发方式选择:单片机触发方式有电平触发和边沿触发两种。本实验中外部中断信号接开关,所以应设为电平触发。编程时需要设置定时器控制寄存器TCON中与中断有关的位为“1”,外部中断0对应:IT0;外部中断1对应:IT1 (例句: IT0=0 ;设置外部中断0为电平触发) 4)中断源入口地址:MCS—51中断系统5个中断源入口地址分别为: 中断源 入口地址 中断号 外部中断0 0003H 0 定时器T0 000BH 1 外部中断1 0013H 2 定时器T1 001BH 3 串行口 0023H 4 4、电子控制系统常见的报警方式有:指示灯或数码管显示报警;采用声、光以及语音进行报警;具有控制功能的报警等.利用单片机系统进行报警的策略是把采集到的数据送到单片机进行处理,与该参数的上、下限给定值进行比较,若超过给定值时则进行报警;否则,就作为正常值进行显示或控制。 本实验中用喇叭发出声音报警,报警声音的产生方法:编写程序使P1。7口输出方波脉冲信号,其频率范围在20~2MHZ(即人耳能够听到的音频范围)。将该信号用导线引至音频放大电路输入端,再接至喇叭,即可发出声音。 5、参考例子[C语言参考程序] 外部中断0响应程序,当有外部中断信号输入时喇叭发出声音 #include 〈reg51.h> sbit beep=P1^7; //音频脉冲输出端 bit warm; //定义位变量作为发声标志 void song(int x) //喇叭蜂鸣函数 { //形参x的值可以改变声音频率 int y=x; warm=0; beep=0; for( ;y>0;y——); beep=1; for( ;y>0;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分别连到L1—L7,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、了解用总线方式控制数码管显示。 二、实验内容 实验箱面板上自带的4×8键盘和6位LED显示电路如实验电路图所示.编程完成以下两个实验。 1、 观察跑“8”自检程序的实验现象,再根据程序流程图自行编写程序实现。 2、 根据单片机系统LED显示的基本原理,编写程序实现同时在六位LED上显示任意六个“静态”数字,如“129458”。要求用查表程序实现. 三、编程提示 1、LED的显示代码分为字形码和字位码,即对应字形口和字位口。 2、字形端口的地址为FFDCH或DCH,字位端口的地址为FFDDH或DDH。 字形表(详见附录) 代码 C0 F9 A4 B0 99 92 82 F8 80 90 88 83 C6 A1 86 8E 字形 0 1 2 3 4 5 6 7 8 9 A B C D E F 字位表 LED位置 LED6 LED5 LED4 LED3 LED2 LED1 字位值 20H 10H 08H 04H 02H 01H 3、LED显示块是电发光二极管作为显示字段组成的显示器,有共阳、共阴两种连接方式.本实验电路用的是共阴极LED.型号为LG505011AG,是七段附带一个小数点(dp)的共阴极显示器,内部结构及显示的字符形状如图所示。a~dp最终分别连接数据总线D0~D7.(实验箱为共阴极连接,在实际电路中段驱动接一240反向线驱动器,软件译码相当于共阳极接法)。 4、参考例子[C语言参考程序] 1)在一位LED显示器上显示数值1 #include <reg51。h〉 #include <absacc。h〉 //绝对地址访问头文件 #define led_zx XBYTE[Oxffdc] //定义6位LED显示器字形口的绝对地址 #define led_zw XBYTE[Oxffdd] //定义字位口地址 void main() { led_zx=0xf9; //字形码送入字形口 led_zw=0x01; //字位码送入字位口 } 2)左移跑“8”自检程序 #include <reg51。h> #include <absacc。h> #define led_zx XBYTE[Oxffdc] #define led_zw XBYTE[Oxffdd] unsigned char code SEG_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //LED显示器0-9字形表 void delay(x) int x; { int y=x; for(;y〉0;y-—) for(;y〉0;y--) ; } void main() // 主函数 { while(1) { int i,j=1; led_zx=SEG_TAB[8]; //利用数组下标从字形表中查出数字8对应的字形码(0x80)送入字形口 for(i=0;i〈6;i++) { led_zw=j; //字位码送入字位口 j=j〈〈1; 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、TMOD 1) 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、TCON TF0、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-10 5、本实验编程主要包括:定时器中断程序、定时器初始化程序、显示程序三部分,程序编写比较复杂,学生在实验过程中可分步完成,最终组成一个完整的程序.比如显示程序需要动态显示两位数据,可以先实现一位显示计数,再修改程序实现两位显示。 学生在编写程序过程中,可参考有关书籍中的查表程序、定时器中断程序、两位十进制数个位与十位分离程序(显示时需要把个位与十位数字分开,分别查表求字形码)等. 6、参考例子[C语言参考程序] fOSC=6MHz,定时器T0工作于方式1,产生100ms定时中断,使P1。0产生周期为1s的方波。 #include 〈reg51。h> #define uchar unsigned char sbit P1_0=P1^0; 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--;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 应用 实验 指导书
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文