/********************************************************************

函数功能:往串口发送一字节数据(可通过超级终端或者串口调试助手显示出来,

 超级终端波特率选为9600)。每按下一次S2键,松开后均会在超级终端

 上显示一串字母"abcdefg哈哈"。

入口參数:d: 要发送的字节数据。

********************************************************************/









#include <reg52.h>

#define jingzhen     11059200UL /*使用22.1184M晶体*/
 

#define botelv   9600UL     /*波特率定义为9600*/

unsigned char zifuchuan[]="abcdefg哈哈"; //待显示字符。

volatile unsigned char sending;

sbit s2=P3^4;





void delay(unsigned char i)

{

unsigned char j,k;

for(j=i;j>0;j--)

for(k=90;k>0;k--);

}

void init(void) //串口初始化

{

 EA=0; //临时关闭中断

 TMOD&=0x0F;  //定时器1模式控制在高4位

 TMOD|=0x20;    //定时器1工作在模式2,自己主动重装模式

 SCON=0x50;     //串口工作在模式1

 TH1=256-jingzhen/(botelv*12*16);  //计算定时器重装值

 TL1=256-jingzhen/(botelv*12*16);

 PCON|=0x80;    //串口波特率加倍

 ES=1;         //串行中断同意

 TR1=1;        //启动定时器1

 REN=1;        //同意接收 

 EA=1;         //同意中断

}





void send(unsigned char d)  //发送一个字节的数据,形參d即为待发送数据。

{

 

 SBUF=d; //将数据写入到串口缓冲

 sending=1; //设置发送标志

 while(sending); //等待发送完成

}





void sendc(unsigned char * pd)

{

 while((*pd)!='\0') //发送字符串。直到遇到0才结束

 {

  send(*pd); //发送一个字符

  pd++;  //移动到下一个字符

 }

}





void main()

{

init();

while(1)

{

if(s2==0)

{

delay(20);

if(!s2)

{

while(!s2);
  

sendc(zifuchuan);

}

}

}

}





void uart(void) interrupt 4 //串口发送中断

{

 if(RI)    //收到数据

 {

  RI=0;   //清中断请求

 }

 else      //发送完一字节数据

 {

  TI=0;

  sending=0;  //清正在发送标志

 }

}

key 串口的更多相关文章

  1. [连载]《C#通讯(串口和网络)框架的设计与实现》- 8.总体控制器的设计

    目       录 第八章           总体控制器的设计... 2 8.1           总控制器的职能... 2 8.2           组装和释放部件... 3 8.3      ...

  2. [连载]《C#通讯(串口和网络)框架的设计与实现》- 6.通讯控制器的设计

    目       录 第六章           通讯控制器的设计... 2 6.1           控制器接口... 2 6.2           串口控制器... 3 6.3          ...

  3. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  4. [连载]《C#通讯(串口和网络)框架的设计与实现》- 5.串口和网络统一IO设计

    目       录 第五章           串口和网络统一IO设计... 2 5.1           统一IO接口... 2 5.1.1    串口IO.. 4 5.1.2    网络IO.. ...

  5. [连载]《C#通讯(串口和网络)框架的设计与实现》-4.设备驱动管理器的设计

    目       录 第四章           设备驱动管理器的设计... 2 4.1           接口定义... 2 4.2           设备容器... 7 4.3          ...

  6. [连载]《C#通讯(串口和网络)框架的设计与实现》-3.设备驱动的设计

    目       录 第三章           设备驱动的设计... 2 3.1           初始化设备... 4 3.2           运行设备接口设计... 4 3.3        ...

  7. 【图像处理】【SEED-VPM】4.串口调试信息

    —————————————————————————————————————————————————————————————————————— 串口返回正确的信息 Booting PSP Boot Lo ...

  8. Mac下的串口通信-ORSSerialPort

    ================================2015/11/05======================================= 最近在工作中遇到有关Mac下串口通信 ...

  9. 将JZ2440的调试串口换成com2

    众所周知JZ2440 V3很小巧,精致.今天单就JZ2440的串口来讨论一些问题.我们在用串口进行调试的时候,需要用JZ2440自带的一根USB线连接电脑USB口和开发板的USB-com1口.先来看一 ...

随机推荐

  1. Indy的TCPServer到底能支持多少个连接

    最近一个项目,最开始使用IdTcpServer,在大压力测试的时候,只连接了800个多一点的客户端(每个客户端连接上之后每秒钟发送一个几十字节的报文,服务器应答).但是持续的时间不会超过10分钟,服务 ...

  2. codeforces 659C Tanya and Toys

    题目链接:http://codeforces.com/problemset/problem/659/C 题意: n是已经有的数字,m是可用的最大数字和 要求选自己没有的数字,且这些数字的数字和不能超过 ...

  3. [Android学习笔记]PopupWindow的使用

    什么时候使用PopupWindow? 当业务需求的交互形式需要在当前页弹出一个简单可选项UI与用户进行交互时,可使用PopupWindow完成此功能开发 Android Dev API Doc Pop ...

  4. fragment Trying to instantiate a class com.example.testhuanxindemo.MyFragment that is not a Fragmen

    在使用fragment的时候,先创建了一个fragment,然后为他创建布局,并在oncreateview中返回载入该视图的后返回的view,在activity的布局文件里,使用xml布局,用frag ...

  5. Company Story | Vistaprint

    Company Story | Vistaprint Company Story A Gap in the Small Business Marketplace It’s rare that a hi ...

  6. C++&&Mysql&&codeblocks

    #include <iostream> #include <stdio.h> #include <winsock2.h> #include <mysql.h& ...

  7. sql使用存储过程和交易

    在过去的一年.学习数据库的时候学校有存储过程.永远只是知道一些理论,我不知道怎么用.时隔一年,最终找到怎样使用存储过程了. 在机房收费系统中.有些操作.须要多次运行sql语句,多次运行完毕才算是完毕这 ...

  8. Android开发 - ActivityLifecycleCallbacks用法初探

    ActivityLifecycleCallbacks是什么? Application通过此接口提供了一套回调方法,用于让开发人员对Activity的生命周期事件进行集中处理. 为什么用Activity ...

  9. ZTESoft 持续集成 编年史 之 持续集成建设---自主研发(总括)

    最终选择了自主研发,考虑到我们团队对java以及flex知识的储备,展示层使用夸浏览器的flex开发,后端业务层使用java. 一.方案: BEC + ZCIPAgent + ZCIPServer + ...

  10. C++封装SQLite实例&lt;三&gt;

    前一篇博客中介绍的是怎样依据sqlite3_get_table()函数来获取一张表的内容,就是一股脑的把表中的内容所有存储起来放在一个一维数组中,这其中的规则已经介绍过了.接下来讲的是怎样依据一个SQ ...