原创 C8051f330第二个程序--------串口

2011-9-1 19:51 2670 7 8 分类: MCU/ 嵌入式
//2011.8.29晚.
//非常感谢百度空间的SENSE Tech博客。
//串口是单片机最小系统必备的模块之一,在许多不能进行在线调试的场合,串口是非常方便的调试工具。
//C8051F330内部有一个SMBus接口,一个全双工的UART,一个SPI接口.
//每种串行总线都完全用硬件实现,都能产生中断.
//此程序采用UART串行总线,当采用UART串行总线时,串口波特率只能由定时器1进行定时,这一点可以从PDF中了解到。
#include<c8051F330.h>

void delayms(int);

void main()
{
   PCA0MD&=~0x40;    //关闭看门狗.
   P0MDOUT=0x10;     //当UART被选择时,交叉开关为其分配两个引脚(TX和RX),UART的TX0总被分配到P0.4,RX0总被分配到P0.5 , P0MDOUT为端口P0输出方式寄存器,P0MDOUT=0x10即将P0.4位输出为推挽方式   
                    
   XBR0=0x01;       //XBR0为I/O端口交叉开关寄存器,XBR0=0x01即设置UART的TX0,RX0连到端口P0.4,P0.5.
   
   XBR1=0x40;     //为使端口引脚工作在标准I/O输出方式,交叉开关必须被使能.
  
   TMOD=0x20;    nbsp;      //即TR1=1,启动定时器1.

   while(1)
   {
      SBUF0=0x11;      //从UART里发送0x11到SBUF0
  while(TI0==0);   //等待发送结束.
  TI0=0;           //发送结束后,TI0清0
  delayms(1000);
   }
}

void delayms(int x)
{
  int i,j;
  for(i=0;i<x;i++)
  for(j=0;j<120;j++);
}

文章评论1条评论)

登录后参与讨论

用户377235 2012-8-29 00:33

初次接触c8051f学习啦!
相关推荐阅读
用户1429642 2011-10-26 20:00
杂感
  有段时间未写博客了,总觉得还没有什么好的知识点可以写在里面,这学期开了门Cadence课程,原本打算写一些关于这款软件的一些使用技巧,但仔细想想,也就那么几点,有些少,还是等凑多了点时再写....
用户1429642 2011-09-01 19:54
C8051f330第一个程序  点亮一个二极管
自己开始学习C8051F330了,C8051F330的性能较普通的8051系列要强一些,比如I/O多一些,使用了交叉开关等等.具体可以见C8051F330的datasheet. 由于自己刚开始学这一款...
用户1429642 2011-08-18 16:52
关于贴片方面的一些小知识
    平时几乎都不用贴片,这几天由于焊接需要,接触了一些贴片,做个小总结: 1、关于贴片的焊接    每个人有不同的方法,但总体上还是采用:先用加热的烙铁在焊盘上涂抹少许焊锡,然后用镊子夹住元器件,...
用户1429642 2011-08-13 17:24
关于整体修改PCB图中元器件性能,如钻孔,焊盘等.
 经常有人问如何整体修改PCB图中元器件性能,如钻孔,焊盘等.现总结如下: 假设某个PCB图中,有10个电容,焊盘X-Size和Y-Size均为50mil,现需要修改为80mil.则修改步骤如下: &...
用户1429642 2011-08-06 19:05
关于创建头文件
  在Keil中,第一次创建自己的头文件,查了许多资料,说得都不是很清楚。后来在室友的帮助下,弄明白了。在此将它写下,以方便第一次创建头文件的其他同学。   以创建一个简单的延时函数delay10ms...
我要评论
1
7
关闭 站长推荐上一条 /2 下一条