• 大小: 0.20M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-02-22
  • 标签:

资源简介

【核心代码】

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#define uchar unsigned char
#define uint  unsigned int
#define LED   P0

uchar const dofly[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,
                             0x0b,0x0c,0x0d,0x0e,0x0f};//0-F
/*------------------------------------------------
                   函数声明
------------------------------------------------*/ 
uchar keyscan(void);//键盘扫描
void delay(uint i); //演示程序
void send(uchar str);//发送数据程序
void receive(void);  //接收数据程序
void read_key(void);//读键值函数


/*------------------------------------------------
                   主函数
------------------------------------------------*/
void main()
{
 TMOD=0x20;      //定时器1,方式2
 TL1=0xfd;
 TH1=0xfd; //设置波特率9600
 SCON=0xd8;
 PCON=0x00; //串行口方式3,允许接收位
 TR1=1; //打开定时器1
 P2=0xff;        //拉高P2口
 while(1)
 {
  read_key(); //读按键程序
  //receive(); //接收数据程序
 }
}




/*------------------------------------------------
              读键值函数
------------------------------------------------*/
void read_key(void)
{
 uchar key;
 key=keyscan();  //调用键盘扫描,
 switch(key)
 {
  case 0xee:send(dofly[0]);break;//0 按下相应的键显示相对应的码值
  case 0xed:send(dofly[1]);break;//1
  case 0xeb:send(dofly[2]);break;//2
  case 0xe7:send(dofly[3]);break;//3
  case 0xde:send(dofly[4]);break;//4
  case 0xdd:send(dofly[5]);break;//5
  case 0xdb:send(dofly[6]);break;//6
  case 0xd7:send(dofly[7]);break;//7
  case 0xbe:send(dofly[8]);break;//8
  case 0xbd:send(dofly[9]);break;//9
  case 0xbb:send(dofly[10]);break;//a
  case 0xb7:send(dofly[11]);break;//b
  case 0x7e:send(dofly[12]);break;//c
  case 0x7d:send(dofly[13]);break;//d
  case 0x7b:send(dofly[14]);break;//e
  case 0x77:send(dofly[15]);break;//f
 }
}


/*------------------------------------------------
              键盘扫描程序
------------------------------------------------*/
uchar keyscan(void)  //键盘扫描函数,使用行列反转扫描法
{
 uchar key;
 uchar cord_h,cord_l;//行列值中间变量
 P2=0x0f;            //行线输出全为0
 cord_h=P2&0x0f;     //读入列线值
 if(cord_h!=0x0f)    //先检测有无按键按下
 {
  delay(100);        //去抖
  if(cord_h!=0x0f)
  {
    cord_h=P2&0x0f;  //读入列线值
    P2=cord_h|0xf0;  //输出当前列线值
    cord_l=P2&0xf0;  //读入行线值
    key=cord_h cord_l;//键盘最后组合码值
   }
  }
  return(key);     //返回该值
}


/*------------------------------------------------
                发送数据函数
------------------------------------------------*/
void send(uchar str)
{
 if(TI==0)
 {
  SBUF=str;
  while(TI==0);
  TI=0;
 }
}




/*------------------------------------------------
                接收数据函数
------------------------------------------------*/
void receive(void)
{
 while(RI==0);
 RI=0;
 P0=SBUF;     //立即点亮LED
}




/*------------------------------------------------
                 延时程序
------------------------------------------------*/
void delay(uint i)  //延时函数
{
while(i--);
}

资源截图

代码片段和文件信息

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#define uchar unsigned char
#define uint  unsigned int
#define LED   P0
sbit WR2 = P3^2;    // 控制MAX487发送接收方式


/*------------------------------------------------
                   函数声明
------------------------------------------------*/ 
void delay(uint i); //演示程序
void receive(void);  //接收数据程序






/*------------------------------------------------
               串口中断服务程序
------------------------------------------------*/
void UART(void) interrupt 4 using 1
{
 if(RI)
 {
  LED=SBUF;
  RI=0;
 }
}




/*------------------------------------------------
                   主函数
------------------------------------------------*/
void main()
{
 TMOD=0x20;      //定时器1,方式2
 TL1=0xfd;
 TH1=0xfd;  //设置波特率9600
 SCON=0xd8;
 PCON=0x00;  //串行口方式3,允许接收位
 TR1=1;  //打开定时器1
 ES=1;  //开串口中断
 EA=1;           //开总中断

 WR2=0;          //MAX487为接收方式

 while(1);

}




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     195082  2013-07-04 15:31  3、PC到单片机单向通讯\Last Loaded 串口通信.DBK

     文件     195179  2013-07-05 18:11  3、PC到单片机单向通讯\串口通信.DSN

     文件       2954  2013-07-05 18:11  3、PC到单片机单向通讯\串口通信.PWI

     文件         19  2011-05-20 00:11  3、PC到单片机单向通讯\串口通信receive(中断方式)\ExtDll.iex

     文件       6376  2010-09-03 17:12  3、PC到单片机单向通讯\串口通信receive(中断方式)\STARTUP.A51

     文件      14062  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\STARTUP.LST

     文件        749  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\STARTUP.OBJ

     文件       2758  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART

     文件       1076  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.c

     文件        195  2013-06-26 14:16  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.hex

     文件         41  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.lnp

     文件       2762  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.LST

     文件       4866  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.M51

     文件       2259  2013-06-26 14:15  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.OBJ

     文件        235  2013-06-26 16:36  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.plg

     文件     143665  2013-06-26 16:36  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.uvopt

     文件      13408  2011-05-20 00:18  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART.uvproj

     文件     143658  2013-06-26 16:31  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART_uvopt.bak

     文件      13392  2011-05-19 23:11  3、PC到单片机单向通讯\串口通信receive(中断方式)\UART_uvproj.bak

     文件         19  2013-06-27 13:41  3、PC到单片机单向通讯\串口通信receive(查询方式)\ExtDll.iex

     文件       6376  2010-09-03 17:12  3、PC到单片机单向通讯\串口通信receive(查询方式)\STARTUP.A51

     文件      14062  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\STARTUP.LST

     文件        749  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\STARTUP.OBJ

     文件       6729  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART

     文件       3860  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.c

     文件       1455  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.hex

     文件         41  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.lnp

     文件       7162  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.LST

     文件       9635  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.M51

     文件       6803  2013-07-04 14:15  3、PC到单片机单向通讯\串口通信receive(查询方式)\UART.OBJ

............此处省略45个文件信息

评论

共有 条评论

相关资源