例:让该端口输出高电平的语句是:
setb p1.0
让该端口输出低电平的语句是:
clr p1.0
好了,现在我们将小灯接在单片机的p1.0端口上,如下图所示:
由上图可知,当端口p1.0输出高电平时,小灯d不亮,因为小灯中不会有电流通过;当端口p1.0输出低电平时,小灯就亮,因为此时小灯中有电流通过。
要让小灯亮一会儿、灭一会儿,还必须要有一个延时的程序,下面就是让小灯亮一会儿、灭一会儿,交替闪烁的程序:
main:;程序开始
setb p1.0;让p1.0输出高电平
lcall delay;这一行是调用延时子程序
;目的是让p1.0保持高电平
;多停留一段时间
clr p1.0;让p1.0输出低电平
lcall delay;这一行也是调用延时子程序
;和刚才一样,让p1.0保持低
;电平停留一段时间,其实就
;是让它多亮一会儿再熄灭
ljmp main;跳转到main处执行(循环)
;以下是延时子程序,有关该延时程序的内容以后再学
delay: mov r7,#250
d1: mov r6,#250
d2:djnz r6,d2
djnz r7,d1
ret
end
在以上汇编程序中,延时子程序每一行的具体含义先不管他,以后慢慢学到,上面的程序需要在一个名为“keil uvision2”的软件中汇编完成,汇编后得到一个*.hex文件,这就是目标文件,然后用编程器将该文件“写”到单片机89s51中,这样该89s51就具有自动控制小灯闪烁的功能了。
在实验的时候,通常用发光二极管led代替小灯,由于led工作电压小,由此led要串接一个小电阻,用220欧姆——1k之间的都行,我用的是510欧姆的。
这样还不够,单片机工作还需要两个条件,一是需要加上一定的工作电压,at89s51工作电压为5v,第20脚接负极,第40脚接正极;另外还要给单片机安装一个心脏起搏器,就是振荡器,通常叫做时钟,只要在18脚和19脚之间接一个石英晶体就行了,我用的是12mhz的,另外为了保证振荡器稳定工作,还要在18脚、19脚分别接一个27pf的小电容到地(就是接到负极),此外,89s51的第9脚为复位端,要接一个10uf电容到正极,再接一个10k电阻到负极,最后,第31脚也要和电源的正极接起来,关于31脚,以后再说,这样一台由单片机控制的会自动闪烁的小灯就做好了。下面是完整的电路图:
没有使用的管脚空着就行了,什么也不用接。一通上电,小灯就开始不停的闪烁了。大约1秒钟闪烁3——4次。
原文标题:跟我来编一个最简单的单片机程序
文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
我们来盘点国内主流的汽车试验场
土壤肥料速测仪是什么,它的作用是什么
大容量电池+大内存,OPPO A11s成千元机明星单品
气动角座阀的安装方法是怎样的,一起来看看吧
苹果在可穿戴设备领域继续领跑 耳机成为第三季度增长最快的可穿戴设备
让小灯交替闪烁的单片机程序
脉冲电容器的应用领域
电视基础
加速推进建设超快充、大功率电动汽车充电设施
移动显示触摸屏技术的发展趋势将会如何
HAPs商用领域广泛,市场空间潜力巨大
如何制作倒立摆机器人
Ubuntu的实时内核 (Real-Time Kernel) 即将GA
Simulink集成模型测试太慢怎么办?
华为EMUI5.0新增救命功能很给力,3大指关节功能供你享玩,乐趣不停歇!
基于高导电石墨烯组装薄膜的毫米波/短距离无线通信天线
US381-000002-006BG传感器工作原理及优缺点分析
专门针对数字光投影仪而优化的电源设计
如何设计一款无人搬运车?
第17届中国国际工业博览会在国家会展中心(上海)拉开帷幕