📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 01/25/2010 17:30:35 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************************************************************************
2 说明;继电器控制使用了12V外部电源,所以在使用时连接仿真器的同时还要外接12V电源从J1输入,不然在下载时会
3 弹出一个检测到未上电的对话框.
4 本程序的功能: 使用定时器1产生中断使继电器周期性的断开闭合
5 要求:打开拨码开关J11的1脚
6 **************************************************************************************************/
7 #include <sh88f516.h>
8
9 unsigned char i=0;
10 bit time1flag;
11 main()
12 {
13 1 char i,j=0;
14 1 CLKCON = 0x00;
15 1
16 1 P4M0 = 0x00;
17 1 P4M1 = 0x10; //P4_7推挽输出模式
18 1
19 1 TMOD = 0x10; //定时器工作方式1,16位
20 1 TH1 = 0xF6; //(65536-1536)/16M=4ms
21 1 TL1 = 0x00;
22 1
23 1 TR1 = 1; //开始计数
24 1 ET1 = 1; //打开定时器1中断
25 1 EA = 1; //打开总中断
26 1
27 1
28 1 while(1)
29 1 {
30 2 if(time1flag)
31 2 {
32 3 time1flag = 0;
33 3 i++;
34 3 if(i>10)
35 3 {
36 4 i=0;
37 4 P4_7 = ~P4_7; //Relay control bit
38 4 }
39 3
40 3 if(j<11)
41 3 {
42 4 P1_5=~P1_5;
43 4 P1_4=~P1_4;
44 4 j++;
45 4 P1_7=~P1_7;
46 4 P1_6=~P1_6;
47 4
48 4 }
49 3 P1_2=~P1_2;
50 3 P1_3=~P1_3;
51 3 }
52 2
53 2
54 2 }
55 1
C51 COMPILER V8.08 MAIN 01/25/2010 17:30:35 PAGE 2
56 1
57 1 }
58
59
60 void TIME1_INT() interrupt 3 //定时器1的中断号为3.
61 {
62 1
63 1 ET1 = 0; //close定时器1中断
64 1 TH1 = 0x06; //(65536-1536)/16M=4ms
65 1 TL1 = 0x00; //(65536-1536)/16M=4ms
66 1 i++;
67 1 if(i>=250) //250ms*4=1s
68 1 {
69 2 i = 0;
70 2 time1flag=1;
71 2 }
72 1 ET1 = 1; //打开定时器1中断
73 1
74 1 }
75
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 100 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -