#include <reg52.h>
#define uc unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;//定义锁存器
int flag, a;//flag为中断标志位
uc code table[]=//定义输出显示编码
{0x00 ,
0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,0x7d , 0x07 ,0x7f ,0x6f, 0x3f, //1-9, 0
0x7c, //*号输出'b'
0x39, //#输出'c'
0x00 , 0x00 ,0x00 ,0x00 //DTMF表后四位没法输出,数码管不显示
};
void initialize(void);
void rece_init(void);
void transmit(uc data *p,uc count);
void tran_init(void);
void delay(uint z);
void display(int num1);
void main(void)
{
int b;
uc data w_buf[7];//定义输出保存数组
SP=0x5f;
b=0;
display(b);
w_buf[0]=1;
w_buf[1]=2;
w_buf[2]=3;
w_buf[3]=4;
w_buf[4]=5;
w_buf[5]=6;
w_buf[6]=7;//输出数字1-7,在对方电话机中可以听到
initialize();//初始化
tran_init();//发送初始化
transmit(w_buf,7);//发送数组
rece_init();//接受初始化
while(1)
{
if(flag==1)//当产生外部中断
{
flag=0;//标志位置0
b=a;
}
display(b);//在数码管上显示b相应的值
}
}
void rece_init(void) //接受初始化子函数
{
P1=0x24;
IT0=1;
IE=0x81;
}
void int0() interrupt 0 using 1//外部中断子函数
{
P1=0x3f;
P1=0x1f;
a=P1&0x0f;//计算单片机低四位的值
flag=1;//标志位置1
}
void initialize(void)//初始化子函数
{
P1=0x3f;
P1=0x20;
P1=0x20;
P1=0x28;
P1=0x20;
wela=0;
dula=0;
}
void tran_init(void)//发送初始化子函数
{
P1=0x29;
P1=0x21;
}
void transmit(uc data *p,uc count)//发送子函数
{
uc j;
for (j=0;j<count;j++,p++)
{
P1=*p;
delay(200);
P1=0x3f;
}
}
void display(int num1)//数码管显示子函数
{
dula=1;
P0=table[num1];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(1);
}
void delay(uint z)//延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
51单片机DTMF测试用程序(Keil)
3星 · 超过75%的资源 需积分: 10 17 浏览量
2013-06-27
17:36:41
上传
评论 2
收藏 12KB RAR 举报
改之
- 粉丝: 1
- 资源: 1
最新资源
- 基于Matlab人脸肤色定理的教师人数统计+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab霍夫曼变换的表盘读数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab火灾烟雾检测源码带GUI界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的恶劣天气交通标志识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的霍夫曼变换的表盘示数识别+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的车道线识别系统 +源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB的教室人数统计系统带Gui界面+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于MATLAB 的霍夫曼变换答题卡识别源码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab+bp神经网络的神经网络汉字识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