⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.src

📁 51与ADC0804的编程实现的具体方法
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; .\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 + -