单片机实验报告(4)

2019-03-03 14:04

PWM蜂鸣器实验

[实验目的]

掌握定时器的使用;掌握蜂鸣器的发声原理;熟悉PWM波形的产生。

[实验内容]

MCU-AT89S52 P00 蜂鸣器 BUZ [实验要求]

用定时器设计PWM波形驱动蜂鸣器发声.

[实验步骤]

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

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

[程序及注释]

#include //头文件 #include #include

#define uint unsigned int #define uchar unsigned char sbit BUZZER=P0^0;//发声音口 uchar code T0_H[16]={0xFF,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE}; //定时器延时高位 uchar code T0_L[16]={0xF1,0x4,0x90,0xC,0x44,0xAC,0x9,0x34,0x82,0xC8,0x06,0x22,0x56,0x85,0x9A,0xC1}; //定时器延时低位 uchar code music[32]={8,0,8,9,8,0xB,0xA,0,8,0,8,9,8,0xC,0xB,0,8,0,8,0xF,0xD,0xB,0xA,9,0xE,0,0xE,0xD,0xB,0xC,0xB,0x0}; //音律选择

uchar code music_L[32]={2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4}; //延时长度 uchar a,b;

void delay_music(uint v) //延时 {

while(v!=0) v--; }

void delay_music1(uint j)//延时 { while(j!=0) { j--; delay_music(200); } }

void delay_music2(uint j)//延时 { while(j!=0) { j--; delay_music1(80); } }

/************************主函数****************************************/ void main() {//uint i; uchar k,n,m; delay_music(100); TMOD=0x11; //初始化定时器 TH1=0xfc; TL1=0x66; EA=1; //开中断 ET0=0; TR0=0; ET1=0; TR1=0; while(1) { ET1=1; //打开定时器 TR1=1; //启动计数 for(k=0;k<32;k++) //循环32次 { n=music[k]; m=music_L[k]; a=T0_H[n]; b=T0_L[n]; delay_music2(m);

} } }

/**********************定时计数器T1中断处理****************************/ time1 () interrupt 3 using 3 //定时器中断 { TH1=a; //初始化定时器计数器 TL1=b; BUZZER=!BUZZER; //蜂鸣器取反 }

[实验现象及结果]

蜂鸣器演奏歌曲

验八

外扩WDT看门狗实验

[实验目的]

理解硬件看门狗的作用,比较硬件看门狗同软件看门狗的差别。

[实验内容]

MCU-AT89S52 看门狗电路 P10 P11 P00~ P07 RST WDT /RESET 8位独立开关 SW1 8位独立LED D1~ D8 74LS04反相器 A1 Y1 注意:AT89S52是高电平复位,因此在使用外部看门狗电路的时候需要在看门狗电路引脚RESET后加反相器,经反相个后送到单片机的RST引脚完成复位操作。

[实验要求]

用外部看门狗实现对单片机的复位当不喂看门狗的时候,系统会自动复位使得流水灯不能运行当按时喂狗后,系统不会自动复位,流水等能在此次运行。

[实验步骤]

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

2、选择菜单Project的下拉菜单Options for Target选项。在弹出的窗口中,选择output选项,在Creat HEX File的勾选项中,勾选。这样才能生成HEX文件。

3、选择菜单Project的下拉菜单Build target选项,如无错误或特别警告,编译链接完成后就会产生相应工程的HEX文件了。

[程序及注释]

#include #include

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

**************************************************************/ #define LED P0 sbit SW1=P1^0; sbit WDT=P1^1; /********延时函

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

/*********主函

***************************************************************/ void main(void) { LED = 0xfe; //初始化LED WDT=1; _nop_(); //初始化看门狗 WDT=0; _nop_(); WDT=1; _nop_(); WDT=0; while(1) { if(SW1) //SW1=1时,喂狗 { WDT=1; _nop_(); WDT=0;

}

}

_nop_(); WDT=1; _nop_(); WDT=0; }

delayms(150); //延时 delayms(150);

LED = _crol_(LED,1);//循环右移1位,点亮下一个LED

[实验现象及结果]

1.当开关SW1置高时,程序清除硬件看门狗 LED流水灯正常运行

总结:通过这次单片机实验,让我真真正正见识了单片机,基本上可以说是大学以来第一次真正可以看到自己完成“电子产品”的实验课,非常的有意义。在单片机实验课上,不仅提高了每个同学的动手能力,我们需要自己自己思考电路,自己接线,再自己下载程序,我们还要自己编写程序,在不懂的时候可以参考历程来设计程序。同时锻炼了我们的逻辑思维能力,可以说是一举多得。在单片机实验课上,我们所使用的实验箱也是相对完成,几乎没有损坏的,这个也是其他实验课上难以遇到的。我们的单片机实验器材非常完善好用。总之,这次单片机实验让我们获益良多,为将来成为电子工程师打下了坚实的基础。


单片机实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:四风问题清单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: