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

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

 超级终端波特率选为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. JSP/Servlet-----charset 、pageEncoding差别

    一.JSP/Servlet中的几个编码的作用         在JSP/Servlet中有4个地方可设置编码(例如以下).当中前两个仅仅能用于JSP中,后两个可用于JSP和Servlet 中.    ...

  2. Qt多线程(有详细例子)

    Qt线程类 Qt 包含下面一些线程相关的类:QThread 提供了开始一个新线程的方法QThreadStorage 提供逐线程数据存储QMutex  提供相互排斥的锁,或互斥量QMutexLocker ...

  3. Mojo Mysql utf-8字符集 需要{mysql_enable_utf8 => 1}

    get '/api/log_mon/get_log' => sub{ my $c = shift; my $env = $c->param('env'); my $host = $c-&g ...

  4. hibernate学习(二)

    hibernate 单向一对多映射 一.数据表设计 数据库名:hibernate5 数据表: ①表名:CUSTOMERS 字段: CUSTOMER_ID  CUSTOMER_NAME ②表名:ORDE ...

  5. About VirtualBoxImages.com

    About VirtualBoxImages.com | VirtualBoxImages.com About VirtualBoxImages.com About: VirtualBoxImages ...

  6. HBase总结(二十)HBase经常使用shell命令具体说明

    进入hbase shell console $HBASE_HOME/bin/hbase shell 假设有kerberos认证,须要事先使用对应的keytab进行一下认证(使用kinit命令),认证成 ...

  7. scala 函数编程

     scala 函数编程  Effective Scala.pdf: http://www.t00y.com/file/76767869 Functional_Programming_in_Scal ...

  8. leetcode回文子串拆分-最小拆分次数

    转载请注明来自souldak,微博:@evagle 上一篇是要输出所有的可能拆分,这回是要输出拆分次数最少的切割次数. 如果直接按照上一篇那么做的话,就会超时,因为我们在判断s[i][j]是否是回文的 ...

  9. selenium让人摸不着头脑的问题

    selenium让人摸不着头脑的问题 问题一 使用webdriver驱动firefox浏览器时如果不设置参数,默认使用的Firefox的profile和平时打开浏览器使用的firefox不一样,如果要 ...

  10. 向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题

    原文:向GridView的模板列绑定OnClientClick的函数时出现了奇怪的问题 GridView的一个模板列中的内容是按钮,需要实现以下的效果: GridView分页显示数据,点击编辑按钮(模 ...