单片机应用实验指导书-实验2.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机应用实验指导书-实验2

2- PAGE 5 实验二 指示灯循环控制基础实验 实验名称:指示灯循环控制基础实验 学时安排:2学时 实验类别:综合性 实验要求:必做  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的和任务 1、掌握80C51单片机程序的调试与下载方法。 2、掌握80C51单片机并口的特性及程序控制方法。 二、实验原理简介 80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。 ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。本课程的全部实验???用到MCU1,其P0口用作普通I/O口,为提高I/O口的利用率,除驱动8个发光二极管外,P0口还连接有数码管、点阵管、字符液晶、行列键盘等设备。 图2-1为P0口控制8个发光管的电路结构,P0口某口线输出低电平时,相应的发光管点亮,口线输出高电平时发光管熄灭。在做发光管相关实验时,应将实验箱上LED101~LED108发光管右上侧的拨码开关JUMP2拨到ON一侧,使发光管限流电阻公共端连接到MCU1电源正极(即Vcc端)。 图2-1 发光管控制电路 三、实验设备 1、PC机一台; 2、ZSC-1单片机实验箱一台。 四、实验内容和步骤 1、编写一段程序,用P0口作为控制端口,使发光管LED101~LED108轮流点亮。  = 1 \* GB3 ① 在Keil中编写源程序。汇编语言参考程序如下: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV A,#0FEH ;准备点亮第一只发光管 NEXT: MOV P0,A ACALL DELAY ;软件延时 RL A ;准备点亮下一只发光管 SJMP NEXT ; 延时子程序DELAY DELAY: MOV R2,#5 DELAY2: MOV R3,#100 DELAY3: MOV R4,#100 DJNZ R4,$ DJNZ R3,DELAY3 DJNZ R2,DELAY2 RET END  = 2 \* GB3 ② 在Keil中创建工程,加入源程序文件,设置选项,进行汇编/编译、连接、转换处理,生成HEX格式的单片机程序文件。  = 3 \* GB3 ③ 用串行电缆连接实验箱和PC机的RS232串口,运行PC机上的STC_ISP_V483.exe,进行程序下载。具体步骤: a.在STC_ISP_V483主界面选择MCU型号为STC12C5A60S2,打开 = 2 \* GB3 ②中生成的HEX格式程序文件,选择COM1串口,设置最高波特率为38400bps; b.将实验箱电源电路中的总电源开关拨到左侧位置,使主电源接通,将MCU1电源开关拨到下方位置,使1#单片机断电; C.点击STC_ISP_V483主界面中的下载按钮,约等待5s,待系统提示“请给MCU上电”时再将MCU1电源开关拨到上方位置,使1#单片机通电,开始下载程序,数秒后下载结束,写入单片机Flash存储器中的程序自动开始运行。  = 4 \* GB3 ④ 观察LED显示效果,若与要求的效果不同,或者想试验其它效果,就需要修改源程序,重新进行汇编/编译、连接、转换处理,生成最新HEX文件,再按 = 3 \* GB3 ③中介绍的步骤下载和运行最新程序。 2、用C语言编写发光管控制程序,实现相同功能。 实验步骤同上,参考程序如下: #include reg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char void delay_ms(uint); uchar LedCtrl; main() { LedCtrl=0xfe; while(1) { P0=LedCtrl; delay_ms(1000); LedCtrl=_crol_(LedCtrl,1); //_crol_函数的功能? } } void delay_ms(uint x)

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档