MCS-51单片机系统设计指导书

上传人:博****1 文档编号:499796593 上传时间:2022-10-23 格式:DOC 页数:35 大小:547.50KB
返回 下载 相关 举报
MCS-51单片机系统设计指导书_第1页
第1页 / 共35页
MCS-51单片机系统设计指导书_第2页
第2页 / 共35页
MCS-51单片机系统设计指导书_第3页
第3页 / 共35页
MCS-51单片机系统设计指导书_第4页
第4页 / 共35页
MCS-51单片机系统设计指导书_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《MCS-51单片机系统设计指导书》由会员分享,可在线阅读,更多相关《MCS-51单片机系统设计指导书(35页珍藏版)》请在金锄头文库上搜索。

1、MCS-51单片机系统设计指导书一、 单片机开发系统应用初步 基本I/O口赋值1. 内容提要:a KEIL C软件对程序进行编译调试及烧录软件的使用方法。b 单片机基本I/O口的驱动方式、特点等。c 汇编语句的基本用法;对基本I/O口的赋值方法;程序的具体流程等。2实验目的及要求:a 课前预习好编程的基本知识。程序的基本概念、*.asm、*.c、*.hex、*.uv2所表示的文件类型等。b 熟练掌握不同数据类型之间的相互转换,不同类型的数据在程序中的表示方法等。c 课前弄清楚单片机I/O口的基本驱动方式,理解何谓上拉及下拉方式,单片机驱动电流、灌入电流等概念。d 复习数码管的相关知识,弄清数码

2、管需显示某个字符应如何对其进行控制等。对P0口赋值跳转至主程序开始结束3实验源程序及流程图: ORG 0000H AJMP MAINMAIN: MOV P0,#0FH JMP MAIN END4实验步骤:a. 通过读程序,弄懂程序对哪个口进行赋初值,通过发光管亮或灭的情况反映出单片机输出数据的情况(注意区分数据的高低位)。b. 通过KEIL C软件对以上程序进行编译,正确后生成*.HEX机器语言文件,随即打开烧录软件,将生成的*.HEX文件烧录到单片机芯片中,完成后点击运行按钮便可脱机运行编写好的程序。c. 观察发光管亮灭情况,最终得出硬件的实际连接情况。d. 修改程序中的输出数据,重复以上编

3、译烧录步骤,再次观察LED发光情况是否与数据对应。例: ORG 0000H AJMP MAINMAIN: MOV P0,#65H JMP MAIN ENDe. 修改单片机输出数据的I/O口(如改为P2口输出),观察其余口是否能正确输出数据。例: ORG 0000H AJMP MAINMAIN: MOV P2,#0FH JMP MAIN END5发挥部分:将I/O口通过8芯排线接至独立两位数码管处,通过I/O口赋值能使数码管显示出本人学号最后一位(注意数据高位统一用来控制数码管的a笔段,低位控制h笔段)。6. 电路原理图:提示:1. 由于单片机芯片烧录时需用到P1口,故在烧录过程中P1.5、P1

4、.6、P1.7口不应有导线连接,否则易引起实验台初始化失败等错误(烧录完成后可以进行连接)。7C语言编程:#include void main(void) while(1) P0=0x0f; 二、基本控制语句应用 简单广告牌霓虹灯设计1. 内容提要:a 汇编语言控制语句应用。b 程序的循环、子程序调用、程序跳转等。c 单片机基本I/O口的驱动方式、特点等。2实验目的及要求:a 理解左移RL、右移RR概念。b 延时程序DELAY的具体执行过程、延时量控制等。c 掌握通过设置程序的跳转来实现程序循环的方法。开始P0及累加器A初始化化A内容赋予P0A内容左移跳转至LOOP结束3实验源程序及流程图:O

5、RG 0000H AJMP MAINMAIN: MOV P0,#00H MOV A,#01HLOOP: MOV P0,A RL A JMP LOOP END4实验步骤:a. 读懂程序,分析程序中哪一句为控制语句,起到什么控制作用以及最终能实现何功能。b. 运行程序,观察结果是否与程序一致,分析出现问题的原因所在。c. 试着向源程序中加入延时语句,观察现象是否有所改变。 ORG 0000H AJMP MAINMAIN: MOV P0,#00H MOV A,#01HLOOP: MOV P0,A RL A ACALL DELAY JMP LOOP;*延时子程序*;DELAY:MOV R2,#10HL

