如何写论文?写好论文?免费论文网提供各类免费论文写作素材!
当前位置:免费论文网 > 工作报告 > 报告写作指导 > 单片机基于at89s52实现从00~99循环的实训报告5000字

单片机基于at89s52实现从00~99循环的实训报告5000字

来源:免费论文网 | 时间:2016-11-28 10:19:46 | 移动端:单片机基于at89s52实现从00~99循环的实训报告5000字

篇一:单片机实验报告

单片微型计算机原理及应用 实验报告

学院名称 专业名称学生姓名

学生学号 任课教师

实验报告成绩

教务处 制 2015年 1 月 13 日

1. 单片机实验平台简介

实验采用风标电子微控制器仿真实验实训箱,包含丰富的硬件资源与接口电路、多种处理器模块。系统采用“核心板+底板”双层结构,通过更换不同型号核心板,可学习不同系列的单片机及CPLD等。此实验系统针对快速掌握运用单片机和CPLD而开发的,含大量的硬件资源,能不同程度地满足现代电子技术实验的要求。同时,本系统丰富的功能单元,能够做出超出大纲要求的的综合实验。

2.Keil uVision 4软件简介

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,在功能上、结构性、可读性、可维护性上有明显的优势。提供了包括C编译器、宏汇编、连接器、库管理和一个强大的仿真调试器。使用C语言编程,Keil几乎就是必选,其方便易用、强大的软件仿真调试工具令人事半功倍。

实验一

I/O开关量输入实验

[实验目的]

熟悉单片机的最小系统,了解单片机I/O的结构;掌握按键键值的读入和处理;学习简单程序的编写。

[实验内容]

[实验要求]

1、利用单片机,按键和发光二极管,构成一个LED灯控制电路;

2、上电时, 点亮LED, 按下K1时, LED向左移一位 ,按下K2时, LED向右移一位。

[实验步骤]

1、打开Uv4 IDE环境,选择菜单Project的下拉菜单Open Project选项, 加载后缀名为uvproj的工程文件。

2、选择菜单Project的下拉菜单Options for Target选项。在弹出的窗口中,选择output选项,在Creat HEX File的勾选项中,勾选。这样才能生成HEX文件。 3、选择菜单Project的下拉菜单Build target选项,如无错误或特别警告,编译链接完成后就会产生相应工程的HEX文件了。

[程序及注释]

#include <reg52.h> #include <intrins.h>

#define uchar unsigned char //数据类型宏定义 #define uint unsigned int

/**********单片机IO口引脚定义********************************************/ #define LEDP0 sbit K1 = P1^0; sbit K2 = P1^1;

/**********函数定义******************************************************/ uchar scan_key();

void proc_key(uchar key_v); void delayms(uchar ms);

