欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《单片机原理及应用》实验指导书.docx

    • 资源ID:11402877       资源大小:594.57KB        全文页数:33页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《单片机原理及应用》实验指导书.docx

    1、单片机原理及应用实验指导书单片机原理及应用 实验指导书罗钧 付丽 编 重庆大学光电工程学院2010年5月目 录实 验 规 则 (2实验一 单片机监控程序实验(4学时 (3附1.1:LAB2000P实验仪 (9附1.2:验证实验程序 (10附1.3:K EIL的使用步骤参考 (17实验二 A/D转换实验 (3学时 (21附2.1:验证实验程序 (24实验三 D/A转换实验 (2学时 (25附3.1:DA转换实验程序 (27实验四 单片机系统综合实验( 3学时 (28附4.1:实验仪中的温度传感器电路 (30附4.2:直流电机和步进电机控制接口电路 (31实 验 规 则为了维护正常的实验教学次序,

    2、提高实验课的教学质量,顺利的完成各项实验任务,确保人身、设备安全,特制定如下实验规则:一、实验前必须充分预习,完成指定的预习内容,预习要求如下:1.认真阅读本实验指导书,分析掌握本次实验的基本原理;2.完成各实验预习要求中指定的内容;3.明确实验任务。二、实验时,认真、仔细的写出源程序,进行调试,有问题向指导老师举手提问;三、实验时注意观察,如发现有异常现象(电脑故障或实验箱故障,必须及时报告指导老师,严禁私自乱动。四、实验过程中应仔细观察实验现象,认真记录实验数据、波形、逻辑关系及其它现象,记录的原始结果必须经指导教师审阅签字后,方可离开。五、自觉保持实验室的肃静、整洁;实验结束后,必须清理

    3、实验桌,将实验设备、工具、导线按规定放好,并填写仪器设备使用记录。六、凡有下列情况之一者,不准做实验:1.实验开始后迟到10 分钟以上者;2.实验中不遵守实验室有关规定,不爱护仪器,表现不好而又不服从教育者;七、实验后,必须认真作好实验报告,在规定时间里必须交给实验指导老师,没交实验报告者,视为缺做一次实验。实验报告要求必须包括:1.写出设计实验程序;2.总结实验步骤和实验结果;八、一次未做实验,本实验课成绩视为不及格。以上实验规则,请同学们自觉遵守,并互相监督。实验一 单片机监控程序实验(4学时实验预习要求:1.按照附3学习使用Keil软件。2.熟悉键盘和显示器接口及工作原理。3.根据实验原

    4、理,读懂验证实验程序,并写出设计性实验源程序。4.思考题:(1从附1.2监控程序可以看出:六位数码管显示的数据存放在单片机哪个位置?(2参考图1.1A与监控程序,键盘上若数字键7被按下,单片机怎样判断该键被按下?一、实验目的1.掌握8031系统中,键盘和显示器的接口方法。2.掌握键盘扫描和LED八段码显示器的工作原理。3.掌握对单片机IO口的控制编程。二、实验器材PC 机一台,Lab2000P 教学实验系统一台,导线数根。三、实验内容1.验证性实验利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在八位数码管上显示出来。2.设计性实验用Lab2000P 教学

    5、实验系统(见附2图,P1口产生一矩形波(周期可自己设定,设计的程序加到验证实验程序中,放在单片机程序空间0280h开始位置。程序运行时,把产生矩形波的P1口(P1.0P1.7任意一位接到示波器,观察设计程序运行时P1口产生的波形是否正确。四、实验原理1.实验仪器简介实验设备中Lab2000P教学实验系统是核心部件,所有实验都通过计算机处理后下载到实验箱中进行验证。本实验系统提供了多个模块,本次实验使用的主要模块为:单片机8031模块、8255模块。46键盘模块,六位LED显示模块等。2.键盘扫描显示原理键盘与六位LED显示器连接电路图见图1.1。(1芯片介绍74HC245:高速CMOS 型8位

    6、双向总线收发器(三态。主要用于数据总线的同步双向通信,起总线隔离驱动作用。74HC374:为八D 触发器集成芯片,电路中起显示驱动作用。图1.1(A 图1.1(B 图1.1 键盘及LED 显示电路(2扫描键盘和LED 显示原理(1(2MC1413(2本实验仪的LED显示电路和键盘电路如图1.1(A。显示控制的位码由芯片74374(1输出,经反向驱动后(反向驱动芯片MC1413,作为LED的位选通信号。位选通信号也同时作为键盘列扫描码,键盘扫描的行数据从芯片74245读回单片机,74374(1输出的列扫描码经245读入后,用来判断是否有键被按下,以及按下的是什么键。如果没有键按下,由于上拉电阻的

    7、作用,经245读回的数据位均为高,如果有键按下,74374(1输出的低电平经过按键被接到245的端口上,这样从245读回的数据就会有低位,根据74374(1输出的列信号和245读回的行信号,就可以判断哪个键被按下。LED显示的段码由74374(2输出。键盘和LED显示的地址译码见图1.1(B,做键盘和LED显示实验时,需将KEY/LED CS 接到相应的地址译码上。位码输出的地址为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED CS 决定,参见地址译码。例如将KEY/LED CS接到地址译码的CS0(如图1.2上,那么位码输出的地址就为0

    8、8002H,段码输出的地址就是08004H,键盘行码读回的地址为08001H。(3Lab2000P实验仪单片机系统138译码电路 图1.2 译码电路图其中:CS0: 08000H08FFFH CS1: 09000H09FFFH CS2: 0A000H0AFFFHCS3: 0B000H0BFFFH CS4: 0C000H0CFFFH CS5: 0D000H0DFFFHCS6: 0E000H0EFFFH CS7: 0F000H0FFFFH4. 段码表和键码表(1段码表七段数码管的字符型代码表如下表: (2键码表键码表如下:KeyTable: ; 键码定义功能键:16h, 15h, 14h, 0ff

    9、h 分别对应 MON ,LAST,NEXT,RST13h, 12h, 11h, 10h 分别对应TRACE/MODE,MOVE,HERE,EXEC数字键:0dh, 0ch, 0bh, 0ah 分别对应D,C,B,A0eh, 03h, 06h, 09h 分别对应E,3,6,90fh, 02h, 05h, 08h 分别对应F,2,5,800h, 01h, 04h, 07h 分别对应0,1,4,73. 验证实验程序流程(1主程序流程 图1.3 监控实验主程序流程图(2键盘扫描子程序流程图 图1.4 键盘输入子程序流程图五、实验步骤1.运行Keil软件,按照附1.3 “Keil软件使用的参考步骤”步骤

    10、110,建立工程、编译、链接。2、硬件连接:(1连接片选信号,将KEY/LED CS连接到CS0即可(具体的电路原理图请参考图1.1; 8255的片选连接到CS1。(2用串口线连接Lab2000P实验箱(右上角标有“仿真器串口”处到PC机。用电源线连接实验箱到220V电源,开启实验箱的电源(电源开关在实验箱的左侧。3、按照附1.3步骤1112下载目标文件,并全速运行程序。4、程序全速运行时,从实验箱上的键盘输入0200,再按“EXEC”键,观察实验结果。等到最左边的数码管显示“0”时,再从键盘输入0300,然后按“EXEC”键,用示波器观察8255的PA、PB、PC口输出的波形。或者把PA、P

    11、B、PC中的每位输出连接到实验箱中“逻辑笔”输入,观察指示灯的变化,记录实验结果。5、开始做设计实验。附1.1:lab2000P实验仪仿真器串口输入附1.2:验证实验程序/*监控程序:包括键盘扫描、8字循环显示、8255三个口输出方波*/OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口Ctrl_8255 equ 09003h ; 8255控制口地址PA_8255 equ 09000h ; 8255A口地址LEDBuf equ 60h ; 键盘输入数字显示缓冲LEDBuf1 equ 70h ; 六位数码管循

    12、环显示缓存LEDBuf2 equ 50h ; 键码缓存,用于跳转用ljmp StartLEDMap: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h;= = 延时子程序= Delay:mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopret;=6位数码管轮流显示子程序= DisplayLED:mov r0, #020hmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左

    13、边开始显示Loop:mov dptr, #OUTBITmov a, #0movx dptr, a ; 关所有八段管mov a, r0mov dptr, #OUTSEGmovx dptr,amov dptr, #OUTBITmov a, r2movx dptr, a ; 显示一位八段管mov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopret;= 单片机读入键盘行的状态子程序 = TestKey:mov dptr, #OUTBITmov a, #0movx dptr, a ; 输出线全置为0mov dptr, #IN ; IN =08001hmovx

    14、 a, dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07h;=扫描键盘子程序 = GetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(INmov r1, #00100000bmov r2, #6KLoop:mov a, r1 ; 找出键所在列

    15、cpl amovx dptr, acpl arr amov r1, a ; 下一列movx a, r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh ; 没有键按下, 返回 0ffhsjmp ExitGoon1:mov r1, a ; 按下键的键码在键码表中的位置偏移量=(列-1 X 4 + (行-1 ;从第6列开始mov a, r2dec arl arl amov r2, a ; r2 = (r2-1*4mov a, r1 ; r1中为读入的行值mov r1, #4LoopC:rrc a ; 移位找出所在行jc Exi

    16、tinc r2 ; r2 = r2+ 行值djnz r1, LoopCExit:mov a, r2 ;r2中为按下键的键码在键码表中的位置偏移量mov dptr, #KeyTablemovc a, a+dptrmov r2, a ; 取出键码WaitRelease:mov dptr, #OUTBIT ; 等键释放clr amovx dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2ret;=查找A中存放的数所对应LED显示段码子程序 = ToLED:mov dptr, #LEDMapmovc a, a+dptrret

    17、;=将键码(在A中 存放到LEDBuf2所指向的内部存储器单元=ToKeyTable:mov r1,LEDBuf2mov r1,aret;=初始化单片机内存子程序=InitLED:mov 20h, #3fhmov 21h, #0hmov 22h, #0hmov 23h, #0hmov 24h, #0hmov 25h, #0hret/ 主程序 / Start:mov LEDBuf,#020hmov LEDBuf2,#30hcall InitLEDmov LEDBuf1+0, #0ffh ; 8字循环显示模块程序用到,0ffh为8.的段码mov LEDBuf1+1, #0ffhmov LEDBuf

    18、1+2, #0ffhmov LEDBuf1+3, #0ffhmov LEDBuf1+4, #0ffhmov LEDBuf1+5, #0ffhmov r4,#6MLoop:call DisplayLEDcall TestKey ;有键入?jz MLoop ;无键入, 继续显示call GetKey ;读入键码jb 0e4h,commkey ;如果ACC.4为1,则为命令键,转到commkey处理numkey:mov r0,a ;保存数据acall ToKeyTable ; 键码保存在LEDBuf2(初始值30h指向的单元中 mov a,r0anl a, #0fh ;显示键码call ToLED

    19、;查找A的段码并把段码保存在A中mov r0,LEDBufmov r0,a ;段码保存在LEDBuf(初始值20h指向的单元中inc LEDBufinc LEDBuf2djnz r4,MLoopmov r4,#6mov LEDBuf,#020hmov LEDBuf2,#030hljmp MLoopcommkey: ;处理命令键cjne a,#13h,start ;如果按下的键不是EXEC,则转向程序开始call nextkey;=把dph、dpl压入堆栈子程序=nextkey:acall pickdatapush dplpush dphret ;dph与dpl弹出堆栈赋给PC;=子程序=; ;

    20、单片机内部RAM30h-33h单元中存储的是从键盘输入的地址,用于改变PC,执行相应的程序;pickdata:mov r0,#031h ;将30H、31H 单元中的低4 位数据赋给DPHacall pickonemov dph,amov r0,#033h ;将32H、33H 单元中的4 位数据赋给DPLacall pickonemov dpl,aret;=取相邻内存单元低4位子程序= ;取出r0 与r0-1所指向的单元中低4 位数据,并保存到A中,只取低4 位,键盘上输入的每位数据(0到;F最多只用到4位表示pickone:mov a,r0anl a,#0fhmov r1,adec r0mov

    21、 a,r0swap aanl a,#0f0horl a,r1ret/六位数码管轮流显示“8”字,从左到右共循环10次/ org 0200hmov r0,#4clr amov r3,#10 ;循环次数,可自行设置DisplayLED1: ;轮流显示mov r0, #LEDBuf1mov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop1:mov dptr, #OUTBITmov a, #0movx dptr, a ; 关所有八段管mov a, r0mov dptr, #OUTSEGmovx dptr, amov dptr, #OUTBITmov a,

    22、 r2movx dptr, a ; 显示一位八段管mov r6, #200call Delay ; 延迟值如果设定的太大的话,就会检测不到按键mov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loop1djnz r3, DisplayLED1acall InitLED ;重新从左边显示mov r4,#6mov LEDBuf,#020hmov LEDBuf2,#030hajmp MLoop/8255 的PA,PB,PC 口分别循环输出方波程序/ org 0300htestPort:mov dptr,#Ctrl_8255mov a,#80hmovx dptr

    23、,amov a,#55hmov r3,#20 ;循环次数,可自行设置testPortA:mov dptr,#PA_8255 ;PA 口movx dptr,ainc dptrmovx dptr,a ;PB 口inc dptrmovx dptr,a ;PC 口rr amov r6, #200 ;输出延时,可自行设置延时时间acall Delaydjnz r3, testPortAajmp MLoopend附1.3:Keil的使用步骤参考1、点击”ProjectNew Project”,新建一个工程文件,在Creat New Project窗口中输入工程名。 图1.5 新建工程2、Creat New

    24、 Project窗口中,点击“确定”,然后出现如下窗口,选择芯片类型,本实验选用芯片为Intel公司的8051AH。 图 1.6 选择芯片3、点击“确定”后,在出现的如下窗口中选择“否”。 图1.7 是否添加Startup文件到工程中4、新建文件,File-New或直接点击快捷按钮Creat a New File ,然后编写程序。文件也可以在建立工程之前建立并编写。 图1.8 新建程序文件5、保存文件,注意文件名必须有后缀名,若是汇编程序后缀名为.asm,C程序为.c。 图1.9 保存文件6、把文件添加到建立的工程中,如下图,点击Project Workspace窗口中的Source Grou

    25、p1,单击鼠标右键,在弹出的菜单中选择“Add Files Group “Source Group 1” 图1.10 添加文件到工程7、找到程序文件保存的目录,在出现如下图所示的窗口中,单击“ADD”按钮。 图1.11 ADD Files to Group窗口8、按照下图1.12所示选择“Option for Target “Target 1”。 图1.12 选择“Option for Target “Target 1”9、单击选择Option for Target “Target 1”窗口中的Debug。设置.Use为“WA VE Emulator Driver”。 图1.13 Option

    26、 for Target “Target 1”窗口10、Project-Rebuild all target files,工程编译链接。注意:观察输出窗口,看是否有错误提示,若有错误,需修改程序中的错误,然后再编译链接直至没有错误提示。输出窗口11、下载程序到仿真系统,选择Debug-start/stop Debug Session。12、运行程序Debug-Go或按快捷键F5,若单步运行程序,可选择Debug-Step。提示:若需停止程序运行,选择Debug-Stop Running,然后再选择Debug-start/stop Debug Session实验二 A/D转换实验 (3学时实验预习

    27、要求:1.熟悉AD0809工作原理,熟悉单片机中断编程方法。2.写出设计性实验源程序。3.思考题:参考ADC0809转换电路图,ADC0809的控制引脚ALE、ENABLE、START怎样和单片机连接?叙述其原理。一、实验目的1.理解A/D转换的基本原理。2.掌握A/D转换芯片0809的性能及编程方法。3.掌握单片机系统中扩展A/D和8255的基本方法。4.掌握单片机外部中断编程方法。二、实验器材PC 机一台,Lab2000P 教学实验系统一台,导线数根三、实验内容1.验证性实验利用实验箱上的ADC0809做A/D转换实验,实验板上的电位器提供模拟量输入,验证程序将模拟量转换成二进制数字量,用

    28、8255的PA口输出到发光二极管显示(图2.4。2.设计性实验ADC0809芯片 A/D转换结束后会自动产生EOC信号,将EOC与CPU的外部中断相接,在验证实验基础上,用中断方式编程读回A/D结果。四、实验原理A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100us。本程序是用延时查询方式读入A/D转换结果。验证程序流程图如图2.4所示。 图2.1 ADC0809转换电路图2.2 ADC0809控制信号与单片机连接图2.3 8255A引脚图图2


    注意事项

    本文(《单片机原理及应用》实验指导书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开