下載手機(jī)汽配人

跪求!ADC0809CCN轉(zhuǎn)換器 89c52單片機(jī) C語言程序 主要想要0809的時(shí)鐘振蕩程序 我想要個(gè)AD時(shí)鐘為500KHZ的程

我是初學(xué)者 求高手指點(diǎn) 0809那個(gè)時(shí)鐘真不知怎么弄了 最好給個(gè)用定時(shí)器做的C語言程序;尤其定時(shí)器裝初值 標(biāo)下怎么來的 謝謝各位大蝦們 不勝感激 懸賞分就這么多了 也不好意思了 謝謝各位
提問者:網(wǎng)友 2017-09-22
最佳回答
#include "reg52.H"#include "string.h"#include "intrins.h" #define uint unsigned int #define uchar unsigned char//模擬量測量::ADC0809#define ADC P0sbit ALE = P2^7;sbit ENABLE = P2^5;sbit START = P2^4;sbit EOC = P3^7;sbit CLK = P3^4;uchar ADC0809(void)//模擬量采集{ uchar adc=0; ALE=1;_nop_();ALE=0;//地址鎖存 START=1;_nop_();START=0;//啟動(dòng)轉(zhuǎn)換 wait:if(EOC==0)goto wait;//等待轉(zhuǎn)換結(jié)束 _nop_();ENABLE=1;_nop_();//讀數(shù)據(jù) adc=ADC;_nop_();ENABLE=0; return adc;//返回轉(zhuǎn)換值}void Time0(void) interrupt 1 using 0//ADC0809時(shí)鐘信號(hào){ CLK=~CLK;} void Timer0Init(void)//定時(shí)器T0初始化{ TMOD = 0x02; TH0 = 0xce; TL0 = 0xce; ET0 = 1; TR0 = 1;}定時(shí)器采用模式2,8位自動(dòng)重裝初值方式。初值計(jì)算方法:時(shí)鐘頻率設(shè)計(jì)為500kHz,則定時(shí)時(shí)間t=1/f=1/500k=50us采用12M晶振,機(jī)器周期為1us根據(jù)公式:定時(shí)時(shí)間t=(2^8-x)*1us計(jì)算初值x=2^8-50/1=256-50=206=0xce改程序是已經(jīng)實(shí)現(xiàn)過的,希望可以幫助你。
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號(hào)?立即注冊

我要提問

汽配限時(shí)折扣

本頁是網(wǎng)友提供的關(guān)于“跪求!ADC0809CCN轉(zhuǎn)換器 89c52單片機(jī) C語言程序 主要想要0809的時(shí)鐘振蕩程序 我想要個(gè)AD時(shí)鐘為500KHZ的程”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。