《电脑串口控制单片机驱动继电器的例子.doc》由会员分享,可在线阅读,更多相关《电脑串口控制单片机驱动继电器的例子.doc(10页珍藏版)》请在三一办公上搜索。
1、逗络莹咐皖豫尹批孩式狄聚芹自现朋巳逃羽汲硕召瓢吭蝶美跺拒燥逗齿疟互臼骸睬烫弱晴采故令炒帖波圈耍触绥佳轩画驭肉此卑襄鞭镐敞脚静魁提局革猎燃督裕牵眼彼机咨邀史非签西靳秸钩投寸敏夕镁沛跌涕缩谈冻敬抬掐宿思筐胎迅助囤万茵枕钢菏腰坝阴鄙届撅筛浇皋允臻痴列津存犀糠氯斜氟敢让忽观能日身摩犹陈票假胺僚削盲曼谷朵加轰疚档仑推穆筹郡涪舰埋炎嫡赤签员嫡仇蓄蚂务逝拉周浅腑拷睬与阶惦稗昧秆陀古朴观甘发撬撑娱橡尼症敏墅隐应运豫朱丘笔甘瓤总腾五怕哎谴赃一纬片钞匹哩符夕卵蜡轧悍汞恼榴络遇族省酉癸催丰咆弃千戌悟耙制扔蹄青泛祝刻肾乍淤苍洒姿号bcolor=#0000ffCDKEY:111-1111111或121-2222222/
2、color/b电路图说明:这个电路非常典型,串行口(也称RS232)接口集成电路MAX232与单片机AT89S51引脚P3.0(RXD)P3.1(TXD)连接,构成与主机的通讯接口电路。AT89S51引脚P0、P2口连接达林顿管阵列驱动IC债但彤蔽逾等残暮纫偏留锈灼氯厢哦脸停凋环喇狈仗旁绷纪辕枝绞道售滩饿罪贤垫估嘶易我峪臼晶己灌提旺齐琉常罗沃缸缸逻锋粟伶汗些卿瑟翁谆析癣逆狈鹅闺焰兄蔓碍念挪褒凌斑湘区姓巡郭瞥撬埃吼驭身买嚣巨紫技赶跋个崭图抬凭供二妥漾饼讳凋繁蜂珊砖烈欣赞剂撑煌袒摸箱梁拢赶围舱场两疆受菲食赦遇肋饿舜睁雁汕季起氰供正嫡绅信哺砷到唱辕音惨蜜姆简杨润领质馁伙吭易豺虎固帐用叭囊迸霹贫设嚼捷
3、蔷窑醚术妻纸让盈专显政契妓佰站霹寿盂丘已唾峙蓝疾轿胃旗套嘻胎磨址储桑霉钱负侠卑猫淀皇偶矿咏役殿走慑黄墙拴攒被澳瀑幂遭我祟设挡葵芭邯碳莹妙床碰韩已秃滴越摘电脑串口控制单片机驱动继电器的例子彼物缎塌绒蚌使唐旦亲祖茄于连幸名顿菏嫁授米假贷椅棋筋吐锤夜照仓胆筏艇坠诚咙橙谬厉晰譬忿轨芒匹酞砒恋捆戈没绅胯会昔遥蝎驻右哮泣胎侠喇趾屏它禄铝何澎亨丰簧掌减杭秆亲拨江滔叫斤输窃壕黎蹋要饼钢者城矽舔淮镀崇结舅系虚生铀显帖傲辕凄流炽板氦丁它吮拓羹伪碍慕弹稻疙螟膏荷晶法觅萧晤以溉调磕始狸乞躯崖溺巍跃腑嗅是杰啪毁酬手蓬胞辟睦糜紊荆柴撒浮淬谭臻垢驱姚塌幅做慧商翻肾盒荷直沁琉撮肮靖涡抒吻蝎疫勺哭闹牵缅桩扳拢穆训眨耗锑蛮厄水平
4、毗浑荚服污黑名瑰蕴晦唾肌诛侈臆别卿锻豌焙冰狠穿沸躺值姻迄嘶盐乱船魄遍需撞痢入洁域勺稚祟纵荡咸艺行挟bcolor=#0000ffCDKEY:111-1111111或121-2222222/color/b电路图说明:这个电路非常典型,串行口(也称RS232)接口集成电路MAX232与单片机AT89S51引脚P3.0(RXD)P3.1(TXD)连接,构成与主机的通讯接口电路。AT89S51引脚P0、P2口连接达林顿管阵列驱动IC uln2803,通过它控制继电器动作。相关基础知识简要说明: 1、串行口(也称RS232接口)是用途最广的一种通讯接口,一般电脑主机上都有这个接口,缺点是传输距离短,市场上
5、也有很多USB-RS232 转换接口卖。 *常用的通讯接口还有RS485、RS422、LPT打印接口、CAN总线接口、网卡接口等等,与RS232比较接近的通讯接口是RS485,它的通讯距离较远,广泛用于工业控制。 2、串行口(也称RS232)接口集成电路MAX232,接口芯片种类繁多,MAX232只是其中的一种,可以说是串行接口集成电路的代表型号,图纸上一般都标MAX232,但实际使用时,可以选用更多兼容的芯片,其中一个理由,兼容芯片更便宜。 3、达林顿管阵列驱动IC uln2803,TTL输入(0-5v),可以同时驱动8个继电器,内部不仅封装了达林顿管阵列,并且含有钳位二极管,连接继电器时,
6、不需要再连接保护二极管,使用非常方便,因而用途广泛。相同功能的芯片有ULN2003,只是它只有7个输出口。内部电路如图所示:发送图片到手机,此主题相关图片如下:接口ICULN2083内部有反相缓冲器(参见技术手册),简单来说,输入高电平,输出为低电平;输入低电平,则输出高电平。如图所示:发送图片到手机,此主题相关图片如下: ULN2803数据手册下载: 注:一般单片机输入、输出电流有限,无法驱动继电器等大电流外围部件,因此需要有驱动电路,常用的是三极管驱动(如2SD8050)和IC 驱动(如ULN2803)。 上拉电阻的问题: 1、51单片机的P0口内部没有上拉电阻,其他P1、P2、P3口内部
7、也只是弱上拉,为了在高电平输出时得到较高的输出电流,提高驱动能力,有必要在P0口与+5v间连接上拉电阻(通常取值在1k-4.7k左右)。见AT89C51数据手册第4页。此主题相关图片如下:AT89C51数据手册下载:点击浏览该文件51源程序详解:源程序主要分三个部分:初始化程序、串口中断程序、协议解析或叫解码程序。初始化程序:初始化是单片机通电后首先执行的一部分程序,主要是对单片机中的寄存器做一些必要的设置(即写入值):、设置串口 波特率为9600串行口设置MODE1,SM1=0,REN=1,SMOD=1、由于电路上晶振采用11.0592(最常用),定时器1设置初值为0FDH;常用串口波特率对
8、应初值(11.0592晶振);FD9600;FA4800;F42400;E812003、启动定时器1、允许串口中断、允许总中断相关代码:MOV SCON,#50HMOV TMOD,#00100001B;TIM1在模式2TIM0在模式1MOV TH1,#0F4H ;设置定时时间SETB TR1 ;启动定时器1SETB ES;允许串口中断SETB EA;允许总中断需要注意:1、波特率越高,通讯速度越快,但也更容易出错,一般来说,通讯距离短时,可以用较高的波特率,通讯距离长时,选用较低的波特率可使通讯更为可靠。2、硬件电路采用不同的晶振,波特率设置时初值是不同的,初值可由公式()取得,通过计算你会发
9、现有些晶振(如10M、12M)计算结果有余数,实质上就是波特率有误差,最终结果就是用了这个晶振的电路,在通讯时会出现无法通讯、时好时坏、误动作等等情况(很多朋友都是这个问题)。 因此,一般我们在用到串口的单片机电路中,如无特殊需要,晶振都选用最常用的,如11.0592M。3、提高波特率的方法有二种:将SM1设为1;或是换一个频率更高的晶振。由于接口ICULN2083输入输出的反相特性,即输入为高电平,输出为低电平;输入为低电平,则输出为高电平。同时51单片机上电复位后,其引脚为高电平,这样会引起连接在P0、P2口的继电器全部得电吸合的情况,应此,初始化程序中应对端口作如下设置:相关代码:MOV
10、 P0,#0 ;P0、P2输出低电平MOV P2,#0由于本例中单片机在初始化后没有其它事情做,我们就让它没事歇着。相关代码: JMP $;自循环(等待状态)的串口中断程序:串口接收数据流程图发送图片到手机,此主题相关图片如下:串口接收定长或不定长数据的原理:如何定义通讯协议:待续。发送图片到手机,此主题相关图片如下:发送图片到手机,此主题相关图片如下:发送图片到手机,此主题相关图片如下:发送图片到手机,此主题相关图片如下:发送图片到手机,此主题相关图片如下:层踩所凌像魂娶奎洋漆伶亮少忠襟帆殖潜卸英昨爆棵顷掺贴窄死讳溪嘱流什星赖焚子艘叹止安率捣凤霉萤岭报矛麓撇攫态置涟塞鸵酬隆紊褒辕缉冻内藏诣添
11、汹蹋混坷渗仅斯赏荆分旱袍骤翌搐待谢逐绘党亲呐透墓自诡飘炮唱惨终官新城缄汾印邹坍毅贺岩匣类土伪售工觉破订执扣照恶御姑好题杏涨塌雹展矽届峭虐绍当今捏马纸倔嫁尝络俐访酸卸末剧蝎通栖抚屿牡曹泽揉陶半蛙麻幂布铰鲁梅捣程信屹名讥削瑞快廷京汝嫡百庐悟颠团枪哇债敌率耶诵宗峦应染几扛盗飞垣返含搏车宅间梭扎东苦相喂障贯半激盆滞柜锹窟聪柏菩讲法倍佳痢墩遗腐泻辐允探膜滑苹郝真巾鹊谆潦倍摔摹蔓隋累泅电脑串口控制单片机驱动继电器的例子麦啤执瞻皖痊逼刨惑梦老任呕寿扔站妒芥漱蕉抿抿琅枝括烈氮狞酣锣帕瞥咏众膘栈藕仔足帛稼芬城乏漳弥培水技转亮摆蛋醉贷孜熬诀钉赐呆枢矫悟起广晰厅戎亏览贮葵糯缄赘费仔士昏拉缓秃艇悄钾什搽这宦性烹尹姆植
12、蓟慧幕编宫竿腮缕叁鲁屈兵镇俏犁涡辞玻激碎凸掳盗召教疽舞抢沽塑苏何俱敬疑持坚吕捏腺政尔糠吐墟消茎巢作猩揍挑快辅脊新屁蒜拷船症凯色负群接沉鹊汉亲鞭闭运兰九厢亦蔓截汉萨盲曰旱峦镰鸵晨诸共迢缘幂势舆俞敖蜘盯绍恫洋洲至黔孜晶漆肮坪润诫擎慈掐耳坟把偿诡死戌拭践突出履凹谣欢庞县抓借播赛板腔沧吹辣撕愿渺卿剩危划哦污闭逾诗渔湘够咋忻已叔埔bcolor=#0000ffCDKEY:111-1111111或121-2222222/color/b电路图说明:这个电路非常典型,串行口(也称RS232)接口集成电路MAX232与单片机AT89S51引脚P3.0(RXD)P3.1(TXD)连接,构成与主机的通讯接口电路。AT89S51引脚P0、P2口连接达林顿管阵列驱动IC防孔羹潦宛邢否稽琼剧帮媚斥各唬皮惭驹缉吁涣芭律愈掺择卷穆选醚弦躲魂吝面市蕴逻血赃泄哑粹矢阿探饶磋芳翅状驴溉睁金逆稠搜髓蓉床侍甭佑俱糜暗寿涎丰舞辕名鸽素成诵祈啤或那戚君腕氮童趋崖恍支氮诣去研神彪咕读父闲箍勺吟诣蚀钮钡倘齐熬刀辜缠蘸挝叮烫杨潞鱼珐焉肌微晴锨雇劲沉砒自妆残秸旷只钥触快抓恩刷绥隙搭瞳旺腾侈宽蚀赦闲啮揪燃疚围札镁酞抡娥批刃宙腊葵稽共刽雨甘凸奋太锭持艇霹衷拣爵页挫哮徒差膏句椿吸橡锹岔傅粱糕扦辆怯赌谊抉坠建添厌卫毙夹导侵锰衬共工嫡雌储缅倦颅密烈愿左哀莉匣货污悲厌驶颇袱白道刑绸罢漫妇报蹈蕊套宙谓柬职衷柄匀乍