?? 流水燈.lst
字號:
C51 COMPILER V8.09 流水燈 08/21/2008 14:41:17 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE 流水燈
OBJECT MODULE PLACED IN 流水燈.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE 流水燈.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*===============================================================
2 本實驗:
3
4 register為寄存器變量。在C語言中,如果有一些使用頻繁,則為
5
6 存取變量的值要花費不少時間。為了提高執行效率,C語言允許將局
7
8 部變量的值放到CPU的寄存器中,需要是直接從寄存器取出草較運算,
9
10 不需要再到內存中取。由于堵寄存器的存取速度遠高于對內存的存
11
12 取速度,因此這樣可以提高執行效率。這種變量叫做寄存器變量,
13
14 用關鍵字register作聲明。
15
16
17 注: (1):主芯片AT89S52使用11.0592M晶振
18
19 (2):Keil uV3 3.30編譯運行通過
20
21 (3):本例程在 Dream型開發板 平臺上成功運行通過
22
23 (4):更多學習資源瀏覽:(http://www.dream-core.cn)
24
25 ==================================================================*/
26 #include <reg52.h>
27 #define uchar unsigned char
28 #define uint unsigned int
29 void delay(uint x)
30 {
31 1 register uint y;
32 1 for(;x;x--)
33 1 for(y=0;y<255;y++);
34 1 }
35 void main()
36 {
37 1 uint z;
38 1 uchar temp;
39 1 while(1)
40 1 {
41 2 temp=0x01;//讓流水燈從左向右逐個閃動。
42 2 for(z=0;z<8;z++)
43 2 {
44 3 P1=~temp;//把temp值取反付給P1。
45 3 delay(50);
46 3 temp<<=1;//temp值左移一位。
47 3 }
48 2 temp=0x80;//讓流水燈從右向左逐個閃動。
49 2 for(z=0;z<8;z++)
50 2 {
51 3 P1=~temp;
52 3 delay(50);
53 3 temp>>=1;//temp值右移取反付給P1。
54 3 }
55 2 temp=0xfe; //讓流水燈從左向右依次全部點亮
C51 COMPILER V8.09 流水燈 08/21/2008 14:41:17 PAGE 2
56 2 for(z=0;z<8;z++)
57 2 {
58 3 P1=temp;
59 3 delay(50);
60 3 temp<<=1;
61 3 }
62 2 temp=0x7f;
63 2 for(z=0;z<8;z++) //讓流水燈從右向左依次全部點亮
64 2 {
65 3 P1=temp;
66 3 delay(50);
67 3 temp>>=1;
68 3 }
69 2 }
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 134 ----
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)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -