led.lst
来自「自己的平时一些制作 现在整理一下 与大家一起分享」· LST 代码 · 共 77 行
LST
77 行
C51 COMPILER V7.20 LED 03/07/2007 19:27:40 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****头文件包含******/
2 //各种单片机的寄存器定义,方便我门使用者,..
3 //只需要知道这些名字就可以了,其他的具体地址在这里定义好了..
4 //没必要一个一个记。
5 /********************/
6 #include <reg51.h>
7
8 /*******定义一个跑马灯的特征表************/
9 unsigned char code design[32]={ 0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,
10 0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,
11 0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,
12 0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,
13 0xBD,0x7E,0xFF
14 };
15 //定义一个循环变量。
16 unsigned char n;
17 /******定时器初始化函数*********/
18 void Init_Timer(void)
19 {
20 1 TMOD=0x11; //定时器方式控制字 T0 :16位定时 T1:16位定时
21 1 TH0=0x3C; //定时器0高位
22 1 TL0=0xB0; //定时器0低位
23 1 EA=1; //开CPU中断
24 1 ET0=1; //开定时器0中断
25 1 TR0=1; //启动定时器0
26 1 }
27
28 /*******定时器0中断服务程序********/
29 //在定时器0工作在16定时器时,需要手动载入定时常数..
30 //..这里在中断服务程序中加入这样一个定时常数的载入
31 /***************/
32 void timer0 (void) interrupt 1 using 1
33 {
34 1 TH0=0x3C; //定时常数的重新载入,定时50ms
35 1 TL0=0xB0;
36 1 n=(n+1)%32; //切换马灯的显示状态
37 1 P2=0xFF; //让所有led使能工作
38 1 P0=design[n]; //切换led显示内容
39 1 }
40
41 /*******主函数********/
42 //除了初始化函数之外..
43 //就是一个while死循环
44 //最简单的一个结构
45 /***************/
46 main()
47 {
48 1 Init_Timer(); //初始化函数
49 1 while(1); //while 死循环
50 1 }
51
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 58 ----
C51 COMPILER V7.20 LED 03/07/2007 19:27:40 PAGE 2
CONSTANT SIZE = 32 ----
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 + =
减小字号Ctrl + -
显示快捷键?