推荐阅读最新更新时间:2024-03-16 14:40
51单片机多机通信电路图及C语言程序
多机通信电路图 此处,U1作为主机,U2为从机1,U3为从机2。 多机通信C语言程序 (1)主机程序 #include #include #define _SUCC_ 0x0f//数据传送成功 #define _ERR_ 0xf0//数据传送失败 unsigned charTable ={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; unsigned char Buff ; //数据缓冲区 unsigned char temp=0xff; sbit KEY1=P1^6; sbit KEY2=P1^7; //unsigned char addr; //延时1ms函数 void de
[单片机]
51单片机PWM控制LED亮灭
设计思路:用定时器中断产生最小时间单位T0,每m个T0组成一个子 周期 T10,其中前n个T0为LED导通时间,即Ton=n*T0,则Toff=(m-n)*T0 ;每X个T10组成一个母周期T20,其中前y个T10为有效控制时间,后续的(x-y)个T10令LED熄灭或者子周期占空比调至最小。 ;适当调节n/m和x/y的比例使显示效果达到最佳。 ;以下是刚刚调试通过的小段程序,显示效果良好。 ;实验过程本人有一种推测,不知是否成立: ;子周期的最小占空比的宽度应大于LED的点亮时间,即点亮LED的时间宽度n/m*T0应足够产生余辉。类似于动态数码管对点亮时间的要求。 ;母周期的宽度应小于1/50s,提高刷新频率以令肉眼察觉不出闪烁。
[单片机]
51单片机基础之外部中断(一)
代码: #include reg51.h typedef unsigned char u8; typedef unsigned int u16; sbit LED=P2^0; sbit KEY=P3^2; void delay(u16 i) { while(i--); } void EXIT0_Init(void) //外部中断初始化 { IT0=1;//跳变沿触发方式(下降沿),低电平触发 EX0=1;//打开INT0的中断允许,打开外部中断0允许 EA=1;//打开总中断 } void main(void) { EXIT0_Init(); while
[单片机]
51单片机中的串口中断模式
最近在写51的串口,遇到一些问题,折腾了十天左右,终于解决了,串口接收数据,用的中断模式,在一个有四层嵌套的while循环中,最底层的循环中使用串口数据,结果发来的数据不正常,一般是第一次没有发过来,第二次的时候一起把第一次的数据一起送上来,而且这种现象是我在用到xdata数据以后就会出现(不管程序中哪个地方用到),要是都用idata就不会出现这个问题,很是奇怪,说实话,我至今没有找到原因,但是找到一个解决办法,分享一下: 在最底层的while循环中,不采用中断接收串口数据,而是采用查询的方式接收串口数据,这样的话就正常了
[单片机]
51单片机——定时器/计数器
1.概述 8051单片机内部有T0和T1两个定时器/计数器。它们既可用作定时器,也可用作计数器,可以通过编程来设置其使用方法。 2.定时器/计数器 2.1 定时功能 2.2.1 定时功能的用法 当定时器/计数器用作定时器时,可以用来计算时间。如果要求单片机在一定的时间后产生某种控制,可将定时器/计数器设为定时器。单片机定时器/计数器的定时功能用法如图1所示。 图1 定时器/计数器的定时功能用法 要将定时器/计数器 T0设为定时器,实际上就是将定时器/计数器与外部输入断开,而与内部信号接通,对内部信号计数来定时。单片机的时钟振荡器可产生12MHz的时钟脉冲信号,经12分频后得到1MHz的脉冲信号
[单片机]
单片机成长之路(51基础篇) - 013 MCS-51单片机控制详解–T2M
T2CON:定时器控制寄存器 寄存器地址0C8H,位寻址0C8H~0CFH。 位地址 CF CE CD CC CB CA C9 C8 位符号 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 TF2:T2溢出标记 当T2溢出时TF2=1,TD2只能用软件清除 当RCLK=1或TCLK=1时,TF2将不置位 EXF2:T2外部标记 当EXEN2=1时,T2EX/P1.1引脚上的负跳变引起T2的捕捉/重装操作,此时EXF2=1。在T2中断允许时,EXF2=1将引起中断,EXF2只能用软件清除。在T2的向上、向下计数模式下(DCEN=1)EXF2的置
[单片机]
51单片机ADC0832电压测量液晶1602显示的C程序与proteus仿真
很早对AD转换感兴趣,也想自己业余做块单片机开发板,让广大的电子设计爱好者学习使用单片机。 今天通过搜索,整理了proteus 7可以仿真通过的基于51单片机+ADC0832电压采集并通过液晶1602显示电压的C程序及电路连接图,希望对大家有所帮助。 程序是谁写的谁修改的并不主要,主要的是学会并使用单片机AD转换,这才是王道。 电路连接图如下: C程序如下: #include reg52.h #include intrins.h #include math.h /**********************************8/ /**********LCD1602接口程序*********
[单片机]
基于8051单片机的数控电源设计方案
本文介绍了以8051单片机为控制单元,以数模转换器DAC0832输出参考电压,以该参考电压控制电压转换模块LM350的输出电压大小。该电路设计简单,应用广泛,精度较高等特点.LM350系列三端可调式集成稳压器的方法。 关键词:单片机(MCU),数模转换器(DA),掉电存储器(EEPROM)。 引言 目前所使用的直流可调电源中,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。利用数控电源,可以达到每步0.1V的精度,输出电压范围0~15V,电流可以达到2A。 系统结构 图1:硬件系统结构图 对选用芯片说明 DAC0832是一款常用的数摸转换器,它有两种连接模式,一种是电
[单片机]