📄 循环移位流水灯.lst
字号:
C51 COMPILER V8.02 循环_莆涣_水灯 04/04/2008 18:41:37 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 循环_莆涣_水灯
OBJECT MODULE PLACED IN 循环移位流水灯.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 循环移位流水灯.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2
3 循环移位流水灯
4
5 功能: P1口外接的八个LED按照程序预定的组合,有选择、有节奏的点亮或
6 者熄灭,从而可以使LED发出的灯光达到像水流一样“流动”的效果。
7
8 说明: 运用C语言中简单的“移位”及“位或”操作,组合出一系列所需的8位
9 二进制数,并给P1口赋值,P1口对应的各LED就会按照要求被点亮或熄灭。
10
11 调试:1、通过对换程序中移位符号(">>"、"<<")的位置,可以方便地改变流水灯流动的方向。
12 2、通过修改变量“LED”的初值,可以方便地实现N(1至7)个LED作为一组流动的效果。
13
14
15 (C)西安电子科技大学 测控技术与仪器 编写:郭世忠 日期:2008/02/15
16 */
17
18 #include<reg52.h> //51寄存器头文件
19
20 void Delayms(int ms); //函数声明
21
22 void main(void) //主函数
23 {
24 1 unsigned char LED; //定义变量
25 1
26 1 LED=0xf8; //LED赋初值 可根据需要在“LED初值列表”中选择对应初值
27 1 //这里以点亮3个LED为例,因此选择初值为 0xf8
28 1
29 1 while(1) //死循环,单片机程序必须是一个死循环
30 1 {
31 2 P1=LED; //I/O口赋值,将变量“LED”此刻的值传给P1口。这一句写在这里是为了
32 2 //保证P1口能够从LED的初值开始显示,大家不信可以改一下位置看效果。
33 2
34 2 LED=(LED>>7)|(LED<<1);//移位运算,向左或向右移1位,并更新LED的值,下一周期更新到P1口
35 2 //此处对换移位符号(">>"、"<<")的位置,可改变流水灯流动的方向。
36 2
37 2 Delayms(5000); //延时,保持当前发光状态片刻。
38 2 }
39 1 }
40 /***************************** LED初值列表 *******************************
41 *
42 *流动LED的个数 对应二进制 对应十六进制
43 * 1 1111 1110 0xfe
44 * 2 1111 1100 0xfc
45 * 3 1111 1000 0xf8
46 * 4 1111 0000 0xf0
47 * 5 1110 0000 0xe0
48 * 6 1100 0000 0xc0
49 * 7 1000 0000 0x80
50 *说明:P1口对应的LED是低电平有效,因此,0代表点亮LED,1代表熄灭LED.
51 ****************************************************************************/
52
53
54
55 /****************************************************************************
C51 COMPILER V8.02 循环_莆涣_水灯 04/04/2008 18:41:37 PAGE 2
56 * 名 称:Delayms()
57 * 功 能:延迟1ms
58 * 入口参数:ms: 延迟毫秒数
59 * 出口参数:无
60 * 说 明: 11.0592MHz条件下
61 ****************************************************************************/
62 void Delayms(int ms)
63 {
64 1 unsigned int i;
65 1 for(;ms>0;ms--) //循环ms次
66 1 {
67 2 for(i=0;i<113;i++); //每次1ms延迟@ 11.0592MHz
68 2 }
69 1 }
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 64 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -