① 基于单片机的电话自动拨号器的程序
你要是用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 ,然后再进行状态读取 ,