/**********主函数********************************************************/ void main(void) { uchar key_s,key_v; key_v = 0x03; //初始化IO口 LED = 0xfe; while(1) {key_s = scan_key();if(key_s != key_v) //判断按键是否按下{ delayms(10); //延时消抖 key_s = scan_key(); if(key_s != key_v) {key_v = key_s; proc_key(key_v);}} } }

/**********键盘扫描函数**************************************************/ uchar scan_key() { uchar key_s; key_s = 0x00; key_s |= K2; key_s <<= 1; key_s |= K1; return key_s; //返回按键号 }

/**********键盘处理函数**************************************************/ void proc_key(uchar key_v) { if((key_v & 0x01) == 0) {LED = _cror_(LED,1); //循环右移一位 }

else if((key_v & 0x02) == 0) {LED = _crol_(LED, 1); //循环左移一位 } }

/***********延时函数*****************************************************/ void delayms(uchar ms) // 延时子程序 { uchar i; while(ms--) {for(i = 0; i < 120; i++); } }

[实验现象及结果]

上电时, 点亮P00的LE,当按下K1时, LED向右移一位,按下K2时, LED向左移一位.

实验二 I/O驱动实验

[实验目的]

了解I/O口的电气特性和驱动能力。掌握程序编写的方法。了解LED电路中加入限

流电阻的原因。

[实验内容]

[实验要求]

利用单片机及8个发光二极管等器件,构成一个流水灯单片机系统。

[实验步骤]

1、打开Uv4 IDE环境,选择菜单Project的下拉菜单Open Project选项, 加载后缀名为uvproj的工程文件。

篇二:单片机实训报告

单片机实训报告

题目:单片机上课时钟控制器

组员:荣彬彬牟斌李会

班级: 2010级电气四班

指导老师:石梅香

一:实验器材

AT89S52单片机 外接12MHz晶振 2个数码管 蜂鸣器7407芯片 电容 电阻等元件

二:实验目的

做一个计时时钟,了解设计要求及设计需要的技术,通过这次课程实验,一方面使我们课堂学的单片机知识进一步巩固和验证,另一方面也增加了我们的感性认识,有助于加深我们对所学知识的理解,同时也锻炼了我们实际动手能力和分析问题能力。

三:课程设计任务

利用AT89S52单片机定时器,中断,串行口,内存等内部资源,两位LED 4段数码管,实现电子秒表功能的多样化。

四:实验设计要求

1 要求能够实现上下课时间控制器显示功能

2能产生12MHz的振荡信号供单片机使用

3四位LED显示:动态方式扫描显示,要求无闪烁,能正确显示程序送显的数据4能正确显示秒表的进制

5外扩按键,能够正确识别键值,当按下时,能够正确调试LED显示,能够秒表功能。

五:实验原理

本设计为电子计时器综合系统,主控芯片采用AT89S52单片机。配合软件延时实现秒的计时。本系统设计采用此种软件控制方法来实现计时,通过定时器定时中断,使时间缓存单元数据加一,提供系统时间。同时可以通过键盘对

时间缓存单元数据进行修改,以达到修改时间的目的。单片机内的数据通过并行I/O接口输入输出。并驱动四位LED数码管,动态显示数据。晶振及复位电路为单片机提供工作脉冲及复位信号。

在单片机应用系统中,键盘和显示往往需要同时使用,为节省I/O口线,可将键盘和显示电路做在一起,构成实用的键盘、显示电路。图一中,是采用8155的I/O口线。8155芯片不仅具有两个8位的I/O端口(A口和B口)和一个6位的I/O端口(C口),而且还可以提供256B的静态RAM存储器和一个14 位的定时/计数器,它和单片机的接口非常简单。由于键盘与显示共用一个接口电路,因此,在软件设计中要综合考虑键盘查询与动态显示,编程比较复杂。硬件电路图如下图(一)所示

六:硬件设计

1 芯片介绍

AT89S52单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。它与通用80C51系列单片机的指令系统和引脚兼容。片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。

AT89S52具有如下特性:

(1)片内程序存储器含有4KB的Flash存储器,允许在线编程,檫写周期可达1000次;

(2)片内数据存储器内含128字节的RAM;

(3)I/O口具有32根可编程I/O线;

(4)具有两个16位I/O线;

(5)中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;

(6)串行口是一个全双工的串行通信口,具有两个数据指针DPTR0和DPTR1,低功耗节电模式有节电模式和掉电模式,包含3级程序锁定位;

(7)AT89S52的电源电压为4.0-5.5V,AT89C51的电源电压为2.7-4.0V,振荡器频率0-33MHz(AT89S52),0-16MHz(AT89LS51;

(8)具有片内看门狗定时器,灵活的在线片内编程模式(字节和页编程模式);

(9)具有断电标志模式POF。

2 引脚功能

P0口——8位、开漏极、双向I/O口,P0口可作为通用I/O口,但必须外接上拉电阻;作为输出口,每个引脚课吸收8个TTL的灌电流。作为输入时,首先应将引脚置1,P0口也可用作外部程序存储器和数据存储器是的低八位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻,在Flash编程时,Po口接受代码数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻),P1口——8位、双向I/O口、内部含有行拉电阻,P1可作为普通I/O口。输出缓冲器可驱动4个TTL负载;用作输入时,先交引脚置1,有片内上拉电阻将其抬到高电平。P1口的引脚可由外部负载拉倒低电平,通过上拉电阻提供拉电流。在Flash并行, 编程和校验时,P1口可输入低字节地址,在串行编程和校验时,P1.0/MOSI,P1.6/OSI和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。I/O具有内部拉电阻的8位双向I/O。P2口用作输出口时,可驱动四个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。若负载为低电平,则通过内部上拉电阻向外输出电流。CPU访问外部16位地址的存储器时,P2口提供高8位的地址。当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器内容。在FLASH并行编程和校检时,P2口可输入高字节地址和某些控制信号。--P3口——局有内部上拉电阻8位双向口。P3口左忽出口时,输出缓冲器可吸收4个TTL的灌电流;用作输入口时,手先将引脚置1,有内部上拉电阻抬为高电平。若外部负载是低电平,则通过内部上拉电阻向外输出电流。 输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。

① P0口(P0.0 - P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。 ② P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或

输出电流)四个LSTTL负载。

③ P2口(P2.0 - P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。

④ P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。

图二 AT89s52单片机引脚图

3复位电路

复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键。通常单片机复位操作有上电复位、信号复位、运行监视复位,运行监视有程序运行监视和电源监视。手动复位要求接通电源后按键,单片机自动实现复位操作。瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作(图三所示)。所以本设计选用第二种上电复位与按键均有效的各单位电路。

篇三:单片机实验报告

单片机原理实验报告

学 年: ______________

学 期: ______________

专 业: 09电子信息工程

班 级: ______________

姓 名: ____Pred______

学 号: ______________

指导老师:___________

日期: 年月日

目录

contents

1. I/O输入、输出实验………………………………………………………………… 3

2. 数码管动态扫描显示实验……………….….……………………………………… 6

3. 键盘输入实验………………….……………………………………….…………… 9

4. 定时/计数器………………………………………………………………………… 12

5. 音频控制实验……………………………..………………………………………… 16

6. 串行口通信………………………………..………………………………………… 22

说明:1. 6个实验程序均在伟纳电子ME830单片机实验板上调试成功。Mcu是AT89S52。

2.音频控制实验源码来自网上,若想在晶振11.0592mhz上运行,只需更改输出频率表格的定时器初值即可。同时,由于程序占用233字节data,写入普通51mcu是运行不了的,这里我是用ICE52仿真器运行。

3.串行口通信实验中上位机使用伟纳电子的串口调试软件,可以到其官方网站下载。

4.由于本次实验旨在达到实验目的,程序本身存在很多不完善的地方,如:定时计数器实验中取位运算中耗费大量时间,导致显示过程出现闪烁现象。

5.电路原理图在prorel99se上画的,不能保证原理图的正确。(我还没学呢….)

实验一:I/O口输入/输出实验

1. 实验任务

流水灯单循环,P0口接八个共阳发光二极管,分别为D0、D1……D7。程序先点亮D0,延时一段时间(1秒钟),再顺序点亮D1……D7,然后又是D0。同时只能有一个灯亮。设晶振频率fosc=11.0592MHz,要求亮灯1秒后下一个灯点亮。

2. 实验原理图

3. 系统板上硬件连接

4. 程序设计内容

1) 先计算好定时器初值,并载入TH0,TL0

2) 等待定时器中断响应,响应后累次叠加到1s时,设置标志位

3) 检测标志位,点灭上一个灯,点亮点一个灯

4) 判断是否点亮第七个灯,是则下一个点亮第零个灯,否则跳过

5. 程序框图

6. C语言源程序

#include<reg52.h>

#define uchar unsigned char

#define LEDPORT P0

bit ledturn=0; //设置亮灯标志

char i=0;

uchar code ledlight[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //led亮起顺序 void main()

N

{

RCAP2H=0x4C;//定时器2 ,晶振11.0592MHz,单次定时50ms

RCAP2L=0x00;

ET2=1; //定时器2中断允许

EA=1;//中断允许

TR2=1; //开始计时

while(1) //进入死循环

{

if(ledturn)

{

ledturn=0;

LEDPORT=ledlight[i] ;

i++;

if(i==8)i=0;

}

}

}

timer2() interrupt 5 //定时器2终端服务程序

{

static uchar t;

TF2=0;//溢出清0

t++;

if(t==20)

{

t=0; //取消标志

ledturn=1;//设置亮灯标志

}

}

7. 数据分析

这里实现流水灯单循环的方法是,依次灭掉前一个灯和点亮后一个灯,再延时一会,不断循环,当点亮到D07时候,下一个是点亮D00。如此,就可以看到流水灯单循环的效果了。


单片机基于at89s52实现从00~99循环的实训报告5000字》由:免费论文网互联网用户整理提供;
链接地址:http://www.csmayi.cn/show/106373.html
转载请保留,谢谢!