单片机程序案例(全部调试通过_部分附仿真图)(2)

2018-12-04 22:07

}

}

delay(d1); P0=0xdb; delay(d1); P0=0xe7; delay(d1); break; } case 0xfb: { P0=0xe7; delay(d1); P0=0xdb; delay(d1); P0=0xbd; delay(d1); P0=0x7e; delay(d1); break; } default: break; }

//中间向两边

实验三 报警产生器

一、实验目的

1、掌握单片机实验箱的使用方法与程序调试技巧;

2、学会使用51系列单片机I/O的基本输入输出功能及相应的驱动模块的设计。

二、实验设备

单片机实验箱一台;PC机一台;USB下载线一根。

三、实验内容

用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,由开关K1控制输出与否,当开关合上响报警信号,当开关断开报警信号停止,请按流程图编出程序,流程图中的开关K1为实验一原理图中的S38。开关K1按下即S38为高电平,开关K1未按下即S38为低电平。图3-1所示为蜂鸣器驱动电路,图3-2所示为程序流程图。

6

图3-1

蜂鸣器接口电路

图3-2 程序流程图

四、实验步骤

1. 信号产生的方法:500Hz信号周期为2ms,信号电平为每1ms变反1次;1KHz的信号周期为1ms,信号电平每500us变反1次。

2. 编写程序,将实验箱电源开关拨至USB供电,并将拨码开关总开关S44拨至“关”状态。 3. 下载程序并运行程序,将蜂鸣器开关S1打开,控制蜂鸣器发声。

五、思考题

1.简述你在本次实验中遇到过哪些问题?这些问题是怎样解决的?有何收获和体会?

2. 本实验的硬件通过编程可以演奏出悦耳的乐曲、可以实现报警声、门铃声音。现要求单片机产生“嘀、嘀、…”报警声从P1.0端口输出,产生频率为1KHz。当1KHZ方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去时,就形成所需的报警声了。请有兴趣的同学编程调试。

7

程序代码:

#include #include

#define uint unsigned int sbit S38=P1^7; sbit BUZZ=P1^0; void delay() {

uchar b;

for(b=63;b>0;b--) {

_nop_(); } }

void main() {

while(1) {

uint FLAG=1,i;

while(S38==1) {

if(FLAG) {

for(i=0;i<200;i++) {

BUZZ=~BUZZ; delay(); delay(); }

FLAG=~FLAG; } else {

for(i=0;i<200;i++) {

BUZZ=~BUZZ; delay(); }

FLAG=~FLAG; } }

//调用一次约为500us

//按键按下

//500hz

//1000hz

8

} }

思考题2代码: #include #include

#define uchar unsigned char sbit S38=P1^7; sbit BUZZ=P1^0; void delay() {

uchar b;

for(b=63;b>0;b--) {

_nop_(); } }

void main() {

while(1) {

uchar i;

while(S38==1) {

for(i=0;i<200;i++) {

BUZZ=~BUZZ; delay(); }

for(i=400;i>0;i--) {

delay(); } } } }

延时0.2s

9

//

实验四 外部中断实验

一、实验目的

1、学习外部中断技术的基本使用方法 2、中断处理的编程方法。

二、实验设备

单片机实验箱一台;PC机一台;USB下载线一根。

三、实验内容

单片机外部中断0(P3.2)已与独立式键盘中S27连接,外部中断1(P3.3)已与S28连接,要求在无外部中断时最右一位发光二极管(D26)点亮。请编程实现:当S27按下,外部中断0请求中断,控制发光二极管左移;当S28按下,外部中断1请求中断,控制发光二极管闪烁。(要求外部中断1优先级高于外部中断0)。单片机与发光二极管的连续见实验一原理图,独立式键盘原理图如图4-1所示。

4-1 独立式键盘原理图

四、思考题

1.51单片机的中断系统由哪几个特殊功能寄存器组成?

2.中断函数与函数调用有何不同?

3.MCS-51单片机若要把外部中断源扩充为6个,另采用哪些方法?如何确定其优先级? 程序代码:

#include

#include sbit D26=P0^7; void delay() {

int a,b;

for(a=120;a>0;a--) { for(b=110;b>0;b--); } }

void main()

10


单片机程序案例(全部调试通过_部分附仿真图)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:531知识竞赛题库(判断)

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

马上注册会员

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