#include <reg51.h>
#include <intrins.h>
#include<stdio.h>
#include "LCD1602.h"
#include "matrix_key.h"
#define uint unsigned int
#define uchar unsigned char
#define Nop() _nop_()
sbit P10 = P1^0; /*定义独立对地按键端口*/
sbit P11 = P1^1; /*定义独立对地按键端口*/
sbit P12 = P1^2; /*定义独立对地按键端口*/
sbit P13 = P1^3; /*定义独立对地按键端口*/ //shift键
bit shift_flag;
bit call_flag ;
bit CallIn_flag=0;
bit reci_flag;
bit reci_flag1;
sbit sled_en_port = P3^6; /*定义数码管数据锁存器控制端口*/
sbit led_en_port = P2^5; /*定义发光二极管数据锁存器控制端口*/
sbit ds1302_en_port = P2^2; /*定义时钟的选片脚*/
uchar CallIn_Num[15];//={"00000000000"};
uchar CallOut_Num[15]={" "};
uchar m=0; //拨号指针
uchar temp='?';
uchar code clr[16]={" "};
uchar code lcd_table[16] = {"Ky: Cm: Re: "};
//uchar nd_buff[15];
uchar reci_buff[15]={" "};
uchar z; //接收缓冲区指针
uchar time;//定时器中断次数
uchar code mun_to_char[]={"0123456789ABCDEF"};
/*1MS为单位的延时程序*/
void init();
void nd(uchar cc);
void nd_f(uchar ccc);
void interrupt_pro();
void key_pro();
void call_out();
void main()
{
uchar i,j;
delay_1ms(5);
init(); //定时器初始化
lcd_system_ret(); /*LCD1602 初始化*/
for(i=0;i<16;i++)
lcd_char_write(i,1,lcd_table[i]); /*显示标题*/
string_write(0,0,clr);string_write(0,0," Welcome! ");
sled_en_port = 0; /*关闭数码管显示*/
led_en_port = 0; /*关闭发光二极管显示*/
ds1302_en_port = 0;/*关闭时钟通讯*/
高中可以转学吗
while(1)
{
key_pro(); //扫描键盘,按键盘处理
if(reci_flag) //串口有数据过来
{
interrupt_pro();//分析处理
reci_flag=0;
绞股蓝的功效
reci_flag1=1;
}
if(CallIn_flag==1) //有电话打进来。
{ CallIn_flag=0;
for(i=0,j=0;i<15;i++) //&&reci_buff[i]>=0x30 &&reci_buff[i]<=0x39
{ if(reci_buff[i]>='0'&&reci_buff[i]<='9'||reci_buff[i]==' ')
{CallIn_Num[j]=reci_buff[i];j++;} reci_buff[i]=' ';
}
string_write(0,1,clr);
string_write(0,1,CallIn_Num);
}
if(call_flag==1)//拨号状态
{
TR0=1;
if(time>100&&CallOut_Num[0]>='0')
{ call_out();
for(i=16;i>1;i--) {
string_write(2,0,CallOut_Num);
delay_1ms(222);
delay_1ms(222);
含有身体部位的成语 string_write(2,0," ");
delay_1ms(222);
delay_1ms(222); }
for(i=0;i<15;i++) CallOut_Num[i]=' '; //清空
time=0;TR0=0;call_flag=0;string_write(0,0,clr);string_write(3,0,"Welcome!");
}
// el if(time>222){time=0;goto start;}//el m=0;
}
}
}
void init() /* 串口定时器外部中断初始化 */
{
TMOD =0X21;//|= 0x20; //定时器1为模式2,8位自动重装
TH1 = 0xfd; //Baud:19200 fosc="11".0592MHz
TL1=0XFD ;
TH0=0;
TL0=0;
TR1 = 1; // timer 1 run
SCON = 0x50; //UART为模式1,8位数据,允许接收
PCON |= 0x80 ; //SMOD=1; Baud加倍
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
EA=1;
ET0=1;
}
关于玉的成语void nd(uchar cc)
{
SBUF=cc;
while(TI==0);
TI=0;
}
void nd_f(uchar ccc)
{
nd(' ');
节水ppt
nd('<');
nd('F');
nd(ccc);
珍惜打针6 nd('>');
}
void call_out()
{
uchar i;
nd('(');
for(i=0;i<m;i++)
{
nd(CallOut_Num[i]);
}
nd(')');
m=0;
}
void interrupt_pro()
{
string_write(0,1,reci_buff);
lcd_char_write(14,1,mun_to_char[temp/10]); //for test
lcd_char_write(15,1,mun_to_char[temp%10]); //for test
if(temp==')') CallIn_flag=1;//|temp=='$' |temp=='%'
el if(temp=='$'){ lcd_delay(5);//if(temp=='$')
string_write(0,0,clr);
string_write(0,0,reci_buff);}
el switch(temp)
{
ca 'X':string_write(0,0,clr);string_write(0,0,"Disconnet");break;
ca 'P':string_write(0,0,clr);string_write(0,0,"Pairing"); break;
称快 ca 'S':string_write(0,0,clr);string_write(0,0,"Linking"); break;
ca 'O':string_write(0,0,clr);string_write(0,0,"Connect"); break;
ca 'R':string_write(0,0,clr);string_write(0,0,"Ring");
//string_write(5,0,CallIn_Num);
break;
ca 'D':string_write(0,0,clr);string_write(0,0,"Ding");
尹艳荣 // string_write(5,0,CallIn_Num);
break;
ca 'I':string_write(0,0,clr);string_write(0,0,"Talking"); break;
ca 'L':string_write(0,0,clr);string_write(0,0,"Call failed"); break;
ca 'A':string_write(0,0,clr);string_write(0,0,"MP3 playing"); break;
ca 'E':string_write(0,0,clr);string_write(0,0,"Call relea "); break;
ca 'H':string_write(0,0,clr);string_write(0,0,"A2DP connected ");break;
ca 'V':string_write(0,0,clr);string_write(0,0,"A2DP disconnected");break;
// ca ')':x=0; break; //for(i=0;i<16;i++) lcd_char_write(i,1,lcd_table[i]); /*显示标题*/