- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-单片机系统设计指导书.doc
一、 单片机开发系统应用初步
——基本I/O口赋值
1. 内容提要:
a. KEIL C软件对程序进行编译调试及烧录软件的使用方法。
b. 单片机基本I/O口的驱动方式、特点等。
c. 汇编语句的基本用法;对基本I/O口的赋值方法;程序的具体流程等。
2.实验目的及要求:
a. 课前预习好编程的基本知识。程序的基本概念、*.asm、*.c、*.hex、*.uv2所表示的文件类型等。
b. 熟练掌握不同数据类型之间的相互转换,不同类型的数据在程序中的表示方法等。
c. 课前弄清楚单片机I/O口的基本驱动方式,理解何谓上拉及下拉方式,单片机驱动电流、灌入电流等概念。
d. 复习数码管的相关知识,弄清数码管需显示某个字符应如何对其进行控制等。
3.实验源程序及流程图:
ORG 0000H
AJMP MAIN
MAIN: MOV P0,#0FH
JMP MAIN
END
4.实验步骤:
a. 通过读程序,弄懂程序对哪个口进行赋初值,通过发光管亮或灭的情况反映出单片机输出数据的情况(注意区分数据的高低位)。
b. 通过KEIL C软件对以上程序进行编译,正确后生成*.HEX机器语言文件,随即打开烧录软件,将生成的*.HEX文件烧录到单片机芯片中,完成后点击运行按钮便可脱机运行编写好的程序。
c. 观察发光管亮灭情况,最终得出硬件的实际连接情况。
d. 修改程序中的输出数据,重复以上编译烧录步骤,再次观察LED发光情况是
否与数据对应。例:
ORG 0000H
AJMP MAIN
MAIN: MOV P0,#65H
JMP MAIN
END
e. 修改单片机输出数据的I/O口(如改为P2口输出),观察其余口是否能正确输出数据。例:
ORG 0000H
AJMP MAIN
MAIN: MOV P2,#0FH
JMP MAIN
END
5.发挥部分:
将I/O口通过8芯排线接至独立两位数码管处,通过I/O口赋值能使数码管显示出本人学号最后一位(注意数据高位统一用来控制数码管的a笔段,低位控制h笔段)。
6. 电路原理图:
提示:
1. 由于单片机芯片烧录时需用到P1口,故在烧录过程中P1.5、P1.6、P1.7口不应有导线连接,否则易引起实验台初始化失败等错误(烧录完成后可以进行连接)。
7.C语言编程:
#include AT89X51.H
void main(void)
{
while(1)
{
P0=0x0f;
}
}
二、基本控制语句应用
——简单广告牌霓虹灯设计
1. 内容提要:
a. 汇编语言控制语句应用。
b. 程序的循环、子程序调用、程序跳转等。
c. 单片机基本I/O口的驱动方式、特点等。
2.实验目的及要求:
a. 理解左移RL、右移RR概念。
b. 延时程序DELAY的具体执行过程、延时量控制等。
c. 掌握通过设置程序的跳转来实现程序循环的方法。
3.实验源程序及流程图:
ORG 0000H
AJMP MAIN
MAIN: MOV P0,#00H
MOV A,#01H
LOOP: MOV P0,A
RL A
JMP LOOP
END
4.实验步骤:
a. 读懂程序,分析程序中哪一句为控制语句,起到什么控制作用以及最终能实现何功能。
b. 运行程序,观察结果是否与程序一致,分析出现问题的原因所在。
c. 试着向源程序中加入延时语句,观察现象是否有所改变。
ORG 0000H
AJMP MAIN
MAIN: MOV P0,#00H
MOV A,#01H
LOOP: MOV P0,A
RL A
ACALL DELAY
JMP LOOP
;*****延时子程序******;
DELAY:MOV R2,#10H
LOOP1:MOV R1,#0FFH
LOOP2:DJNZ R1,LOOP2
DJNZ R2,LOOP1
RET
END
d. 适当修改延时量,使LED闪烁更为明显,易于肉眼观察。
e. 适当修改程序,使程序最终实现一只LED作流水状移动。
5.发挥部分:
能自左向右——自右向左——自左向右反复循环来控制一只发光管如反弹状移动。
6. 电路原理图:
7. C语言编程:
#include AT89X51.H
文档评论(0)