久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
用STC12C5616AD單片機(jī)的AD模塊碰到了一些問題
[打印本頁]
作者:
loveDNF四
時間:
2019-7-2 21:33
標(biāo)題:
用STC12C5616AD單片機(jī)的AD模塊碰到了一些問題
大家好,最近有個項目可能會用到標(biāo)題中的12C5616AD單片機(jī),在用它的AD模塊時遇到了一些障礙代碼如下,基本就是檢測一個IO口的電壓,然后通過這個電壓來控制另一個IO口的高低,但是燒進(jìn)去之后并沒有反應(yīng),仿真之后發(fā)現(xiàn),
ADC_CONTR這個寄存器雖然被賦值了,但是AD根本沒有啟動轉(zhuǎn)換,ADC_FLAG這一位始終沒有變1。
特來請教,有沒有同樣遇到這個問題的。
頭文件什么的還用過STC12C5630AD.H,KEIL中device也選的STC對應(yīng)型號,但是仿真發(fā)現(xiàn),ADC_CONTR寄存器根本不能賦值。
單片機(jī)源程序如下:
#include <reg52.h>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
//-----------------------------------------------
#define FOSC 11059200L
#define T1MS (65536-FOSC/1000) //1T模式
sfr AUXR = 0x8e;
sfr ADC_CONTR = 0xC5; //ADC control register
sfr ADC_DATA = 0xC6; //ADC high 8-bit result register
sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register
sfr P1M0 = 0x91; //P1 mode control register0
sfr P1M1 = 0x92;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
#define ADC_POWER 0x80 //ADC電源控制位10000000
#define ADC_FLAG 0x10 //ADC完成標(biāo)志00010000
#define ADC_START 0x08 //ADC起始控制位00001000
#define ADC_SPEED 0x60 //90個時鐘
void Delay(u16 n);
void InitADC();
u16 ADC();
u8 ch = 7; //ADC通道號
u16 i;
void main()
{
InitADC(); //初始化ADC
while (1)
{
i=ADC();
if(i>512)
{
P10 = 1;
}
else P10 = 0;
}
}
void InitADC()
{
P1M0 = P1M1 = 0x80;
ADC_DATA = 0; //Clear previous result
ADC_CONTR |= 0x80;
Delay(256); //ADC上電并延時
}
u16 ADC()
{
ADC_DATA=0;
ADC_CONTR=0x60;
ADC_CONTR=0xE0;
ADC_CONTR=0xE7;
Delay(256);
ADC_CONTR=0xEF;
while(1)
{
if(ADC_CONTR & 0x10) //1110 1111 & 0001 0000
{
break;
}
}
ADC_CONTR=0xE7;//1110 0111
return ((ADC_DATA<<8)|ADC_LOW2);
}
void Delay(u16 n)
{
u16 x;
while (n--)
{
x = 5000;
while (x--);
}
}
復(fù)制代碼
作者:
angmall
時間:
2019-7-3 21:57
12C5616AD單片機(jī) KEIL不能仿真AD轉(zhuǎn)換
給你改了,對比一下就知道哪里錯了。
#include <reg52.h>
#include <intrins.h>
typedef unsigned char u8;
typedef unsigned int u16;
//-----------------------------------------------
#define FOSC 11059200L
#define T1MS (65536-FOSC/1000) //1T模式
sfr AUXR = 0x8e;
sfr ADC_CONTR = 0xC5; //ADC control register //ADC控制寄存器
sfr ADC_DATA = 0xC6; //ADC high 8-bit result register //ADC轉(zhuǎn)換結(jié)果高位寄存器
sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register //ADC轉(zhuǎn)換結(jié)果低位寄存器
sfr P1M0 = 0x91; //P1 mode control register0
sfr P1M1 = 0x92;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
#define ADC_POWER 0x80 //ADC電源控制位10000000
#define ADC_FLAG 0x10 //ADC完成標(biāo)志00010000
#define ADC_START 0x08 //ADC起始控制位00001000
#define ADC_SPEED 0x60 //90個時鐘
void Delay(u16 n);
void InitADC();
u16 ADC();
u8 ch = 7; //ADC通道號 //設(shè)置 P1.7 為ADC 采樣通道
u16 i;
void main()
{
InitADC(); //初始化ADC
while (1)
{
i=ADC();
if(i>512)
{
P10 = 1;
}
else P10 = 0;
}
}
void InitADC()
{
P1M0 = P1M1 = 0x80;
ADC_DATA = 0; //Clear previous result
ADC_CONTR = 0x80; //ADC_POWER 80 | ADC_SPEEDLL 00
Delay(256); //ADC上電并延時
}
u16 ADC()
{
u16 ADCResult=0;
//ADC_DATA=0;
//ADC_CONTR=0x60;
//ADC_CONTR=0xE0;
//ADC_CONTR=0xE7;
//Delay(256);
ADC_CONTR=0x8F; // ADC_POWER 80 | ADC_SPEEDLL 00 | ch 07 | ADC_START 08
_nop_(); //Must wait before inquiry
_nop_(); //等待4個NOP
_nop_();
_nop_();
while(1) //等待ADC轉(zhuǎn)換完成
{
if(ADC_CONTR & 0x10) //1110 1111 & 0001 0000
{
break;
}
}
//ADC_CONTR=0xE7;//1110 0111
ADC_CONTR &= ~0x10; //Close ADC
ADCResult= ADC_DATA; //ADC轉(zhuǎn)換高位結(jié)果
ADCResult= ((ADCResult<<8)| ADC_LOW2); //ADC轉(zhuǎn)換結(jié)果
return (ADCResult); //Return ADC result
}
void Delay(u16 n)
{
u16 x;
while (n--)
{
x = 5000;
while (x--);
}
}
復(fù)制代碼
作者:
buzm
時間:
2019-7-4 21:01
借用了adc初始化函數(shù)和ADC轉(zhuǎn)換函數(shù),但不知道怎么改引腳(ADC轉(zhuǎn)換通道),能幫一下忙嗎?謝謝。
作者:
老來所學(xué)
時間:
2023-4-20 21:28
angmall 發(fā)表于 2019-7-3 21:57
12C5616AD單片機(jī) KEIL不能仿真AD轉(zhuǎn)換
給你改了,對比一下就知道哪里錯了。
AD程序沒反應(yīng)
作者:
coody_sz
時間:
2023-4-21 13:31
到STC官網(wǎng)下一個例子試試吧,很老的IC了。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕在线观
|
色片在线观看
|
日韩在线一区二区三区
|
97超在线视频
|
亚洲一区二区在线
|
成人欧美一区二区三区在线观看
|
久草网站
|
国产精品一二三区在线观看
|
中文字幕一区二区三区精彩视频
|
在线观看中文字幕亚洲
|
欧美狠狠操
|
亚洲成人av在线
|
午夜视频在线免费观看
|
99精品亚洲国产精品久久不卡
|
日本一区二区在线视频
|
一区二区三区四区在线视频
|
国产1区
|
av大全在线观看
|
一区二区三区四区电影视频在线观看
|
日本在线一区二区三区
|
天天精品综合
|
久久久精品视频免费看
|
www国产成人免费观看视频,深夜成人网
|
黄色大片视频
|
久久一级大片
|
亚洲成人一区二区
|
欧美一级视频在线观看
|
精品久久久久国产免费第一页
|
午夜小视频在线播放
|
精品三级在线观看
|
熟女毛片
|
久久av网
|
91精品国产综合久久精品图片
|
久久影音先锋
|
黄色在线免费观看
|
成人一区在线观看
|
国产精品久久久久久福利一牛影视
|
国产aⅴ精品
|
久久久久亚洲精品
|
国内自拍视频在线观看
|
在线免费黄色小视频
|