dianya.lst
来自「数字电压表.rar」· LST 代码 · 共 128 行
LST
128 行
C51 COMPILER V7.50 DIANYA 05/04/2009 22:05:19 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DIANYA
OBJECT MODULE PLACED IN dianya.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE dianya.c DEBUG OBJECTEXTEND
line level source
1 #include"reg52.h"
2 #include"intrins.h"
3 #define ad_con P2
4 #define addata P0
5 #define Disdata P1
6 #define uchar unsigned char
7 #define uint unsigned int
8 //sbit button_C=P2^7;
9 sbit ALE=P2^3;
10 sbit START=P2^4;
11 sbit OE=P2^5;
12 sbit EOC=P2^6;
13 sbit AddA=P2^0;
14 sbit AddB=P2^1;
15 sbit AddC=P2^2;
16 bit keynum;
17 bit keyon;
18 unsigned char add_howl;
19 uchar code dis_7[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
20 /*共阳7段LED断码表 “0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“不亮”*/
21 uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; //4位列扫描控制字
22 uchar data ad_data; //定义数据内存单元
23 uint data dis[5]={0x00,0x00,0x00,0x00,0x00};
24 uchar ledcode[4];
25 uint n,m; //定义4个显示数据单元和1个数据占存单元
26 /********************1ms延时子函数*************/
27 /*delay1ms(uint t)
28 {
29 uint i,j;
30 for(i=0;i<t;i++)
31 for(j=0;j<120;j++)
32 ;
33 }
34 */
35 void delayms(unsigned char ms) // 延时毫秒@12M,ms最大值255 精确度高
36 {
37 1 unsigned char i;
38 1 while(ms--)
39 1 for(i = 0; i < 124; i++);
40 1 }
41
42
43
44 scan(unsigned char dat,bit mv) //数码管显示
45 {
46 1 uchar data i=0x00,j=0x00;
47 1 dis[2]=dat/51;
48 1 dis[4]=dat%51;
49 1 dis[4]=dis[4]*10;
50 1 dis[1]=dis[4]/51;
51 1 dis[4]=dis[4]%51;
52 1 dis[4]=dis[4]*10;
53 1 dis[0]=dis[4]/51;
54 1 if(mv==0)
55 1 {
C51 COMPILER V7.50 DIANYA 05/04/2009 22:05:19 PAGE 2
56 2 ledcode[0]=dis_7[dis[0]];
57 2 ledcode[1]=dis_7[dis[1]];
58 2 ledcode[2]=dis_7[dis[2]]-0x80; //共阳极
59 2 ledcode[3]=dis_7[dis[3]];
60 2 }
61 1
62 1 for(i = 0; i < 4; i++) //扫描
63 1 {
64 2 P3 = scan_con[j];
65 2 P1 = ledcode[i];
66 2 delayms(1);
67 2 j++;
68 2 }
69 1 j=0;
70 1 }
71 test(unsigned char Add) //输入通道 Add=0 通道0; Add=1 通道1;
72 {
73 1 AddA=Add;
74 1 AddB=0;
75 1 AddC=0;
76 1 ALE=1;_nop_();_nop_();ALE=0;
77 1 START=1;_nop_();_nop_();START=0;
78 1 _nop_();_nop_();_nop_();_nop_();
79 1 while(EOC==0);
80 1 OE=1;ad_data=addata;OE=0;
81 1 ad_con=0xc0;
82 1 }
83 main()
84 {
85 1 dis[3]=0;
86 1 P0=0xff;
87 1 P2=0xc0;
88 1 P1=0xff;
89 1 P3=0xff;
90 1 while(1)
91 1 {
92 2
93 2
94 2 if(keynum==0)
95 2 {
96 3 test(0);
97 3 scan(ad_data,keynum);
98 3 }
99 2
100 2
101 2 }
102 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 232 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?