1 / 11
文档名称:

单片机实验报告一.docx

格式:docx   大小:390KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机实验报告一.docx

上传人:wz_198614 2022/3/25 文件大小:390 KB

下载得到文件列表

单片机实验报告一.docx

文档介绍

文档介绍:实验一 发光二极管实验
一、实验目的
1、掌握AT89C51 单片机IO 口的输入输出。
2、掌握用查表方式实现AT89C51 单片机IO 口的控制。
3、练****单片机简单延时子程序的编写。
4、熟练运用Proteus 设计、仿真AP1^3;
sbit y4=P1^4;
sbit y5=P1^5;
sbit y6=P1^6;
sbit y7=P1^7;
char a0,a1,a2,a3,a4,a5,a6,a7;
void main()
{
while(1)
{
if(k0==0)
y0=0 ; else y0=1;
if(k1==0)
y1=0 ; else y1=1;
if(k2==0)
y2=0 ; else y2=1;
if(k3==0)
y3=0 ; else y3=1;
if(k4==0)
y4=0 ; else y4=1;
if(k5==0)
y5=0 ; else y5=1;
if(k6==0)
y6=0 ; else y6=1;
if(k7==0)
y7=0 ; else y7=1;
}
}
仿真电路图如下:
6、用蜂鸣器发出固定电话回音声音。见图三。
固定电话回音声音:450Hz,通1秒断4秒。
程序代码如下:
#include<>
int k;
void delay(int k);
sbit P37=P3^7;
void main()
{
int i;
while(1)
{
for(i=0;i<500;i++)
{
P37=1;
delay(1);
P37=0;
delay(1);
}
P37=0;
delay(4000);
}
}

void delay(int k)
{
int m,n;
for(m=0;m<k;m++)
for(n=0;n<120;n++);
}
7、1、按键若不按下,LED灯全灭。
2、按键每按下一次,LED灯亮状态实现加法功能。
即:第一次按下,灯状态为1111 1110;第二次按下,灯状态为1111 1101;
第三次按下,灯状态为1111 1100;.。。。。。。。。。。。
直到灯状态为0000 0000 。
再次按下后,状态又如同第一次按下。
3、按键每次按下时,蜂鸣器有声音发出。(高电平1毫秒,低电平1毫秒,表明确实有按键按下)。
程序代码如下:
#include<>
sbit P20=P2^0;
sbit P37=P3^7;
void delay(int k);
void main()
{
P1=0Xff;
P37=0;
while(1)
{
if(P20==0)
delay(20);
if(P20==0)
{
P37=0;
delay(1);
P37=1;
delay(1);
P1=P1-1;
while(!P20);
P37=0;
}
}
}
void delay(int k)
{
int m,n;
for(m=0;m<k;m++)
for(n=0;n<120;n++);
}
仿真电路图如下:



图三
8、 简易模拟交通灯
说明:东西向绿灯亮10秒,黄灯闪烁3次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,15秒后南北向黄灯闪烁3次后变红灯,东西向变绿灯,如此重复。
程序代码如下:
#include<>
#define uint unsigned int
void delay(uint k);
void main ()
{ while(1)
{
P3=0X1E;
delay(10000);
{
uint i;
for(i=0;i<3;i++)
{
P3=0X2E;
delay(1000);
P3=0X3E;
delay(1000);
}
}
P3=0X33;
delay(