Ⅰ 鍗曠墖鏈哄備綍浜х敓鏂規嘗錛
浜х敓鏂規嘗鑴夊啿淇″彿鐨勬柟娉曟湁澶氱嶏紝浠ヤ笅浠嬬粛鍏朵腑涓ょ嶏細
浣跨敤瀹氭椂鍣錛氬崟鐗囨満涓鐨勫畾鏃跺櫒鍙浠ヨ緭鍑轟竴瀹氶戠巼鍜屽崰絀烘瘮鐨勬柟娉㈣剦鍐蹭俊鍙楓傚叿浣撴ラゅ備笅錛
錛1錛夎劇疆瀹氭椂鍣ㄧ殑璁℃暟鍣ㄥ垵鍊煎拰閲嶈呰澆鍊礆紝浠ョ『瀹氬畾鏃跺櫒鐨勮℃暟鑼冨洿鍜岃℃椂鍛ㄦ湡銆 錛2錛夎劇疆瀹氭椂鍣ㄧ殑宸ヤ綔妯″紡錛屼緥濡傛ā寮1鎴栨ā寮2銆 錛3錛夊紑鍚瀹氭椂鍣ㄤ腑鏂鍜岃℃暟鍣ㄣ傚畾鏃跺櫒涓鏂瑙﹀彂鏃訛紝浜х敓涓嬈℃柟娉㈣剦鍐蹭俊鍙楓
浣跨敤GPIO鍙o細鍗曠墖鏈虹殑閫氱敤杈撳叆杈撳嚭鍙o紙GPIO錛変篃鍙浠ラ氳繃璁劇疆杈撳嚭楂樹綆鐢靛鉤鐨勬柟寮忎駭鐢熸柟娉㈣剦鍐蹭俊鍙楓傚叿浣撴ラゅ備笅錛
錛1錛夊皢GPIO鍙h劇疆涓鴻緭鍑烘ā寮忋 錛2錛夐氳繃淇鏀笹PIO鍙g數騫蟲潵鐢熸垚鏂規嘗鑴夊啿淇″彿錛屽嵆鍏堝皢GPIO鍙g數騫崇疆楂橈紝緇忚繃涓瀹氭椂闂村悗鍐嶅皢GPIO鍙g數騫崇疆浣庯紝鍗沖彲鐢熸垚鏂規嘗鑴夊啿淇″彿銆
浠ヤ笂涓ょ嶆柟娉曞潎鍙浠ョ敓鎴愭柟娉㈣剦鍐蹭俊鍙鳳紝鍏蜂綋鏂規硶鍙鏍規嵁瀹為檯搴旂敤榪涜岄夋嫨銆
浠呬緵鍙傝冿紝璋㈣阿錛
Ⅱ 單片機波形發生器模擬圖怎麼調節
使用方法按下向上鍵切換波形。按下回車鍵進入頻率設置,輸入數字再按回車後保存,如果不想保存按下ESC鍵退出設置。起始時可能需要調整示波器才能正常顯示波形。頻率可調方波發生器設計,有圖,有代碼,protues模擬,易於實現。
利用數模轉換器PCF8591實現簡易波形發生器(可以輸出正弦波、方波、三角波和鋸齒波。可以通過按鍵選擇波形和頻率。事先用MATLAB生成波形數據,點數越多,波形越逼真)。
PCF8951是一個單電源低功耗的8位CMOS數據採集器件,具有4路模擬輸入,1路模擬輸出,一個串列I2C匯流排介面用來與單片機通信。三個引腳A0,A1,A2,用於編程硬體地址,允許最多8個器件連接到I2C而不需要額外的電路。器件的地址,控制以及數據都是通過I2C匯流排來傳輸。其中引腳1,2,3,4是4路模擬輸入,引腳5,6,7是I2C匯流排的硬體地址,引腳8為數字地,9腳和10腳是I2C匯流排的SDA和SCL。12腳是時鍾選擇引腳,高電平表示外部時鍾輸入,低電平表示使用內部時鍾。14腳是基準源,15腳是DAC的模擬輸出,16腳是供電電源VCC。
Ⅲ 如何用C語言編程使單片機產生方波信號
普通51的話需要模擬PWM,如果是加強版51有內置PWM模塊,
PIC和AVR以及430還有STM也有集成PWM的型號!
如果是單純輸出方波的話就簡單了。
程序如下:
//功能,按下P1_0的開關降低頻率,按P1_1為升高頻率
#include<AT89X52.H> //引用AT89X52的庫文件
#defineucharunsignedchar //替換簡稱
#defineuintunsignedint //替換簡稱
ucharsm; //定義臨時變數
voiddelay_ms(uintms) //延時子函數,一個循環12uS
{
while(--ms);
}
voidT0_IRQ(void)interruptTF0_VECTOR //定時器0中斷函數
{
TH0=sm; //將變數賦予定時器0的高位
P2_0=!P2_0; //翻轉IO
}
//寄存器初始化子函數
voidmcu_init()
{
ET0=1; //開定時器0中斷
EA=1; //開總中斷
TMOD=0x01; //設置為16位定時器0
TH0=0xFF; //填充定時器高位
TR0=1; //開定時器0
sm=0xFF; //變數初始化
}
voidmain() //主函數
{
mcu_init(); //調用初始化函數
while(1) //主循環
{
if((!P1_0)||(!P1_1)) //檢測是否有按鍵按下
{
delay_ms(8333); //延時去抖
if(!P1_0) //如果是P1_0按鍵按下
{
while(!P1_0); //等待按鍵放手
if(sm) //檢測變數不為0
{
--sm; //自減1
P2_1=1; //取消邊界LED
}
elseP2_1=0; //到達邊界點亮LED
}
elseif(!P1_1) //否則如果P1_1按鍵按下
{
while(!P1_1); //等待按鍵放手
if(sm<0xFF) //檢測變數小於0xFF
{
++sm; //自加1
P2_1=1;
}
elseP2_1=0;
}
}
}
}