单片机实验Word格式文档下载.docx
- 文档编号:20488757
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:12
- 大小:410.56KB
单片机实验Word格式文档下载.docx
《单片机实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实验Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
DELAY()
{inti;
for(i=0;
i<
5000;
i++)
{}
}
main()
{P0=0X00;
while
(1)
{
P0=P0+1;
DELAY();
}
编译程序,并产生后缀为.HEX的可执行文件,将该文件下载到PROTEUS单片机仿真系统中的51单片机中,运行该仿真,观察仿真结果。
实验二数码管静态显示控制
学会使用单片机的IO口控制八段数码管,掌握八段数码管的代码的编码原理,学习51单片机对静待数码管显示的控制方法。
在PROTEUS中建立一个51单片机仿真系统,用51单片机的P0控制一个LED八段数码管循环显示0—9十个数字。
打开PROTEUS仿真软件,分别添加单片机,和一个八段数码管等主要器件,按照图2-1所示连接。
连接好电路图以后打开KEIL软件,编写软件程序。
图2-1静态数码管系统图
编写软件程序时要注意八段数码管的编码规则,共阴极数码管和共阳极数码管的编码规则刚好是相反的,这里以共阴极为例。
共阴极数码管的公共端是要接地的,而所有的阳极连接单片机的控制端,即,单片机的IO口输出1时,对应八段数码管的一个段就亮,只要按照数码管的各段顺序依次连接到单片机的IO口上,就可以通过控制相应IO口配合输出1或0来达到控制数码管显示我们需要的数字。
按照实验要求编写的控制程序如下:
#include"
delay(inta)
{inti;
a;
main()
chari;
charsegcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
while
(1)
10;
{P0=segcode[i];
delay(30000);
将上面的程序在KEIL中编译以后产生一个.HEX文件,将该文件添加到PROTEUS中的单片机中,然后运行,就可观察数码管的变化。
实验三数码管动态显示控制
学会使用单片机的IO口控制八段数码管,掌握八段数码管的代码的编码原理,学习51单片机对动态数码管显示的控制方法。
在PROTEUS中建立一个51单片机仿真系统,用51单片机的P0口和P2口控制6个LED八段数码管依次显示0—5六个数字。
打开PROTEUS仿真软件,分别添加单片机,和6个八段数码管等主要器件,按照图3-1所示连接。
图3-1动态数码管系统图
本实验中将六个数码管的输入端口并接在了P0口上,然后由P2口经过一级非门连接到了各数码管的公共端,采用这种连接方式显示多位数字时需要使用动态扫描数码管,这就是数码管的动态显示控制。
数码管要显示的代码由P0口送出,送出的代码由哪一个数码管来显示则是由P2口来控制。
控制程序如下:
{chari,a;
{a=0x01;
P2=0X00;
6;
{P2=a;
P0=segcode[i];
a=a<
<
1;
delay(300);
编译以上程序,并添加到单片机中,在PROTEU中运行仿真,观察仿真结果,改变延时时间在观察仿真结果。
实验四定时器的使用
学会使用单片机内部的定时器模块,掌握定时器定时时间的计算方法,定时器的工作原理以及定时器的初始化、启动和停止控制。
在PROTEUS中建立一个51单片机仿真系统,用51单片机的内部定时/计数器1的定时功能设计一个在P2.0口上能周期性输出且频率可变的方波信号。
打开PROTEUS仿真软件,建立一个单片机仿真工程,由于该工程使用定时器功能产生一个方便信号,因此硬件连接很简单,没有其他外围电路,只需要在P2.0口上连接一个示波器就可以观察效果。
在程序上设计上,由于定时器定时时间到了以后会产生一个中断,利用中断功能,在中断程序中对P2.0的输出取反就可以实现周期性的方波输出,要改变方波的频率只需要改变定时时间就可以。
PROTEUS中的硬件连接如图4-1所示:
图4-1系统硬件连接图
#include<
at89x51.H>
voidmain(void)
{TMOD=0x01;
TH0=0x3C;
TL0=0xAF;
ET0=1;
EA=1;
TR0=1;
{}
}
voidtimer0(void)interrupt1using0//定时器1,第0组寄存器
{
P2_0=~P2_0;
将程序加载到单片机中,运行PROTEUS仿真,用示波器测量P2.0口的输出波形如图4-2所示。
图4-2仿真输出波形
实验五外部中断的使用
学会使用单片机内部的外部中断功能,掌握外部中断的使用方法,会利用51单片机的外部中断功能实现对外部信号的检测。
在PROTEUS中建立一个51单片机仿真系统,要求使用单片机的两个外部中断功能检测外部的两个信号,当检测到一个信号时,使输出到数码管上的数字加1,一直加到9,当超过9时回到0;
当检测到另一个外部中断时,使输出到数码管上的数字减1,一直加到0,当小于时回到9。
打开PROTEUS仿真软件,分别添加单片机,1个八段数码管和两个按键,按照图5-1所示连接。
图5-1硬件连接图
REG51.H>
unsignedchara[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
voidDELAY(inta)
for(i=0;
{}
charcnt=0;
{IT0=1;
//外中断跳变产生中断
IT1=1;
EX0=1;
EX1=1;
//打开总中断
voidint0()interrupt0
{DELAY(500);
cnt=cnt+1;
if(cnt==10)
cnt=0;
P0=a[cnt];
voidint1()interrupt2
cnt=cnt-1;
if(cnt<
0)
cnt=9;
将程序加载到单片机中,运行仿真,分别按下按键1和按键2,观察数码管的输出变化。
实验六可控数字时钟设计
综合运用数码管的动态显示控制,定时器功能,以及外部中断功能,学会设计简单的单片机控制系统。
在PROTEUS中建立一个51单片机仿真系统,用51单片机的P0口和P2口控制4个LED八段数码管分别用来显示数字时钟的分和秒,用外部中断来控制时钟的运行和停止。
打开PROTEUS仿真软件,分别添加单片机,和4个八段数码管等主要器件,按照图4-1所示连接。
图4-1硬件连接图
unsignedcharminute,second,tcount,tsecond;
unsignedcharint_cnt=0;
IT0=1;
tsecond=0;
second=0;
minute=0;
{P2=0x01;
P0=a[minute/10];
//分离出分钟十位
DELAY(300);
P2=0x02;
P0=a[minute%10];
//分离出分钟个位
DELAY(300);
P2=0x04;
P0=a[second/10];
//分离出秒十位
DELAY(300);
P2=0x08;
P0=a[second%10];
//分离出秒个位
}
{tsecond++;
if(tsecond==10)
{
tsecond=0;
second++;
if(second==60)
{second=0;
minute++;
if(minute==60)
}
int_cnt++;
if(int_cnt==2)
{int_cnt=0;
else
TR0=0;
将程序转入单片机,运行仿真,观察结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验