网站大量收购闲置独家精品文档,联系QQ:2885784924

2024单片机原理与应用实验报告.docx

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

单片机实验报告

学生姓名:

学号:

学院名称:信息工程学院

专业班级:自动化班

目录

实验一单片机I/O口应用实验01

实验二外部中断实验04

实验三定时/计数器实验06

实验四并行I/O接口8255应用11

实验五简单I/O口扩展实验14

实验六A/D转换实验17

实验七D/A转换实验24

实验八键盘显示控制器8279应用实验29

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证eq\o\ac(□,√)综合□设计□创新实验日期:实验成绩:

PAGE

PAGE1

实验一单片机I/O口应用实验

P3.3口输入P1口输出

一、实验目的

1、掌握单片机P3口、P1口简单使用。

2、学习延时程序的编写和使用。

二、实验内容

1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。

2、P1口做输出口,编写程序,使P1口接的8个发光二极管D0—D7按16进制加一的方式点亮发光二极管。

实验原理

1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准

双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。

2、延时子程序的延时计算。

对于延时的程序:

DELAY: ;延时501*R6us

MOV R7,#249 ;1个机器周期,1us

DJNZR7,$ ;2个机器周期,2*249us=498us

DJNZR6,DELAY ;2个机器周期,2us

最终延时1+(2*249+1)*R6=501*R6个周期=R6*501us。使用延时函数时,只需要在延时之前使用”MOVR6,#XXH”语句给R6赋初值(01H-FFH),再使用“LCALLDELAY”调用延时即可。

实验步骤

1、在preteus软件中完成电路仿真,在keil软件中完成程序编写并生成hex文件。

2、将生成的hex文件导入preteus仿真的单片机中,调试、运行程序

3、按键每拨动一次,观察D0~D7发光二极管是否按16进制方式加一点亮。

实验接线

见下图

实验程序

ORG0000H

CLRA ;A清零

LJMPMAIN ;跳到主函数

ORG 0100H ;主函数入口

MAIN:

JB P3.3,MAIN ;P3.3为1,按键未按下

MOV R6,#20 ;延时20次

LCALL DELAY ;10ms消抖

JB P3.3,MAIN ;再次判断按键是否按下

JNB P3.3,$ ;等待按键松开

MOVP1,A ;A送给P1

INCA ;A中的值加1

LJMPMAIN ;循环

DELAY: ;延时501*R6us

MOV R7,#249 ;1us

DJNZR7,$ ;2*R7us=498us

DJNZR6,DELAY ;2us

RET

END

七、实验现象、结果分析

1、实验现象:

按下调试按钮,我们发现D0-D7全亮。接着每按下一次接在P3.3口的按键(给P3.3一个脉冲),P1口所接的发光二极管按16进制加一的方式点亮发光二极管(从00H到FFH)。

2、结果分析:

此次实验中用到I/O口,P1口作为输出,内部具有上拉电阻,初始时,未给P1送数据,P1全为高电平,故D0-D7全点亮。P3口作为输入,外接一个按键,每检测到按键按下再松开一次,把累加器A的数据送给P1,再加1。

程序从0000H开始,首先给累加器A清零,然后跳转到0100H(主程序入口)。

在主程序中首先检测P3.3是否变成低电平(P3.3口是否输入一个脉冲),未检测P3.3变成低电平时,停在此处继续检测;当检测到P3.3变成低电平,延时10ms消抖。然后再次检测P3.3是否真的变成低电平,当P3.3不是真的变成低电平时,返回到最初检测的地方;当P3.3真的变成低电平,等待按键松开(P3.3再次变成高电平)。按键松开后,将A中的数据送给P1口,然后A加1。最后循环。

本次实验使用的延时函数如下:

DELAY: ;延时501*R6us

MOV R7,#249

文档评论(0)

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

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

1亿VIP精品文档

相关文档