




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、void delay2s(void) /誤差-0.000000000111usuchar code num=0,1,2,3,4,5,6,7,8,9;/口顯示STC12C5A60S2 內部 ADC 轉換串口顯示程序(已經驗證成功)#include#include intrins.htypedef unsigned charuchar; typedef unsignedint uint;/*#define ADC_POWER 0 x80源設置ADC_CONTR控制寄存器*/ADC電源控制為0:關閉AD轉換電源1:打開AD轉換電#define ADC_FLAG 0 x10/ ADC轉換結束標志位,A
2、D轉換后自動置1,/由軟件清零(這里作取反使用)#define ADC_START 0 x08/ ADC轉換啟動控制位,設置為1時開始AD轉換,/轉換結束后為0#define ADRJ_ 0 x04(ADC_RES,ADC_RESL)數據格式調整控制位/ ADRJ為0時,10位AD轉換結果的高 中,低2位存放在ADC_RES的低2位/ ADRJ為1時,10位AD轉換結果的高低2位中,低8位存放在ADC_RESL/ AUXR1寄 存 器 的ADRJ位 是 轉 換 結 果 寄 存 器8位存放在ADC_RES2位存放在ADC_RES#define ADC_SPEEDLL 0 x00 #defineA
3、DC_SPEEDL 0 x20 #defineADC_SPEEDH 0 x40 #defineADC_SPEEDHH 0 x60 / 90/540/ 360/ 180個時鐘周期轉換一次個時鐘周期轉換一次個時鐘周期轉換一次個時鐘周期轉換一次(最低速) (低速) (高速) (最高速)uchar ch =0;/模擬通道字符數組,輸出到串void delay2s(void) /誤差-0.000000000111usvoid delay2ms(void) /unsigned char a,b;for(b=129;b0;b-)for(a=45;a0;a-);誤差0.000000000000usunsign
4、ed char a,b,c,n;for(c=142;c0;c-)for(b=168;b0;b-) for(a=250;a0;a-);for(n=2;n0;n-);_nop_(); /if Keil,require use intrins.h串口通信部分*uchar wj_uun =!;/用于存放串口1接收的字符voidbt_uart_init(void)/SCON=0X50;SM0 = 0;允許串口接收/單片機串口初始化/ SM0=0 SM1=1 SM2=0 REN=1/串口工作方式1:1位起始位,8位數據位,1位停止位SM1 = 1;REN = 1;/允許串口接收/RI=1; /接收標志位,
5、0:正在接收1:接收完畢(如果TMOD = 0X20;/定時器T1工作方式2TH1 = 0XFD;/ 9600bit/s下的定時器初值TL1 = 0XFD;TR1 = 1;/啟動定時器T1EA = 1;/開總中斷ES = 1;/開串行口中斷RI=1就一直執行串口中斷)1發送函數void s1_send_char(uchar dat) /*串口/*/發送端(發送的是字符)SBUF = dat;while(!TI);TI = 0;void s1_send_string(uchar*pt) while(*pt != 0) s1_send_char(*pt+);/TI/將字符送入發送緩沖寄存器為發送狀
6、態標志位,0:發送中1:發送結束 手動清零標志位/通過調用發送字符函數來發送字符數組/*void ADC_Init(void) / P1ASF = 0 x01;口都能模擬輸入)ADC_RES = 0;ADC_RESL = 0;AUXR1 &= ADRJ_;/設置P1口的0為模擬輸入端口(經過測試這句寫不寫P1先清空兩個寄存器/ ADRJ為0的存儲格式(參考技術手冊)ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ch;開啟ADC電源并且啟動ADC /經過最少四個時鐘周期之后才能夠正確讀取到ADC_CONT的值delay2ms();EADC = 1
7、;/允許ADC中斷/* voidmain()主函數*P4SW = 0 x70;bt_uart_init();ADC_Init();while(1) / ADC/ P4端口的4、5、6腳可作為通用串口初始化初始化/* ADC void ADC_(void)interrupt 5uint adc_result = 0;/ while(!(ADC_CONTR & ADC_FLAG); /ADC_FLA(位置1/ ADC_CONTR &= ADC_FLAG; /下面有覆蓋)if(ADC_CONTR & ADC_FLAG) ADC_RESL &=0 x03;adc_res
8、ult = ADC_RES*4 + ADC_RESL;/中斷函數*/ ADC中斷編號為5如果未轉換結束,等待I/OADC_CONTR寄存器清零ADC轉換結束標志位(這句可以不寫, 因為獲取到10AD轉換值s1_send_string(通道號:s1_send_char(numch););/通過串口發送通道號s1_send_string(轉換值:s1_send_char(numadc_result/1000););/一共四位數s1_send_char(numadc_result%1000/100);s1_send_char(numadc_result%100/10);s1_send_char(numadc_result%10);if(+ch3)ch = 0;/不斷切換通道號0、1、2、3/再次設置ADC_CONTR寄存器ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ch; delay2s();/*void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞資員代表全權3篇
- 合規自律我做起3篇
- 醫療設備招標采購文件3篇
- 增補合同條款3篇
- 員工股份制合同協議書3篇
- 健身房會員合同協議范本版3篇
- 液力機械在家具生產設備中的應用考核試卷
- 棉織造行業D打印技術與應用考核試卷
- 綠色出行與節能環保考核試卷
- 熱電聯產系統在能源可持續發展中的貢獻考核試卷
- 新進(轉崗)職工三級安全教育培訓表
- GB/T 44347-2024鄉村綠化技術規程
- (修訂版)糧油質量檢驗員理論考試復習題庫-下多選、判斷題
- 保險行業客戶畫像分析與精準營銷方案
- 滬教版小學六年級數學應用題150道及答案
- 北師大版四年級下冊小數乘法豎式計算練習100題及答案
- 2024年湖南省長沙市中考地理試卷真題(含答案解析)
- 《中國健康成年人身體活動能量消耗參考值》(編制說明)
- 食堂大米采購招標文件
- CJT 216-2013 給水排水用軟密封閘閥
- CJ-T250-2018建筑排水用高密度聚乙烯(HDPE)管材及管件
評論
0/150
提交評論