51单片机 C语言ADC程序怎么写

51单片机 C语言ADC程序怎么写,第1张

typedef unsigned char BYTE

typedef unsigned int WORD

#include "reg51.h"

#include "intrins.h"

/*Declare SFR associated with the ADC */

sfr ADC_CONTR = 0xBC

sfr ADC_RES = 0xBD

sfr ADC_LOW2= 0xBE

sfr P1ASF = 0x9D

sfr P2M0 = 0x96

sfr P2M1 = 0x95

/厅卖*Define ADC operation const for ADC_CONTR*/

#define ADC_POWER 0x80

#define ADC_FLAG0x10

#define ADC_START 0x08

#define ADC_SPEEDLL 0x00

#define ADC_SPEEDL 0x20

#define ADC_SPEEDH 0x40

#define ADC_SPEEDHH 0x60

//延时知宽

void Delay(WORD n)

{

WORD x

while (n--)

{

x = 5000

while (x--)

}

}

//初始AD寄存器

void InitADC()

{

P1ASF = 0xff

ADC_RES = 0

ADC_CONTR = ADC_POWER | ADC_SPEEDLL

Delay(2)

}

//AD转换

BYTE GetADCResult(BYTE ch)

{

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START

_nop_()

_nop_()

_nop_()

_nop_()

while (!(ADC_CONTR &ADC_FLAG))

ADC_CONTR &= ~ADC_FLAG

return ADC_RES

}

void main()

{ BYTE temp

P2M1=0 P2M0=0x03 //搭伏亮P2.0和P2.1强推挽

InitADC()

while (1)

{

temp=GetADCResult(0)//转换P1.0

if(temp>1)

P2|=0x03//P1.0有电压 P2.0和P2.1输出高

else

P2&=0xFC//P1.0无电压 P2.0和P2.1输出低

}

}

HS26Fxx-C_Demo_Code-GPIO初始化函数

功能:GPIO初始化函数

void GPIO_Init(void)

函数声明

//.h文件声明***************************************************************************

void GPIO_Init(void) //IO初始化

1

2

1

2

函数定义

//.c文件函数定义****************************************************

/*System initial sub function<<===================================*/

//******************************************************************

void GPIO_Init(void)

