① 基於單片機的電話自動撥號器的程序
你要是用MT8888的話,我之前做過有一段代碼可以試試。
其實這個創意已經被做了無數遍了,沒啥前途...
② 8052單片機怎樣讀出8421BCD碼撥碼開關設定的數值
void read()
{
unsigned char ge,shi; //用兩個變數來存放轉換後的個位(ge)與十位(shi)
unsigned char temp_P1;//用來存放P1口的狀態
temp_P1=~P1; //讀取P1口並取反,例如P1口為1010 1100則temp_P1=0101 1100
temp_P1=temp_P1&0x0f;//去掉高4位後temp_P1=0000 1100
shi=temp_P1/10; //讀取二進制數0000 1100的十位,此例中等到數據「1」
ge=temp_P1%10; //讀取二進制數0000 1100的個位,此例中等到數據「2」
//至此,成功把單片機P1.0,P1.1,P1.2,P1.3狀態(1100)轉換成十進制數12,並分別保存在變數shi,ge中
}
③ 51單片機怎麼寫編碼器的程序
可以用T0或T1的計數器模式來處理編碼器的脈沖信號。
④ 單片機怎樣讀取撥碼開關然後把它用數碼管顯示出來
首先設計硬體,然後根據硬體寫代碼。
P1口不夠接就用三態緩沖器。
開啟三態緩沖器,讀數據,存數據到內存,然後切換三態緩沖器再讀數據到內存,調用顯示子函數在數碼管上顯示出來。
⑤ 用51單片機讀取撥碼開關的C程序,兩個8421撥碼開關
假如DIP開關接P1,共8位,檢測後通過串口發送出去。
#include<reg51.h>
main()
{
TMOD=0x20;
SCON=0x50;
TH1=0xfd;
TL1=0xfd;
TR1=1;
TI=0;
while(1)
{
if(P1!=0xff)
{
SBUF=P1;
while(!TI);
TI=0;
}
}
}
⑥ 單片機讀取8421撥碼開關的程序
GET8421:
MOVA,P1
CPLA
ANLA,#0FH
MOV22H,A
MOVA,P1
SWAPA
CPLA
ANLA,#0FH
MOV23H,A
MOVA,P2
CPLA
ANLA,#0FH
MOV24H,A
MOVA,P2
SWAPA
CPLA
ANLA,#0FH
MOV25H,A
RET

⑦ 51單片機如何控制電話撥號,原理是什麼電路如何接謝謝了。
有專門用於單片機控制撥號的晶元,,撥號線D0,D1,D2,D3能排列成十六種狀態,能出16種雙音頻信號或15鍾脈沖信號.單片機用四條線控制D0,D1,D2,D3,再用兩條線控制/CE和ACK就可。
單片機,全稱單片微型計算機(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數器(Timer/Counter)、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出介面簡單,功能較低。由於其發展非常迅速,舊的單片機的定義已不能滿足,所以在很多應用場合被稱為范圍更廣的微控制器;從上世紀80年代,由當時的4位、8位單片機,發展到現在的32位300M的高速單片機。
⑧ 麻煩大神用C語言寫一段程序,4位撥碼開關控制3個LED的程序。
#include"reg51.h"
sbitled_1=P0^0;
sbitled_2=P0^1;
sbitled_3=P0^3;
intmain(void)
{
while(1)
{
switch(P2&0x0F)
{
case12:
case8:
case7:
case9:
case10:
case11:
case13:
case14:
case15:led_1=0;led_2=1;led_3=1;break;
case4:
case5:
case6:led_1=1;led_2=0;led_3=1;break;
case0:
case1:
case2:led_1=1;led_2=1;led_3=0;break;
}
}
}
⑨ 飛思卡爾單片機 撥碼開關控制LED燈 主程序
飛思卡爾單片機的普通輸入輸出的某一個埠同一時刻只能做輸入或者輸出。且需事先初始化埠寄存器。'0'為輸入,『1』為輸出。同時要清空數據寄存器內容。 比方說使用PORTA_PA0口控制單個外部共陽指示燈的顯示,顯然為輸出控制。可以這樣寫
/*初始化*/
DDRA=0X01;//定義方向寄存器輸出,也可以寫成0Xff 只是其他的7個口不用
PORTA_PA0=1;//共陽 初始化指示燈不亮
/*主函數*/
PORTA_PA0=0;//PA0埠輸出0 低電平 指示燈亮
比方說使用PORTA_PA3口讀取外部電平信號,顯然為輸入控制。可以這樣寫
/*初始化*/
DDRA=0X00;//定義方向寄存器輸入,8個埠全為輸入
/*主函數*/
unsigned char LED;
LED=PORTA_PA3;//讀入埠數據
你上面的程序 我的理解是這樣的,程序事先有宏定義LED_DD、 led :
LED_DD = 0x0F; //方向寄存器 高四位輸入(撥碼開關) 低四位輸出
led = 0xFF; //給定初始值
for(;;)
{
Num = led; //讀撥碼開關
led = Num>>4; //送顯示
delay(10);
}
單片機微控制器的工作原理是靠內部時鍾晶振來執行程序的,每一個時鍾周期執行一步程序。其實for循環前面的程序僅僅是完成單片機埠初始化、系統參數初始化。程序一直在for循環和中斷服務程序里執行,也就是遵循掃描的原理。 沒了for循環 你的程序就只能讀取埠的狀態一次執行到main()函數最後一條指令就停止工作了。
⑩ 求3位撥碼開關的程序代碼,用來對51系列單片機進行編址的。
撥碼開關 作為 電路板地址 就是 根據 那幾個IO口的電平的讀取值,來給電路板一個地址值的,,,
准確的說, 5位撥碼開關,讀到的值最大是31 , 地址就相對的是0-31了
在讀撥碼開關的狀態的時候,先把 那幾個IO口 置1 ,然後再進行狀態讀取 ,