//程序实现A/D转换功能,A/D采用中断方式。该程序通过pIC 单片机 p18f458的RA2模拟通道送入一直流电压,
//当送入的直流电压大于2.5V时,与PORTD口相连的8个发光二极管闪动,当直流电压恢复到
//http://www.51hei.com 单片机 网提供此ad转换程序,有问题请联系本站。
//2.5V以下时,发光二极管停止闪动,且只有低四个发光。
#include "p18f458.h"
union adres
{
int y1;
unsigned char adre[2];
}adresult; //定义一个共用体,用于存放A/D转换的结果
unsigned char i;
unsigned int j;
void InterruptHandlerHigh(void);
//系统各I/O口初始化子程序
void initial()
{
TRISD=0X00; //D口为输出
i=0x00;
}
//A/D转化初始化子程序
void adinitial()
{
INTCON=0X00; //禁止总中断和外围中断
ADCON0=0x51; //选择A/D通道为RA2,打开A/D转换器
//在工作状态,且使A/D转换时钟为8tosc
ADCON1=0X80; //转换结果右移,及ADRESH寄存器的高6位为"0"
//且把RA2口设置为模拟量输入方式
PIR1bits.ADIF=0; //清除A/D转换标志
PIE1bits.ADIE=1; //A/D转换中断允许
INTCONbits.PEIE=1; //外围中断允许
IPR1bits.ADIP=1; //B口变位中断高优先级
RCONbits.IPEN=1; //使能中断优先级
PORTAbits.RA2=1; //设置RA2为输入方式
}
//延时子程序
void delay()
{
for(j=5535;--j;) continue;
}
//报警子程序
void alarm()
{
i=i^0xFF; //通过异或方式每次把i的各位值取反
PORTD=i; //D口输出i的值
}
//高优先级中断向量,
#pragma code InterruptVectorHigh=0x08
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh //跳到中断程
_endasm
}
//高优先级中断服务程序
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh ()
{
PIR1bits.ADIF=0; //清除中断标志
adresult.adre[0]=ADRESL;
adresult.adre[1]=ADRESH; //读取并存储A/D转换结果,A/D转换的结果通过共
//用体的形式放入了变量y1中
if(adresult.y1>0x200)
{
alarm(); //如果输入的模拟量大于2.5V(对应数字量
//0X200h),则调用报警子程序
delay(); //调用延时子程序,使电压检测不要过于频繁
}
else PORTD=0XF0 ; //如果输入的模拟量小于2.5V,则与D口相连的
//8个发光二极管的低4个发亮,表示系统正常
ADCON0bits.GO=1; //启动下一次A/D转换
}
//主程序
main()
{
adinitial(); //A/D转换初始化
initial(); //系统各I/O口初始化
INTCONbits.GIE=1; //总中断允许
ADCON0bits.GO=1; //启动A/D转换
while(1)
{
;
} //等待中断,在中断中循环检测外部电压
}
关键字:pic单片机 p18f458 中断转换
引用地址:
pic单片机p18f458A/D中断转换程序
推荐阅读最新更新时间:2024-03-16 15:48
基于K9F6408U0A和SPDS202A的数码录音系统设计原理
K9F6408U0A 是三星公司生产的与非型64兆位快闪存储器,它具有工作电压低、擦写速度快、体积小等优点。SPDS202A的台湾凌阳公司生产的语音芯片。文中介绍了以SPDS202A为核心的数码录音系统,同时介绍了实现两片 K9F6408U0A 之间拷贝功能的具体方法。最后给出了相关的硬件接口及软件程序。
1 K9F6408U0A 的性能简介 K9F6408U0A 的最大优点在于其命令、数据和地址均可通过8条I/O口线与主控制器进行通信。这样就大大简化了系统的连线,增强了系统的稳定性。除8条I/O口线外, K9F6408U0A 还包括以下几条控制线,从而可方便地实现系统主控制器对 K9F6408U0A 的控制。它们分别为:
[嵌入式]
STC12C5A60S2使用NRF24L01和stm32通信
/******************************************/ // // 该程序工作的主频是12MHz,单片机使用STC12C5A60S2 // /******************************************/ #include STC12C5A60S2.H #define uchar unsigned char #define uint unsigned int /********** NRF24L01寄存器操作命令 ***********/ #define READ_REG 0x00 //读配置寄存器,低5位为寄存器地址 #define WRITE_REG
[单片机]
三维立体挂号 国内首家“3D虚拟医院”开张
兰亭、流水、荷花池……新建的省中医院南院美景,栩栩如生地展现在电脑屏幕上。昨天,江苏省中医院院长方祝元宣布该院“3D虚拟医院”正式上线。从停车场到门诊大楼,从南院花园到北院病区,从门诊大厅到科室内景……全省首家3D虚拟医院不仅实景再现医院一草一木,还提供路线指引、导航导停、三维人体立体挂号、专家在线交流咨询等特色服务。
“患者”来到医院门口。(江苏省中医院网络虚拟医院截图)
网上医院的挂号功能。(江苏省中医院网络虚拟医院截图)
据了解,江苏省中医院的网络虚拟医院运用世界领先的3D仿真网页技术,依托医院官方网站,将江苏省中医院优美的外部环境和医院内部门诊、科室、住院部、体检中
[医疗电子]
液晶电视在3D领域应用的优缺点分析
优点: 1、 液晶电视 更加轻薄时尚。 液晶电视是通过电极控制 液晶 分子的状态来达到 显示 目的,即使屏幕加大,厚度也不会增加,在重量上相比 等离子电视 也要轻得多。目前市面上的3D液晶电视普遍采用 LED背光源 ,相比普通液晶电视,可以更加超薄。 2、液晶电视拥有更高的分辨率和清晰度。 液晶电视从刚一面世就以高分辨率和清晰度占领市场,目前市场上的3D液晶电视产品,都采用FULL HD级别高清晰 面板 ,物理分辨率都已达到1920*1080全高清分辨率,可以欣赏到真正的全高清画面。 3、液晶电视耗电量更低,使用寿命较长。 在耗电量和使用寿命上,液晶电
[电源管理]
125W D类超低音功率放大器电路设计
用LM4651和LM4652设计的125W D类超低音功率放大器电路如图所示。该放大器在总谐波失真THD=1%下的输出功率为125W,负载阻抗RL=4Ω,输入信号Vin(rms)最高电平为3V,输入信号带宽为10~150Hz,环境温度为50℃,电源电压为±20V。 采用28脚DIP封装的LM4651是PWM控制/驱动器IC,内置振荡器、PWM比较器、误差放大器、反馈放大器、电平移位与高端驱动器、低端驱动器及欠压、过热、短路和过调制保护电路。LM4652是采用15脚(其中6、8、9、{11}、{12}脚未连接)TO-220封装的半桥功率MOSFET IC,4只MOSFET的击穿电压V(BR)DSS=50V,漏极电流ID=10
[嵌入式]
智能锁NV340D语音芯片的功能特点解析
智能锁是一种利用现代科技和物联网技术实现智能化控制的电子锁具,通过与智能手机、智能家居等设备的连接,实现门锁的语音控制、指纹识别、密码锁定、门锁远程监控、日志记录、电子虚拟钥匙等一系列智能化功能。 一、智能锁语音提示功能的价值? 语音提示功能可以规范正确使用流程 ,提高用户便利性。通过语音提示,比如“请输入指纹”、“门锁已打开”等。语音导航正确操作流程不仅可以提高用户的使用体验,还可以降低人为操作带来的错误风险,从而提高整个系统的可靠性、稳定性和安全性。 二、智能锁语音芯片选型? 智能锁语音提示功能通常可以通过置入OTP语音芯片来实现。NV340D语音芯片可以提供高品质的语音功能,无需额外的处理器或存储设备,因此被广泛用于
[嵌入式]
LG Stylo 7、三星A82等新机出现在谷歌的支持文档
谷歌今天更新了一份支持文件,增加了对七个不同的Android制造商的未发布设备的参考型号,包括LG Stylo 7和三星Galaxy A82。 这份名为 Google Play Services for AR 兼容的设备列表 - 以前称为ARCore - 主要为增强现实体验提供支持,例如实现如谷歌搜索中的3D动物。 在列表中,你会发现一些顶级的Android手机 以及一些不太知名的型号。今天,谷歌更新了名单,又增加了23款支持其AR服务的Android设备,其中大部分是最近发布的。然而,新增加的设备中,有近一半是尚未发布的设备,甚至在某些情况下还没有公布。 这些机型分别是: 华硕Zenfone 8 Flip、LG Stylo
[手机便携]
同步D触发器原理
为了避免同步RS触发器的输入信号同时为1,可以在S和R之间接一个“非门”,信号只从S端输入,并将S端改称为数据输入端D,如图15-8所示。这种单输入的触发器称为同步D触发器,也称D锁存器。 由图可知,S=D,R= 当CP=0时,触发器的状态Q维持不变。当CP=1时,若D=1,则S=1, R= =0,故Qn+1=1;若D=0,则S=0,R= S=1,故Qn+1=0。由此得到同步D触发器的状态转移真值表13-6,由状态转移真值表可直接列出同步D触发器的状态方程Qn+1=D 同步D触发器逻辑功能表明:只要向同步触发器送入一个CP,即可将输入数据D存入触发器。CP过后,触发器将存储该数据,直到下一个CP到来时为止,故可锁存数据
[模拟电子]