日志档案

发表于 2007-8-24 22:26:19

0

标签: c51  

51实例--点亮2个led(数据类型)

/************************************************************************************
作者: 好心情
日期: 2007-08-24
描述: 点亮两个led,通过两个led点亮时间的不同,认识不同的数据类型之间的差异
************************************************************************************/
//#include 预处理文件中主要定义各种特殊功能寄存器,如果自己定义,就不需要在引用头文件了

//自定义特殊功能寄存器
sfr p1=0x90;//定义p1口,sfr为c51扩充数据类型,可以访问51内部所有特殊功能寄存器
bsfr p1_0=0x90;//定义p1.0口,同样为扩充数据类型,可访问可寻址位
bsfr p1_1=p1^1;//定义p1.1

void main()
{
 unsigned int a;//声明变量a,无符号整型0-65535
 unsigned char b;//无符号字符型0--255

 do
 {
  for(a=0;a<65535;a++) //控制led1
   p1_0=0;//for循环,执行P1_0=065535次,注意,C语言区分大小写,头文件中预定义的为大写,如果写成p1_0 就会出错
  p1_0=1;
  for(a=0;a<30000;a++);//延时,空循环30000次

  /*在此处加入空行有助于提高程序的可读性,关于程序书写的一些事项建议参考c语言
  帝国的"  高质量C++/C编程指南 "http://www.vcgood.com/forum_posts.asp?TID=539&PN=1*/
  for(b=0;b<255;b++)//控制led2,因为b为无符号字符型,取值不能大于255,如果大于会形成死循环
   p1_1=0;
  p1_1=1;
  for(a=0;a<30000;a++);
 }while(1);

系统分类: 汽车电子   |   用户分类: 51单片机   |   来源: 原创   |   【推荐给朋友】

    阅读(523)    回复(0)  

投一票您将和博主都有获奖机会!