📄 max134.lst
字号:
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAX134
OBJECT MODULE PLACED IN .\新建文件夹\max134.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE max134.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\新建文件夹\max134
-.obj)
line level source
1 /*the main programe structure*/
2 /*****************************************
3 *硬件连接定义:
4 *MCU >>>>MAX134
5 *P1.0>>>>A0
6 *P1.1>>>>A1
7 *P1.2>>>>A2
8 *P1.3>>>>RD
9 *P1.4>>>>D0
10 *P1.5>>>>D1
11 *P1.6>>>>D2
12 *P1.7>>>>D3
13 *P3.7>>>>WR
14 *P3.3>>>>EOC
15 ************************************/
16 #include <stdio.h>
17 #include <reg51.h>
18 #include <math.h>
19 #include "system_hssm.h"
20
21 unsigned char ge,shi, bai, qian, jiaozhun,cr0,cr1,cr2,cr3,cr4,FSCode=3,RangeCode=1;
22 unsigned char FSCodeM=0,RangeCodeM=0;
23 char RangeM,sp3;
24 char SelectF=0,SelectR=0;/*ControlCode=22;/*31;*/
25 int Y=0,eoc=0,temp=0,i=0,j=0,Rref,Radjust,ling_py;
26 bit pyfh,zong_fh;
27 int Rx=0;
28 void rcm(),dcvm(),readbcd(),zeroc();
29 sbit WR_134 = P3^7;
30
31
32 void delay(void);
33 //void delay1(void);
34 void delay50ms();
35 void EOCR();
36 void MVF();
37 void MRF();
38 void MCF();
39 void MDF();
40 void MIF();
41 void test_setting(void);
42 void test_task(void);
43
44 /*************************************
45 *涵数名:test_setting();
46 *涵数功能:根据键盘输入设置测试参数
47 *并进行显示
48 *KEY1 = TEST_FUNCTION -
49 *KEY2 = TEST_FUNCTION +
50 *KEY3 = TEST_RANGECODE-
51 *KEY3 = TEST_RANGECODE+
52 **************************************/
53 void test_setting(void)
54 {
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 2
55 1 byte key;
56 1 key=key_task();
57 1 if(key!=0)
58 1 {
59 2 switch(key)
60 2 {
61 3 case 1:
62 3 if(FSCode!=1)
63 3 {
64 4 FSCode--;
65 4 RangeCode=1;
66 4 }
67 3 break;
68 3 case 2:
69 3 if(FSCode!=7)
70 3 {
71 4 FSCode++;
72 4 RangeCode=1;
73 4 }
74 3 break;
75 3 case 3:
76 3 if(RangeCode!=1)
77 3 {
78 4 RangeCode--;
79 4 }
80 3 break;
81 3 case 4:
82 3 if(RangeCode!=6)
83 3 {
84 4 RangeCode++;
85 4 }
86 3 break;
87 3 default:
88 3 break;
89 3 }
90 2 sx_test_FS(); //UPdate disp
91 2 }
92 1
93 1 }
94
95
96 /*************************************
97 *涵数名:test_task();
98 *涵数功能:根据设置的参数进行相应的测量
99 *并并进行显示
100 **************************************/
101 void test_task(void)
102 {
103 1 P3&=0X7F; //P3.7置零,写控制信号WD有效
104 1 P1=0X68; //在零地址写入6:开蜂鸣器,并将蜂鸣器的频率选择为4096HZ
105 1 delay(); //延时
106 1 P1=0X00; //写入地址.开读并将地址和数据都设置成零,此是读写信号都有效 ???
107 1 delay(); //延时
108 1
109 1
110 1 if(FSCode==1||FSCode==2) //检测现在要执行的功能代号如果等于功能1和功能2就执行电压测量
111 1 {
112 2 //P3=0XF0; //控制继电器,形成电压测试电路
113 2 MVF(); //调用电压测量涵数
114 2 P1=0X3C; //将读零操作置有效
115 2 delay1();
116 2 WR_134=0;
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 3
117 2 delay1();
118 2 WR_134=1;
119 2 delay1(); //以上均为置读操作有效
120 2 EOCR(); //读零转换结果
121 2 if(Y>=6000)//如果读取的零偏移是负数
122 2 {
123 3 Y=10000-Y; //解析出负数的绝对值
124 3 Y=65536-Y; //将数据纠正成有符号的INT数据型的表示方法。
125 3 }
126 2 ling_py=Y; //储存正确的零偏移量
127 2 P1=0X1C; //将读零操作置无效
128 2 delay1();
129 2 WR_134=0;
130 2 delay1();
131 2 WR_134=1;
132 2 delay1(); //以上为取消读零转换的操作,使其读输入的实际值
133 2 //EOCR();
134 2 EOCR(); //读取转换数据
135 2 if(Y>=6000) //检测读出的数据是不是负数,如果是负的数,就解析对应的绝对值并表示成INT类型的有符号数
136 2 {
137 3 Y=10000-Y;
138 3 Y=65536-Y; //将数据纠正成有符号INT数据型的表示方法。
139 3 }
140 2 Y=Y-ling_py;
141 2 if(Y<0)
142 2 {
143 3 zong_fh=1;
144 3 Y=65536-Y; //将有符号数据转换成无符号数据以便于后面的显示转换。
145 3 }
146 2 else
147 2 zong_fh=0;
148 2
149 2 }
150 1
151 1 //----------------------------------------------------------------------------------------------
152 1 else if(FSCode==3)
153 1 {
154 2 //P3=0XF9; //前端形成电阻测量电路//
155 2 //P3=0XE9;
156 2 //delay();
157 2
158 2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -