|
10黑幣
怎么通過鍵盤來給DA設(shè)置模擬電壓,這是原理圖
_P70L~JWLYYD8P(%_OVDF[8.png (70.97 KB, 下載次數(shù): 45)
下載附件
2018-6-8 12:48 上傳
- /**************************************************************************************
- * DA-PWM輸出實(shí)驗(yàn) *
- 實(shí)現(xiàn)現(xiàn)象: 具體接線操作請(qǐng)參考視頻
- 下載程序后DA模塊上的指示燈呈呼吸燈效果,由暗變亮再由亮變暗
- 注意事項(xiàng):要將AD/DA模塊上的短接片將OUT和LED短接,板子絲印上有。
- ***************************************************************************************/
- #include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
- typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
- typedef unsigned char u8;
- //--定義使用的IO口--//
- sbit PWM=P2^1;
- bit DIR;
- //--定義一個(gè)全局變量--//
- u16 count,value,timer1;
- /*******************************************************************************
- * 函 數(shù) 名 : Timer1Init
- * 函數(shù)功能 : 定時(shí)器1初始化
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void Timer1Init()
- {
- TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開啟動(dòng)。
- TH1 = 0xFF;
- TL1 = 0xff; //1us
-
- ET1=1;//打開定時(shí)器1中斷允許
- EA=1;//打開總中斷
- TR1=1;//打開定時(shí)器
- }
- /*******************************************************************************
- * 函 數(shù) 名 : main
- * 函數(shù)功能 : 主函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main()
- {
- Timer1Init(); //定時(shí)器1初始化
- while(1)
- {
- if(count>100)
- {
- count=0;
- if(DIR==1) //DIR控制增加或減小
- {
- value++;
- }
- if(DIR==0)
- {
- value--;
- }
-
- }
- if(value==1000)
- {
- DIR=0;
- }
- if(value==0)
- {
- DIR=1;
- }
-
- if(timer1>1000) //PWM周期為1000*1us
- {
- timer1=0;
- }
- if(timer1 <value)
- {
- PWM=1;
- }
- else
- {
- PWM=0;
- }
- }
- }
- /*******************************************************************************
- * 函 數(shù) 名 : Time1
- * 函數(shù)功能 : 定時(shí)器1的中斷函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void Time1(void) interrupt 3 //3 為定時(shí)器1的中斷號(hào) 1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2 4 串口中斷
- {
- TH1 = 0xFF;
- TL1 = 0xff; //1us
- timer1++;
- count++;
- }
復(fù)制代碼
|
|