?? int1.lst
字號:
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE INT1
OBJECT MODULE PLACED IN INT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE INT1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * INT1中斷計數 3位數碼管顯示 P1.4按鍵 為電平觸發方式,按P3.3連續計數 *
3 * P1.5按鍵 為下降延觸發方式,按P3.3加1計數 *
4 ********************************************************************************
5 * 日期: 2008-2-25 硬件: 數碼管P0,數碼管控制P2 *
6 * P1.4 按鍵,P1.5按鍵,為觸發方式選擇,P3.3接按鍵,為計數鍵 *
7 * 作者: 深圳志博電子有限公司 專業8051單片機教學站 *
8 * 郵箱: zty0012001@163.com *
9 * 網站: http://www.elecmcu.com http://www.elecmcu.com 更多例程請登陸網站 *
10 ********************************************************************************
11 * 硬件:此程序在本公司志博電子實驗儀運行通過 *
12 ********************************************************************************
13 * 【版權】 Copyright(C)深圳志博電子有限公司 www.elecmcu.com All Rights Reserved *
14 * 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
15 ********************************************************************************/
16 #include < reg51.h >
17 #include <intrins.h>
18 #define uchar unsigned char
19 #define uint unsigned int
20 uchar const seg[11]={0x7f,0x44,0xbd,0xf5,0xe6,0xf3,0xfb,0x65,0xff,0xf7,0x00};
21 uchar dis[8]={0,0,0,0}; //設置顯示緩沖存儲器
22 unsigned char count,k5_count=0 ;
23 sbit K1=P1^4;
24 sbit K2=P1^5;
25 /********************************************************
26 * 延時函數 *
27 ********************************************************/
28 void delay(uint ms)
29 // 延時子程序
30 {
31 1 uchar k;
32 1 while(ms--)
33 1 {
34 2 for(k = 0; k < 120; k++);
35 2 }
36 1 }
37 /********************************************************
38 * 數據處理與顯示函數 *
39 ********************************************************/
40 void disp_count()
41 {
42 1 char i=0;
43 1 char k=0;
44 1
45 1 dis[3]=count/100;
46 1 dis[4]=(count%100)/10;
47 1 dis[5]=count%10;
48 1 for (i = 0; i < 6; i++)
49 1 { //循環顯示6位數據
50 2 switch (i)
51 2 {
52 3 case 0:
53 3 P0=0Xdf;
54 3 P1=P1|0X03;
55 3 break;
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 2
56 3 case 1:
57 3 P0=0XBF;
58 3 P1=P1|0X03;
59 3 break;
60 3 case 2:
61 3 P0=0X7F;
62 3 P1=P1|0X03;
63 3 break;
64 3 case 3:
65 3 P0=0XFF;
66 3 P1=0xfe;
67 3 break;
68 3 case 4:
69 3 P0=0XFF;
70 3 P1=0XFd;
71 3 break;
72 3 case 5:
73 3 P0=0Xef;
74 3 P1=0xff;
75 3 break;
76 3 }
77 2 P2=seg[dis[i]];
78 2 delay(1);
79 2 }
80 1 }
81 /********************************************************
82 * 主程序 *
83 ********************************************************/
84 void main(void)
85 {
86 1 P0=0xff;
87 1 P1=0xff;
88 1 P2=0xff;
89 1 IT1=0; //低電平觸發
90 1 EA=1;
91 1 EX1=1;
92 1 while(1)
93 1 {
94 2 if(K1==0)
95 2 {
96 3 IT1=0; //低電平觸發
97 3 delay(20);
98 3 }
99 2 if(K2==0)
100 2 {
101 3 IT1=1; //下降沿觸發
102 3 delay(20);
103 3 }
104 2 disp_count();
105 2 }
106 1 }
107 /********************************************************
108 * INT1中斷函數 *
109 ********************************************************/
110 void counter(void) interrupt 2
111 {
112 1 uchar x;
113 1 EX1=0;
114 1 count++;
115 1 for(x=0;x<15;x++)
116 1 {
117 2 disp_count();
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 3
118 2 }
119 1 EX1=1;
120 1 }
121 /********************************************************/
122
123
124
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 243 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 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 + -