6、OOP1:MOV R1,#0FFHLOOP2:DJNZ R1,LOOP2 DJNZ R2,LOOP1 RET ENDd. 适当修改延时量,使LED闪烁更为明显,易于肉眼观察。e. 适当修改程序,使程序最终实现一只LED作流水状移动。5发挥部分:能自左向右自右向左自左向右反复循环来控制一只发光管如反弹状移动。6. 电路原理图:7. C语言编程: #include unsigned char i,c,d,temp=0xfe;void delay(void) unsigned char a,b; for(a=0;a255;a+) for(b=0;b200;b+); void main(void) w

7、hile(1) for(i=0;i8;i+) c=temp(8-i); P0=c|d; delay(); 三、单片机I/O口输入 独立按键识别1. 内容提要:a 独立式按键的连接。b 汇编语句对按键的是否按下的具体判断、按键按下后所执行的跳转等。c 按键抖动对单片机所造成的影响以及如何消除抖动对单片机在执行程序上的影响。2实验目的及要求:a 掌握JB、CPL语句的具体使用方法。b 延时程序的具体执行过程、延时量控制等。c 掌握通过设置程序的跳转来执行相应语句的方法。开始P0及累加器A初始化化A内容赋予P0判断是否有键按下结束对A取反NYd 体会按键抖动对单片机系统所造成的影响,以及如何通过软件

8、延时去抖动方法来消除按键抖动。3实验源程序及流程图:ORG 0000H AJMP MAIN;*主程序*;MAIN: MOV P0,#0FFH MOV A,#0FFHWAIT: MOV P0,A JB P3.0,WAIT CPL A JMP WAIT END4实验步骤:a. 运行以上程序,同时反复按下连接至P3.0口的独立式轻触开关(平时按键抬起时为高电平,按下按键时为低电平),观察LED发光情况。5发挥部分:由于按键抖动,使LED的亮灭情况无法通过按键准确控制,试着通过前面一节的实验,在程序适当的位置加入延时程序,实现软件去抖动。6. 电路原理图:(K2应接在P3.0)7. C语言编程:#in

9、clude sbit key=P30;unsigned char a=0;void main(void) while(1) P0=a; if(key=0) a=a; 四、外部中断应用 按键计数器1. 内容提要:a 单片机中断系统基本功能、中断控制字定义以及外中断触发方式等。b 中断服务程序入口地址、中断断点及中断返回。c 按键抖动对中断所造成的影响。2实验目的及要求:a 理解中断服务程序的入口地址及熟记各中断服务程序入口地址。b 掌握中断控制字TCON、IE、IP的具体含义及正确定义等。c 掌握中断服务程序的具体执行过程。d 体会按键抖动对单片机系统所造成的影响及如何消除按键抖动。开始外中断及

10、数据初始化化死循环判断是否有中断结束对A累加计数NY3实验源程序及流程图:ORG 0000H AJMP MAIN ORG 0003H AJMP DEALMAIN:SETB EA SETB EX0 SETB IT0 MOV A,#00H MOV P0,#0FFHWAIT:SJMP WAITDEAL:INC A CPL A MOV P0,A CPL A RETI END4实验步骤:a. 阅读并理解程序,理解程序第三行的“ORG 0003H”及“MAIN”程序中初始化部分的具体含义。b. 运行程序,通过反复按下P3.2独立式按键(INT0),观察LED显示结果。5发挥部分:通过以上实验结果得出:由于

11、按键抖动,导致P3.2/INT0口频繁出现高低变化的电平,致使单片机多次执行中断服务程序。能否在程序的适当部分加入延时程序并更改触发方式,成功解决按键抖动问题?6. 电路原理图:7. C语言编程:#include unsigned char a=0;void int0(void) interrupt 0 using 0 a+;a=a;P0=a;a=a;void main(void) EA=1;EX0=1;IT0=1; while(1);五、数码管显示基础 数显按键计数器1. 内容提要:a 数码管内部结构、引脚定义及驱动。b 数码管段代码表具体含义。c 变址寻址在单片机查表中的意义所在。2实验目的及要求:a 掌握数码管与单片机的连接方法。b 掌握段代码表的推算及变址寻址的具体含义。c 掌握判断语句的具体用法。开始外中断及数据初始化化循环显示R0内容判断是否有中断结束对R0累加计数NY3实验源程序及流程图: ORG 0000H AJMP MAIN ORG 0003H AJMP DEAL ORG 0030HMAIN: SETB EA SETB EX0 SETB IT0 MOV P0,#00H MOV R0,#00H MOV DPTR,#TABDISPLAY:MOV A,R0 MOVC A,A+DPTR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号