设计一个单片机系统,使P2.0控制1个蜂鸣器;

来源:百度知道 编辑:UC知道 时间:2024/07/03 01:40:00
一、设计一个单片机系统,使P2.0控制1个蜂鸣器;
P1.2接1个LED灯;P3.0与P3.1接RS232电平转换
器与PC机串口相连;P3.2接1个S1按键。要求在
一个程序中完成:
(1)任何时候,当S1有效(下降沿)蜂鸣器发声
1次;
(2)当单片机收到PC机发送的0xAA,0x55时,LED
灯点亮1次,单片机并回送0xBB,0x66结束;
(3)开启T0中断,每当1秒信号到时,LED灯点亮及
蜂鸣器发声各1次。

急急 急 谢谢 帮忙

//头文件
#include "REGX52.H"
#define uchar unsigned char
#define uint unsigned int
#define COUNT 20//缓冲区域大小设定

//全部变量定义
bit EVRCV=0;//标志位
bit NewFrame=0;

sbit S1=P3^2; //S1键接P3^2
sbit LED=P1^2; //发光二极管接P1^2
sbit SPEAKER=P2^0; //蜂鸣器接P2^0

unsigned char buf;//串口缓冲字节

void sendIF(void);//发送0xBB、0x66程序
voud delay(uint j);//延时函数

main(void)
{
uchar i;
TMOD = 0x21; //使用方式0,16位计数器
TH0 = 0xFF;
TL0 = 0xFA;
ET0 = 1; //中断0允许
TR0 =1; //启动定时器0
initial();//串口初始化
if(!S1)//这儿要是下降沿的话要注意硬件防抖动
{
SPERKER=1;
delay(5000);
SPEAKER=0;
}
if(EvRcv)
{
sendIF();
}

}

void timer0(void) interrupt 1 using 1 //定时器0的中断号是1
{
TR0 = 0;
TH0 = 0;//要由软件清掉<