📄 leddemo.lst
字号:
C51 COMPILER V7.07 LEDDEMO 04/18/2006 22:51:32 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE LEDDEMO
OBJECT MODULE PLACED IN LEDdemo.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LEDdemo.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //////////////////////////////////////////////////////////////////////////////////////////////////////////
-///
2 ///////////////////////////////此程序为简单C语言编写的LED每秒左移一位的演示程序///////////////////////////
-///
3 //////////////////////////////////////////////////////////////////////////////////////////////////////////
-///
4 #include "at89x52.h"
5 #include <intrins.h>
6 #define uchar unsigned char
7 #define nop _nop_()
8 uchar s_oneSecondFlag=0x00; /*定义全局变量*/
9 uchar shiftCounter;
10 void main(void)
11 {
12 1 TMOD=0x10; /*Timer1工作在MODE1,16位定时器*/
13 1 TH1=(65536-10000)/256; /*设定Timer1每10ms中断一次*/
14 1 TL1=(65536-10000)%256;
15 1 IE=0x88; /*使能Timer1周期中断*/
16 1 P2=0x00; /*点亮8个发光二极管*/
17 1 shiftCounter=0x00; /*发光二极管移位计数器清零*/
18 1 TR1=1; /*启动Timer1*/
19 1 while(1)
20 1 {
21 2 if(s_oneSecondFlag==0x01) /*判断1秒到否*/
22 2 {
23 3 s_oneSecondFlag=0x00; /*1秒标志清零*/
24 3 P2=~(0x01<<shiftCounter); /*循环点亮发光二极管,因为P2口为零点亮,所以最后需要反一下相*/
25 3 if(++shiftCounter>=8) /*8个发光二极管都循环亮过了吗?*/
26 3 {
27 4 shiftCounter=0x00; /*都亮过了则重新循环*/
28 4 }
29 3 }
30 2 }
31 1
32 1 }
33 void Timer1Int() interrupt 3 using 3
34 {
35 1 static uchar s_oneSecondCounter;
36 1 TH1=(65536-10000)/256; /*设定Timer1每10ms中断一次*/
37 1 TL1=(65536-10000)%256;
38 1 if(++s_oneSecondCounter>=100) /*中断100次即为1秒*/
39 1 {
40 2 s_oneSecondCounter=0x00;
41 2 s_oneSecondFlag=0x01; /*置1秒到达标志*/
42 2 }
43 1 }
44
45
46
47
48
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 86 ----
C51 COMPILER V7.07 LEDDEMO 04/18/2006 22:51:32 PAGE 2
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -