📄 main.src
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)
$NOMOD51
NAME MAIN
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
IE DATA 0A8H
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
ADC_RD BIT 0B0H.7
ADC_CS BIT 0B0H.5
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
ADC_WR BIT 0B0H.6
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
DOT BIT 080H.2
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?main?MAIN SEGMENT CODE
?PR?AdcStart?MAIN SEGMENT CODE
?PR?AdcRead?MAIN SEGMENT CODE
?PR?Display?MAIN SEGMENT CODE
?DT?Display?MAIN SEGMENT DATA OVERLAYABLE
?PR?_delay_ms?MAIN SEGMENT CODE
?DT?_delay_ms?MAIN SEGMENT DATA OVERLAYABLE
?CO?MAIN SEGMENT CODE
?DT?MAIN SEGMENT DATA
EXTRN CODE (?C_STARTUP)
EXTRN CODE (?C?IMUL)
EXTRN CODE (?C?FCASTI)
EXTRN CODE (?C?CASTF)
EXTRN CODE (?C?FCASTC)
EXTRN CODE (?C?FPSUB)
EXTRN CODE (?C?FPMUL)
EXTRN CODE (?C?ULCMP)
PUBLIC SampleValue
PUBLIC RealVoltage
PUBLIC RealVoltBit
PUBLIC dot
PUBLIC bit_table
PUBLIC sled_table
PUBLIC _delay_ms
PUBLIC Display
PUBLIC AdcRead
PUBLIC AdcStart
PUBLIC main
RSEG ?DT?_delay_ms?MAIN
?_delay_ms?BYTE:
ms?445: DS 4
ORG 4
i?446: DS 4
ORG 8
j?447: DS 4
RSEG ?DT?Display?MAIN
?Display?BYTE:
CurCode?341: DS 1
ORG 1
VoltInt?342: DS 1
ORG 2
VoltDec?343: DS 4
RSEG ?DT?MAIN
RealVoltBit: DS 6
RealVoltage: DS 4
SampleValue: DS 1
RSEG ?CO?MAIN
sled_table:
DB 014H
DB 0D7H
DB 04CH
DB 045H
DB 087H
DB 025H
DB 024H
DB 057H
DB 004H
DB 005H
DB 006H
DB 0A4H
DB 03CH
DB 0C4H
DB 02CH
DB 02EH
bit_table:
DB 0DFH
DB 0EFH
DB 0F7H
DB 0FBH
DB 0FDH
DB 0FEH
dot:
DB 0FBH
; //===========================================================
; //
; //
; // COPY RIGHT
; //
; //
; //===========================================================
;
; // 文件名: Main.c
; // 创建日期: 080303
; // 创建: 神之吻
; // 描述: 作用:
; // ADC0804芯片的使用,模数转换试验
; // 现象:
; //
; // 引脚连接关系:
; // 1.用跳线将P2口的8脚与JE排插连接(即ADC0804的输出引脚DB0-DB7对应单片机的P20-P27)
; // 2.用跳线将P35连接JC5(即ADC0804的片选信号CS接单片机的P35引脚)
; // 3.用跳线将P36连接JC6(即ADC0804的启动转换信号WR接单片机的P36引脚)
; // 4.用跳线将P37连接JC7(即ADC0804的读取转换结果控制信号RD接单片机的P37引脚)
; //
; //------------------------------------------------------------
;
;
; //********************************************************
; //* 头文件
; //********************************************************
;
; #include <reg52.h>
;
; //*******************************************************
; //* 常量定义
; //*******************************************************
;
; // TRUE/FALSE定义
; //---------------------------------------------------
; #ifndef TRUE
; #define TRUE 0xFF
; #endif
;
; #ifndef FALSE
; #define FALSE 0x00
; #endif
;
; // 引脚宏定义
; //---------------------------------------------------
; sbit ADC_CS = P3^5; //ADC0804片选控制信号
; sbit ADC_WR = P3^6; //ADC0804启动转换信号WR
; sbit ADC_RD = P3^7; //ADC0804读取转换结果控制信号RD
; sbit DOT = P0^2; //八段数码管小数点控制位
;
; #define DB P2 //ADC0804的转换结果DB0-DB7
; #define BITCODE P0 //八段数码管的位编码
; #define BITCHOOSE P1 //位选择,在数码管的六位中选择一位显示
;
;
;
; // 其它常量宏定义
; //---------------------------------------------------
; #define VREF 10 //参考电压:由于ADC0804的Vref/2外接电压5V,因此进行ADC转换的参考电压为10V
; #define FULLSCALE 256
;
; //********************************************************
; //* 类型定义
; //********************************************************
;
; // 类型重命名
; //---------------------------------------------------
; typedef unsigned char BOOLEAN; //布尔类型变量
; typedef unsigned char uint8; //无符号8位整型变量
; typedef signed char int8; //有符号8位整型变量
; typedef unsigned int uint16; //无符号16位整型变量
; typedef signed int int16; //有符号16位整型变量
; typedef unsigned long uint32; //无符号32位整型变量
; typedef signed long int32; //有符号32位整型变量
; typedef float fp32; //单精度浮点数(32位长度)
;
; //********************************************************
; //* 全局变量声明
; //********************************************************
;
; // 与八段数码管有关的表定义
; //---------------------------------------------------
; uint8 code sled_table[] = { // 位编码
; 0x14, // 0
; 0xD7, // 1
; 0x4C, // 2
; 0x45, // 3
; 0x87, // 4
; 0x25, // 5
; 0x24, // 6
; 0x57, // 7
; 0x04, // 8
; 0x05, // 9
; 0x06, // A
; 0xA4, // B
; 0x3C, // C
; 0xC4, // D
; 0x2C, // E
; 0x2E // F
; };
;
; uint8 code bit_table[] = { // 位选
; 0xDF, // bit0
; 0xEF, // bit1
; 0xF7, // bit2
; 0xFB, // bit3
; 0xFD, // bit4
; 0xFE, // bit5
; };
;
; uint8 code dot = 0xFB; // 小数点位置
;
; //与ADC0804采样芯片有关的数据结构
; //-----------------------------------------------------
; uint8 SampleValue; //直接从ADC0804的DB引脚取出的二进制采样结果
; fp32 RealVoltage; //转换后的实际电压值
; uint8 RealVoltBit[6]; //转换后地实际电压值的每一位编码值(用于八段数码管显示)
;
; //********************************************************
; //* 函数原型
; //********************************************************
;
; void AdcStart();
; void AdcRead();
; void Display();
; void delay_ms(uint32 ms);
;
; //********************************************************
; //* main函数
; //********************************************************
;
; main()
RSEG ?PR?main?MAIN
main:
USING 0
; SOURCE LINE # 133
; {
; SOURCE LINE # 134
?C0001:
; while(TRUE)
; SOURCE LINE # 135
; {
; SOURCE LINE # 136
; AdcStart(); //启动一次ADC0804采样
; SOURCE LINE # 137
LCALL AdcStart
; delay_ms(100); //延时100ms,等待采样结束
; SOURCE LINE # 138
MOV R7,#064H
MOV R6,#00H
MOV R5,#00H
MOV R4,#00H
LCALL _delay_ms
; AdcRead(); //完成一次采样后,从ADC0804的DB引脚读取采样值
; SOURCE LINE # 139
LCALL AdcRead
; Display(); //将采样结果在八段数码管显示出来
; SOURCE LINE # 140
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -