C51 COMPILER V6.12 2_5 10/01/2007 13:35:06 PAGE 1 C51 COMPILER V6.12, COMPILATION OF MODULE 2_5 OBJECT MODULE PLACED IN .\2_5.obj COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\lesson2\2_5.c DEBUG OBJECTEXTEND PRINT(.\2_5.lst) OBJECT(.\2_5.obj) stmt level source 1 /*******************************************************************/ 2 /* TX-1C单片机实验板实验例程 */ 3 /* 2007年8月第二期培训班课后习题详解 */ 4 /* 作者:郭天祥 */ 5 /* 邮箱:txmcu@163.com */ 6 /* 网站:www.txmcu.com(天祥电子) */ 7 /* 题目内容:用位操作点亮第一个发光管. */ 8 /*【版权】Copyright(C)天祥电子 www.txmcu.com All Rights Reserved */ 9 /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */ 10 /* */ 11 /*******************************************************************/ 12 /* 13 8个发光管间隔200ms由上至下, 14 再由下至上,再重复一次, 15 然后全部熄灭再以300ms间隔 16 全部闪烁5次。重复此过程 17 */ 18 /*********************************************************/ 19 #include //52单片机头文件 20 #include //包含有左右循环移位子函数的库 21 #define uint unsigned int //宏定义 22 #define uchar unsigned char //宏定义 23 void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. 24 { //delay(500);大约延时500ms. 25 1 uint x,y; 26 1 for(x=z;x>0;x--) 27 1 for(y=110;y>0;y--); 28 1 } 29 void main() //主函数 30 { 31 1 uchar a,i,j; 32 1 while(1) //大循环 33 1 { 34 2 for(j=0;j<2;j++) 35 2 { 36 3 a=0xfe; //赋初值 37 3 for(i=0;i<8;i++) //左移 38 3 { 39 4 P1=a; //点亮小灯 40 4 delay(200); //延时200毫秒 41 4 a=_crol_(a,1); //将a变量循环左移一位 42 4 } 43 3 a=0x7f; 44 3 for(i=0;i<8;i++) //右移 45 3 { 46 4 P1=a; //点亮小灯 47 4 delay(200); //延时200毫秒 48 4 a=_cror_(a,1); //将a变量循环右移一位 49 4 } 50 3 } 51 2 P1=0xff; //全部熄灭 52 2 for(j=0;j<10;j++) 53 2 { 54 3 delay(300); //延时 55 3 P1=~P1; //全部取反10次,既闪烁5次 C51 COMPILER V6.12 2_5 10/01/2007 13:35:06 PAGE 2 56 3 } 57 2 } 58 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 112 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)