学习了一段时间,有了一定经验的朋友,肯定会觉得不过瘾,老是纸上谈兵,点个LED有什么用?能不能来点实际点的。好的,我们就安排一点实际一点的,这次是点亮真的电灯了,不过要注意安全,莫要发生触电事故,另外这次要用到双向可控硅了,强电没接触过的朋友,先预习吧,正好我要花点时间准备一下了。
上传啦,是一块线路板图,单面板,红线代表跳线。没有原理图,简单地说一下吧。A17是一个8芯的插针,可以用它与 单片机 的P1口相连,记得我上传的板子吗?在P1口接LED前也有一个8芯插座的位置,装上去,用一根8芯扁平电缆相连就行了,记住,两块板子要用一只电源,也就是要共地。板上用的器件,如果用外接5V电源,那么D1、D2、D3、D4及C1、C2、C3、C4、C5、C6及T9(7805)、A18(散热器)均不需要装,如果用外接交流电,则将它们装上去,A26是一插座,可以用来向单片机板供电。
IC1到IC8上使用交流光耦,型号为MOC3020,注意,MOC3020是6脚封装,由于没有找到6脚的插座,所以全是用的8脚的插座,插时最上两只不用,即靠插座底安装,R9——R16是限流电阻,470殴,1/4W,金属膜。R1——R8是限流电阻,330殴,1/2W,金属膜。T1——T8是晶闸管(可控硅),型号是BTA06-800C,用ST的比较好,6安培,800V电压,加上合适的散热片后,带500W以内的负载应没问题。A1-A8是相应的散热片的位置,我用的散热片比较小,因为只带灯,又是间隙亮,所以问题不大。P1——P5是接线端子。根据各人条件去买吧——也用不着菲尼克斯的,哈哈。
好了,一切装好,OK了,通电吧,当心,再次提醒大家,小心触电哦。电源一端接P2,另一端接到P3——P5,负载则一端接P3——P5中的一个(它们都是连着的),另一端则接P1的八个输出端子之一。
至于软件,就自已编了,原来让LED怎么亮的,现在改成了让电灯亮,如此而已。
有了这么一个东东,其实也可以让它和PC机接起来,让PC机来做流水灯或做更多的事情,顺便上传一个文件给大家玩玩,我用C++ BUILD编的,只有玩的价值,没什么用途。就是用它来控制计算机的打印接口,输出高或低电平而已。大家可以去电脑商场买一根并口电缆(不是打印电缆,是两端都可以和计算机相连的那种),载去一头,把它的八根数据线接到A17的八个输入端,然后将地线相连,就可以演示了,放心,板子是光耦隔离
关键字:C51 流水灯
引用地址:
用C51做流水灯
推荐阅读最新更新时间:2024-03-16 15:53
在Silicon IDE中集成Keil C51工具
注:编译或仿真工程必须安装Silicon IDE以及Keil软件,在本示例中,软件是安装在默认路径下 ·Silicon IDE的安装 请到 Silabs 官方网站: http://www.silabs.com/products/mcu/Pages/SoftwareDownloads.aspx?cm_sp= WebParts -_- MCUSupport -_- SWDownloads 下载安装。 ·Keil的安装 请到 Keil 官方网站: https://www.keil.com/c51/demo/eval/c51.htm 下载安装。 1、如下图所示,点击 Project - Tool Chain Integrati
[单片机]
Keil C51对C语言的关键词扩展之十六:sfr16
sfr16定义一个16位的特殊功能寄存器: sfr16 name = address; name 16位特殊功能寄存器名称 address 16位特殊功能寄存器地址 一些8051系列产品拥有16位的特殊功能寄存器,比如8052使用地址0XCC、0XCD表示定时/计数器2的低字节、高字节。C51编译器提供sfr16数据类型以便将两个8位特殊功能寄存器当做一个16位寄存器来访问。 sfr16只能在小端模式下使用,低字节的地址作为16位特殊功能寄存器的地址: sfr16 T2 = 0xCC; /* Timer 2: T2L 0CCh, T2H 0CDh */ sfr16 RCAP2 = 0xCA
[单片机]
MINI2440裸机流水灯
概述 流水灯是每个嵌入式开发者接触到一款新的控制器时最先实现的程序,本文记录了在友善之臂MINI2440平台上实现流水灯的过程。 实现原理 通过查看友善之臂提供的MINI2440原理图我们可以知道,MINI2440开发板上四个LED为共阳极接法,四个LED的N极与S3C2440的连接关系如下: LED1 GPB5 LED2 GPB6 LED3 GPB7 LED4 GPB8 当上述4个IO端口输出低电平时即可点亮对应的LED灯。 编写程序及Makefile 我们知道,S3C2440内部具有4KB的SRAM,当从NOR Flash启动时,这部分区域的起始地址为0x40000000,本次实验将使用内部SRAM作为
[单片机]
C51中float定义的实数存放形式
C51中的浮点数采用IEEE-754标准来表示,存储长度为4个字节,其中包含3个位域:数符,阶码和尾数。 (1)1位数符位:D31 (2)8位阶码:D30----D23(补码形式存放),其中D30是符号位,与一般表示方法不同,它用1表示正,用0表示负。 (3)23位尾数:D22----D0(原码形式存放)(注意第一位尾数不出现在内存中,它总是1,故省略了。) 将一个实数存数在C中的方式为: (1)将这个实数的绝对值转化成二进制格式。(整数部分:除二取余,逆序排列;小数部分:乘2取整,顺序排列。) (2)将这个二进制格式实数的小数点,左移或右移n位,直到整数部分有且只有一位有效数字(即整数部分必须为一个1)。 (3)从小数点左边第
[单片机]
单片机模拟空调温度控制器,按键设定温度和控制风力
空调温度控制器,LCD1206显示,按键设定温度和控制风力,流水灯模拟风力,红色LED指示灯代表加热电机工作,蓝色LED指示灯代表制冷电机工作。 单片机源程序如下: /*用于QX—mini5学习板*/ #include reg52.h #include LCD1602.h #include DS18B20.h //#include uart.h sbit jdq = P0^0; //用蜂鸣器代替继电器 sbit key1=P3^5; //设定温度加 sbit key2=P3^4; //设定温度减 sbit key3=P3^3; //设定风力加 sbit
[单片机]
单片机入门篇之流水灯
我用的开发板是天翔电子的TX-1C,单片机是STC89C52RC。 下面就以八个发光二极管与单片机的硬件连接图开始: 图1 要使得发光二极管点亮,就需要有电流通过它,5mA左右电流即可(电流越大,其亮度越强,但电流过大,会烧坏二极管,一般控制在3~20mA之间。)。 由上图可知:Q0~Q7端为低电平时,发光二极管就会被点亮。发光二极管与单片机P1口通过锁存器74HC573相连。 所以要使得74HC573的输出端Q0~Q7输出低电平,就得先了解锁存器的原理,其真值表如下: 图2 从真值表可以知道:当OE(输出使能)端为低电平,LE(锁存允许)端为高电平时,输出端Q0~Q7与D0~D7的状态一致。
[单片机]
C51的程序设计规范
现在 单片机 的程序设计,C51已经得到广泛的推广和应用,算是单片机的主流设计程序,甚至可以说作为单片机开发人员必须要掌握的一门语言了。 作为一门工具,最终的目的就是实现功能。在满足这个前提条件下,我们希望我们的程序能很容易地被别人读懂,或者能够很容易地读懂别人的程序,在团体合作开发中就能起到事半功倍之效。在网上请求帮助时,如能以规范的写法贴出程序,网友会比较容易地明白你的问题,则会比较快的得到网友的帮助,否则让人看上半天也不明所以然,这样就达不到预期的效果了。因此,为了便于源程序的交流,减少合作开发中的障碍,希望大家能够探讨一下C51的编程规范。把各人认为好的建议提出来,然后做一个总结,作为一种大家一致认同的规范,我认为
[单片机]
循环移位指令的流水灯
知识要点:理解熟悉移位指令 ;运行结果:P1口8个灯循环点亮 ORG 0000H;程序开始 LJMP MAIN; ORG 030H; MAIN:MOV R0,#08H;把8送入R0中, MOV A,#0FEH;把FE送入A中,即11111110 PLAY:RR A;右移动1位 MOV P1,A;输出显示 ACALL DEL;延时 DJNZ R0,PLAY;一共移动8次 AJMP MAIN;重新开始 DEL: MOV R7,#0FH;延时子程序 DEL1:MOV R6,#0FFH; DEL2:MOV R5,#
[单片机]