![]() |
|
||||||||||||||
| | 网站首页 | 综合电子 | 51单片机 | AVR单片机 | ARM专栏 | MSP430 | 网上商城 | PSOC | 下载中心 | 公司事项 | DSP专栏 | | ||
|
||
|
|||||
| 红 绿 灯 程 序 | |||||
| 红 绿 灯 程 序 | |||||
作者:admin 51单片机来源:网络 点击数: 更新时间:2007-8-4 ![]() |
|||||
|
;单片机AT89s52控制的倒计时控制电路, ;2005/3 ;P2.2--红灯输出(继电器1) ;P2.3--绿灯输出(继电器2) ;P3.0--黄灯输出(继电器扩展) ;P1.7--指示灯,外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁 ;P1.0--P1.6拨码开关输入 ;P0----LED数码管(0.36英寸)数据输出 ;P2.7、P2.6、P2.5、P2.4---LED数码管位控制输出 ;K1为开始按钮,K2为停止按钮 ;由接入P1口的8位拨码开关的4.5.6.组合控制 ;000=40。001=50S。010=60S。011=70S。100=80S。101=90S。110=100S。111=110S。 ;黄灯点亮的时间由8位拨码开关的7,8组合控制。 ;00=2.0S。01=2.5S。10=3.0S。11=3.5S(秒)。 ;停顿时间由8位拨码开关的2.3.组合控制:00=0.0S。01=0.5S。10=1.0S。11=1.5S。 首先从P1口读入拨码开关状态 ;读拨码开关的状态,获得倒计时时间 SET1:;MOV A,#0;;首先对A清零 mov a,p1 rr a rr a anl a,#00000111b mov b,#10 mul ab; add a,#5;40 mov temp1,a;设置红绿灯时长拨码开关4.5.6位 ;============ mov a,p1 anl a,#00000011b mov b,#5 mul ab; add a,#20 mov temp2,a;设置黄灯时长拨码开关7.8位 ;======================== mov a,p1 rr a;逻辑右移 swap a anl a,#00000011b mov b,#5 mul ab mov temp3,a;设置停顿时长由拨码开关2.3位控制 start1: mov a,#01h mov r6,a mov r7,a mov a,temp1 mov temp,a ;这时TEMP中的值就是倒计时时间 ;数码管显示定时时间的子程序 timea:mov b,#100 ; div ab mov c_bit,a;百位 mov a,b mov b,#10 div ab mov b_bit,a;十位 mov a_bit,b;个位 ret dpl1: mov dptr,#numtab ;指定查表启始地址 mov r0,#4 mov r1,#250 ; dplop: mov a,a_bit ;取个位数 MOVC A,@A+DPTR ;查个位数的7段代码 mov p0,a ;送出个位的7段代码 clr p2.4 ;开个位显示 ACALL DELY1;显示1毫秒 setb p2.4;关闭个位显示 mov a,b_bit ;取十位数 MOVC A,@A+DPTR ;查十位数的7段代码 mov p0,a ;送出十位的7段代码 clr p2.7 ;开十位显示 ACALL DELY1;显示1毫秒 setb p2.7;关闭十位显示 mov a,c_bit ;取百位数 MOVC A,@A+DPTR ;查百位数的7段代码 mov p0,a ;送出百位的7段代码 clr p2.6 ;开百位显示 ACALL DELY1;显示1毫秒 setb p2.6;关闭百位显示 ret |
|||||
| 51单片机录入:dycxin 责任编辑:dycxin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| DS18B20温度传感器C51程序,… 基于频谱分析的机电设备状态… AT89s8252单片机在3G基站控制… 单片机实现智能荧光鉴伪 智能盲人导行仪的设计与实现 基于AT89C51型单片机的CAN总… STC单片机IO管脚毁坏动态自检… 具备跳号跳频和跳址的nrf905… 51单片机边沿触发中断响应时… 8051单片机在线升级软件的方… |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | | 设为首页 | 购买方法 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 联系我们 | 网络答疑| | | |||
|