2012级单片机实验指导书_第1页
2012级单片机实验指导书_第2页
2012级单片机实验指导书_第3页
2012级单片机实验指导书_第4页
2012级单片机实验指导书_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

一、基本控制语句应用——简单广告牌霓虹灯设计1.实验目的:a.理解左移RL、右移RR指令的功能。b.延时程序DELAY的具体执行过程、延时量控制等。c.掌握通过设置程序的跳转来实现程序循环的方法。2.实验设备使用:计算机一台、单片机实验箱一套、KeliC软件一套。开始P0及累加器A初始化化开始P0及累加器A初始化化A内容赋予P0A内容左移跳转至LOOP结束(1)源程序及流程图:ORG0000HAJMPMAINORG0030HMAIN:MOVP0,#00HMOVA,#01HLOOP:MOVP0,ARLAJMPLOOPEND(2)电路原理图:4.实验内容:a.编写一程序,可实现数据左移并通过I/O口输出显示。b.加入延时程序,观察实验现象是否有所变化。c.实现左移及右移的循环输出。d.实现16盏LED的移位显示。5.实验步骤:(1)基本步骤:a.读懂程序,分析程序中哪一句为控制语句,起到什么控制作用以及最终实现何功能。b.运行程序,观察结果是否与程序相符,如不相符请分析出现问题的原因所在。c.试着向源程序中加入延时语句,观察现象是否有所改变。ORG0000HAJMPMAINORG0030HMAIN:MOVP0,#00HMOVA,#01HLOOP:MOVP0,ARLAACALLDELAYJMPLOOP;*****延时子程序******;DELAY:MOVR2,#10HLOOP1:MOVR1,#0FFHLOOP2:DJNZR1,LOOP2DJNZR2,LOOP1RETENDd.适当修改延时量,使LED闪烁更为明显,易于肉眼观察。e.适当修改程序,使程序最终实现一只LED作流水状移动。(2)发挥部分:①能自左向右——自右向左——自左向右反复循环来控制一只发光管如反弹状移动。②能通过两组I/O口组合实现16只LED的流水灯效果。6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。7.实验预习思考题:a.汇编语言控制语句应用。b.程序的循环、子程序调用、程序跳转等。c.单片机基本I/O口的驱动方式、特点等。d.读懂以下C语言程序:#include<AT89X51.H>unsignedchari,c,d,temp=0xfe;voiddelay(void){unsignedchara,b;for(a=0;a<255;a++){for(b=0;b<200;b++);}}voidmain(void){while(1){ for(i=0;i<8;i++){c=temp<<i;d=temp>>(8-i);P0=c|d;delay();}}}二、单片机I/O口输入——独立按键识别1.实验目的:a.掌握JB、CPL语句的具体使用方法。b.延时程序的具体执行过程、延时量控制等。c.掌握通过设置程序的跳转来执行相应语句的方法。d.体会按键抖动对单片机系统所造成的影响,以及如何通过软件延时去抖动方法来消除按键抖动。2.实验设备使用:计算机一台、单片机实验箱一台、KeliC软件一套。开始P0及累加器A初始化化开始P0及累加器A初始化化A内容赋予P0判断是否有键按下结束对A取反NY(1)源程序及流程图:ORG0000HAJMPMAINORG0030H;*****主程序*****;MAIN:MOVP0,#0FFHMOVA,#0FFHWAIT:MOVP0,AJBP1.0,WAITCPLAJMPWAITEND(2)电路原理图:4.实验内容:a.编写一程序,实现P1.0口作输入,同时输出内容随P1.0口状态变化而变化。b.加入按键去抖动程序,观察实验结果与之前有何不同。c.实现按键复用功能。5.实验步骤:(1)基本步骤:a.读懂并理解程序,根据程序定义,将P1.0端口用单芯导线连接至单片机芯片下方的独立式键盘中(平时按键抬起时为高电平,按下按键时为低电平),将P0口通过8芯排线连接至8路发光管中。b.运行以上程序,同时反复按下连接至P1.0口的轻触开关,观察LED发光情况。(2)发挥部分:①由于按键抖动,使LED的亮灭情况无法通过按键准确控制,试着通过前面一节的实验,在程序适当的位置加入延时程序,实现软件去抖动。实现按键复用功能,即短按按键实现LED亮灭控制;长按按键(如按下按键时间大于1秒时)进入LED流水灯状态(可只需流动一遍便结束,然后再次等待按键动作)。6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。7.实验预习思考题:a.独立式按键的连接。b.汇编语句对按键是否按下的具体判断、按键按下后所执行的跳转等。c.按键抖动对单片机所造成的影响以及如何消除抖动对单片机在执行程序上所产生的影响。d.读懂以下C语言程序:#include<AT89X51.H>sbitkey=P1^0;unsignedchara=0;voidmain(void){while(1){P0=a;if(key==0){a=~a;}}}三、外部中断应用——按键计数器1.实验目的:a.理解中断服务程序的入口地址并将其熟记。b.掌握中断控制字TCON、IE、IP的具体含义及正确定义等。c.掌握中断服务程序的具体执行过程。d.体会按键抖动对单片机系统所造成的影响及如何消除按键抖动。2.实验设备使用:计算机一台、单片机实验箱一台、KeliC软件一套。开始外中断及数据初始化化开始外中断及数据初始化化死循环判断是否有中断结束对A累加计数NY(1)源程序及流程图:ORG0000HAJMPMAINORG0003HAJMPDEALORG0030HMAIN:SETBEASETBEX0SETBIT0MOVA,#00HMOVP0,#0FFHWAIT:SJMPWAITDEAL:INCACPLAMOVP0,ACPLARETIEND(2)电路原理图:4.实验内容:a.编写一程序,可实现按键执行外中断程序。b.加入延时程序,避免中断的频繁执行。c.实现计数值连加功能。5.实验步骤:(1)基本步骤:a.阅读并理解程序,理解程序第三行的“ORG0003H”及“MAIN”程序中初始化部分的具体含义。b.将单片机外中断(P3.2/INT0)用单芯导线连接至独立式按键中,P0口通过8芯排线接至LED。c.运行程序,通过反复按下独立式按键,观察LED显示结果。(2)发挥部分:①通过以上实验结果得出:由于按键抖动,导致P3.2/INT0口频繁出现高低变化的电平,致使单片机多次执行中断服务程序。能否在程序的适当部分加入延时程序,成功解决按键抖动问题?②如何实现计数值连加功能(即按下按键不放,计数值不断自动累加)?6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。7.实验预习思考题:a.单片机中断系统基本功能、中断控制字定义以及外中断触发方式等。b.中断服务程序入口地址、中断断点及中断返回。c.按键抖动对中断所造成的影响。d.读懂以下C语言程序:#include<AT89X51.H>unsignedchara=0;voidint0(void)interrupt0using0{a++;a=~a;P0=a;a=~a;}voidmain(void){EA=1;EX0=1;IT0=1;while(1);}四、8*8LED点阵显示基础1.实验目的:a.掌握LED8*8与单片机的连接方法。b.掌握段代码表的推算及变址寻址的具体含义。c.掌握判断语句的具体用法。2.实验设备使用:计算机一台、单片机实验箱一台、KeliC软件一套。3.实验基本原理:(1)源程序及流程图:ORG0000HAJMPMAINORG0030HMAIN:MOVR0,#00H;列地址MOVR1,#0FEH;行选择MOVR3,#00H;按键次数的计数MOVR2,#08H;显示一个数的循环次数MOVR5,#00H;行地址MOVDPTR,#DISPBIT;字型首地址LOOP:MOVR0,#00HMOVR1,#0FEHMOVR2,#08HJBP3.2,LOOP1ACALLDELAYJBP3.2,LOOP1INCR3JNBP3.2,$CJNER3,#10,NEXTMOVR3,#00HNEXT:MOVA,R3 ;每一行是8个字节,所以显示下一行的数乘8是让地址移到一下开始的位置MOVB,#8;MULABMOVR5,ALOOP1:MOVA,R5ADDA,R0MOVCA,@A+DPTRMOVP1,AMOVP2,R1MOVA,R1RLAMOVR1,AACALLDELAYINCR0DJNZR2,LOOP1SJMPLOOPDELAY:MOVR6,#10DLP1:MOVR7,#50DLP2:NOPNOPDJNZR7,DLP2DJNZR6,DLP1RETDISPBIT:DB0FFH,0C3H,0BDH,0BDH,0BDH,0BDH,0C3H,0FFH;0DB0FFH,0E7H,0E7H,0E7H,0E7H,0E7H,0E7H,0FFH;1DB0FFH,81H,0BFH,0BFH,81H,0FDH,0FDH,81H;2DB0FFH,81H,0BFH,0BFH,81H,0BFH,0BFH,81H;3DB0FFH,0EDH,0EDH,0EDH,081H,0EFH,0EFH,0EFH;4DB0FFH,0C3H,0FBH,0C3H,0DFH,0DFH,0C3H,0FFH;5DB0FFH,0C3H,0FBH,0C3H,0DBH,0DBH,0C3H,0FFH;6DB0FFH,0C3H,0DFH,0DFH,0DFH,0DFH,0DFH,0FFH;7DB0FFH,0C3H,0DBH,0DBH,0C3H,0DBH,0DBH,0C3H;8DB0FFH,0C3H,0DBH,0DBH,0C3H,0DFH,0DFH,0DFH;9END(2)电路原理图:P1接到C3区的LD_1-LD-8P2接到C3区的LD_A-LD_H4.实验内容:a.编写一程序,可实现按键按下次数的显示。b.加入延时程序,消除按键抖动。c.实现0~9计数加1计数。5.实验步骤:(1)基本步骤:(2)发挥部分:①使程序实现0~9计数减1计数,即按下按键时能从0~9显示。6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。五、单片机定时/计数器——秒脉冲定时器1.实验目的:a.理解中断服务程序的入口地址及熟记各中断服务程序入口地址。b.掌握定时/计数控制字TMOD、TCON的具体含义及正确定义等。c.掌握不同工作方式下定时时间初值的具体算法。2.实验设备使用:计算机一台、单片机实验箱一台、KeliC软件一套。3.实验基本原理:开始系统初始化开始系统初始化进入死循环有无定时中断请求结束进入中断重装值并对P1.0取反NYORG0000HLJMPMAINORG000BHLJMPINTT0ORG0030HMAIN:MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBEASETBET0SETBTR0SJMP$INTT0:MOVTL0,#0B0HMOVTH0,#3CHCPLP1.0RETIEND(2)电路原理图:4.实验内容:a.编写一程序,通过启动定时/计数器可实现P1.0口输出精确稳定的脉冲信号。b.改变定时器初值并通过软件计数方法精确得到1秒定时。c.加入数码管显示,实现秒个位指示功能。d.加入判断语句,实现LED计数值控制。5.实验步骤:(1)基本步骤:a.根据程序定义将P1.0口通过单芯排线连接至LED中。b.运行以上程序,观察所连接LED的闪烁情况。(2)发挥部分:①精确定义一秒钟时间,并结合前面学过的知识,能通过数码管显示出秒钟的个位信息(注意秒钟个位为十进制,即0~9)(结合实验五电路图连接)。②控制一LED,要求当秒个位内容小于3时点亮,大于等于时熄灭。6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。7.实验预习思考题:a.定时/计数器控制字定义。b.中断服务程序入口地址、中断断点及中断返回。c.单片机定时时长计算方法、间接定时获取长时间定时方法。六、单片机串行口应用1.实验目的:a.掌握单片机串行口收发数据的全过程。b.掌握串行口控制寄存器SCON的具体定义;数据发送过程中中断请求标志位的相应变化;欲发送的数据必须先送入缓冲区等。c.掌握74LS164芯片的工作原理、连接方法等。2.实验设备使用:计算机一台、单片机实验箱一台、KeliC软件一套。3.实验基本原理:(1)源程序:ORG0000HAJMPMAINORG0030HMAIN:MOVSCON,#00HMOVA,#0FEHCLRTILOOP1:MOVSBUF,ALOOP:JBCTI,NEXTSJMPLOOPNEXT:RRAACALLDELAYSJMPLOOP1DELAY:MOVR6,#200DLP1:MOVR7,#200DLP2:NOPNOPDJNZR7,DLP2DJNZR6,DLP1RETEND(2)电路原理图:利用C5的74LS164与8个LED相连接,其中74LS164的/CLR接C1的VCC,74LS164的CLK接TXD,74LS164的RXD接DINA。4.实验内容:a.编写一程序,实现单片机串行口输出串行信号,经串并转换驱动数码管显示。b.实现两位秒信息显示。c.加入判断语句实现满足特定条件时执行相应操作。5.实验步骤:(1)基本步骤:(2)发挥部分:6.实验报告要求:a.记录实验每一步骤的具体过程及实验现象。b.叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c.记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d.总结本次实验知识点及编程调试心得体会。7.实验预习思考题:a.串行口基本定义;RXD、TXD信号实现串行数据发送。b.串行口控制寄存器SCON具体定义;中断请求的标志位等。c.74LS164芯片串行数据转换为并行数据的硬件连接。七、单片机系统设计——秒表设计1.实验目的及要求:a.能够系统性地总结掌握的知识,将单元模块知识有机的结合在一起。b.能够充分协调好硬件与软件之间的相互结合,合理设计硬件电路。c.掌握单片机汇编语言判断语句、分支语句以及子程序调用等编程知识。2.实验基本原理与功能:利用定时计数器实现1秒定时,通过LED8*8显示0-9,实现0-9的倒计时。3.实验主要技术指标:(1)实现正确稳定地显示秒的倒计时。(2)通过按键分别暂停、开始、清零。4.实验设计、调试:(1)根据动态扫描电路图将电路正确连接。(2)根据动态扫描原理编写正确的控制程序。(3)程序运行后如出现闪烁问题应对程序加以调试并解决该问题。5.设计举例:设计并调试一秒表,分别满足以下设计要求:(1)实现正确稳定秒计时,同时数码管应无闪烁问题。(2)通过按键分别实现秒表的暂停、停止、开始、清零,方便用户对时间的校准。6.设计性实验任务或综合性实验任务:(1)参考代码:ORG0000HAJMPMAINORG0030HMAIN:MOVR0,#00HMOVR1,#0FEHMOVR3,#00HMOVR2,#08HMOVR4,#100MOVDPTR,#DISPBITLOOP:MOVA,R3MOVB,#8MULABMOVR5,AMOVR4,#50LOOP2:MOVR0,#00HMOVR1,#0FEHMOVR2,#08HLOOP1:MOVA,R5ADDA,R0MO

温馨提示

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

评论

0/150

提交评论