{

//P0_IO_init

P0 =0x00u //-000 0000

P0M =0xFFu //-111 1111 InOut 0=in / 1=out

P0UR=0x00u //-000 0000 UP_pull 0=dis / 1=en

P0PD=0x00u //-000 0000 DOWN_pull 0=dis / 1=en

P0W =0x00u //0000 0000 Wakeup 0=dis / 1=en

//P1_IO_init

P1 =0x00u //---- -000

P1M =0xFFu //---- -111 InOut 0=in / 1=out

P1UR=0x00u //---- -000 UP_pull 0=dis / 1=en

P1PD=0x00u //---- -000 DOWN_pull 0=dis / 1=en

P1W =0x00u //0000 0000 Wakeup 0=dis / 1=en

//P2_IO_init

P4 =0x00u //0000 0000

P4M =0xFFu //1111 1111 InOut 0=in / 1=out

P4UR=0x00u //0000 0100 UP_pull 0=dis / 1=en

P4PD=0x00u //0000 0000 DOWN_pull 0=dis / 1=en

P4W =0x00u //0000 0000 wakeup 0=dis / 1=en

//******************************************************

FGIE=0 /* 总中断使能位 <<======================*/

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

函数调用

GPIO_Init() //端口初始化

1

1

打开CSDN,阅读体验更佳

s3c2440硬件学习笔记----GPIO接口

一、GPIO介绍 GPIO(General Purpose Input Output)意为通用输入输出端口,简单说就是一些引脚,通过它们禅历输出高低电平或者通过它们读取引脚高低电平状态 S3C2440有130个I/O端口,分为A-J共9组:GPA、GPB、、、、GPJ,可以通贺禅搜过设置寄存器来确定某个引脚袭桐用于输入、输出还是特殊功能。 比如:可以设置GPH6作为输入、输出、或者用于串口。 1、通过寄...

继续访问

MTK Android7.0 gpio口控制demo

MTK6737平台,暴露底层给上层的设备节点控制接口。简单的gpio口控制demo。

ioremap_gpio_demo.c

ioremap demo对应博客介绍 https://xuesong.blog.csdn.net/article/details/114156170

用C控制GPIO

http://forum.cubietech.com/forum.php?mod=viewthread&tid=405&reltid=876&pre_thread_id=0&pre_pos=6&ext=CB 用C控制GPIO的代码[可以直接看CPU占用率了] http://forum.cubietech.com/forum.php?mod=viewthread&tid=405 #in

继续访问

HS26Fxx-C_Demo_Code-延时函数

HS26Fxx-Dome_Code void Delay_Us(unsigned char Delay_Cnt) //{xx.h}文件中声明延时函数************************************************ void Delay_Us(unsigned char Delay_Cnt)//延时函数 //{.c}定义延时函数*********************************************************************** /

继续访问

HS26Fxx-C_Demo_Code-ADC相关函数的定义与使用

HS26Fxx-C_Demo_Code-ADC相关函数的定义与使用 功能:测试AD采样功能 void ADC_Init(void) unsigned long ADC_Data_Collect(unsigned char ADC_Input_Pin,unsigned char ADC_AIN) 1.AD相关函数声明 //.h文件声明*************************************************************************** void ADC_Init

继续访问

HS26Fxx-C_Demo_Code-中断函数、中断子函数的定义与使用

HS26Fxx-C_Demo_Code-中断函数、中断子函数的定义与使用 功能:定时器TC0中断程序参考 void __interrupt[0x08] Interrupt(void)//无需声明 void __interrupt Interrupt_Demo(void) 中断子函数 函数声明 //中断子函数函数声明*********************************************************************** void __interrupt Interrupt

继续访问

HS26Fxx-C_Demo_Code-测试函数RF格式,UART格式的定义与使用

HS26Fxx-C_Demo_Code-测试函数RF格式,UART格式的定义与使用 功能:利用示波器或者UART串口工具测试 void Send_Dat_For_Test(unsigned char Test_Dat) 1.测试函数函数声明 //.h文件声明*************************************************************************** void Send_Dat_For_Test(unsigned char Test_Dat)

继续访问

HT66FXX.zip_HT-IDE3000_HT66Fxx_ht_ht-46_ht66f

HT单片机HT66F系列最基本的实用教程中文资料完全版

最新发布 C8051FXX-boot-loader-.zip_boot loader

主要描述了C8051F0XX系列单片机的引导装入程序考虑及举例

stc8_demo程序.rar_DEMO_STC8 PCA_stc8_stc8 pwm_stc8a8

stc8,DEMO程序: uart stc8aid delay IO timer adc pwm pca

cape-fxx.rar_1c60deac5d48_dcfxx_fxxee_out_tof_cape beagle

FXX_DRV_VER 0.1 AM335 interface functions: int ioctrl_init(void) int ioctrl_cleanup(void) uint32_t *ioctrl_remap(uint32_t *addr_ptr, size_t block_len) int ioctrl_unmap(uint32_t *addr_ptr, size_...

fxx.zip_c 语言微分_telephonew1j_产品代码fxx

常微分代码,主要是C语言方面的,大家可以下载看看的

HT66FXX-EEPROM.rar_单片机开发_Asm_

HT66FXX-EEPROM的读写及应用说明文档

FXX_PR3_NV.rar

FXX_PR3_NV.rar,FXX_PR3_NV.xml

合泰单片机例程资料,HT66FXX FLASH例程,源码学习.rar_DEMO_ht66f50 _newsz3i_合泰 学习_合

合泰单片机HT66F50例程工程源程序,合泰各种例程demo都在里面

HC89F3xx1_Touch_Demo_Code V1.0.5.0_fourt1r_HC89F3XXX_芯圣_DEMO_芯圣程

芯圣HC89FXX系列触摸程序,调好的。官方下载。

STM32F103ZET6 - USB_DFU 升级

STM32F103ZET6 - USB_DFU 升级 前言: 记录下碰到的坑!! 仿真时发现读按键状态函数HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin),无论是判断等于1还是0,仿真都能进入纠结很久,然后查看GPIOx_IDR寄存器, 发现没问题,按键按下时该位为0,不按为1经查找发现是IDE优化等级问题,STM32CubeMX生成的代码默认优化等级为...

继续访问

单片机

编程语言

写评论

评论

收藏

点赞

P1ASF是选择哪个口模拟AD转换功能孙局尺,(1<<ADC_CH0)(ADC_CH0相当于0)故P1ASF第0位被置1,选择P1.0为模拟通道。

第二个则高是对ADC_CONTR寄存腊配器进行了设置,(1 <<7)将第八位置1,(1 <<5)将第六位置1,ADC_CONTR = ADC_360T | ADC_ON 将ADC_CONTR寄存器第六位和第八位置1,具体功能就是开启AD转换,选择转换速度。

如有不对请指正!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12373009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存