51单片机倒计时报警器程序

合集下载

51单片机倒计时程序

51单片机倒计时程序

51单片机倒计时程序#include reg52.h#define uint unsigned int#define uchar unsigned charsbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit key5=P2^4;sbit key6=P2^5;uinta[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9 uint b[]={0xef,0xdF,0xbF,0x7F,0xfe,0xfb,0xfd,0xf7,};int s=5,m=00,h=00;uint timecount;uint sg,ss,mg,ms,hg,hs,flag1=0,flag2=0;int keycount=0;void init()//初始化函数配置中止存放器得值。

{timecount=0; TMOD=0x01;TR0=1;ET0=1;EA=1;TH0=0x3c;TL0=0xb0;}void delay(x)//延时函数。

{uint i,j;for(i=x;i0;i--)for(j=120;j0;j--);}void display()//把时候秒送到数码管显示。

{uint i;sg=s%10;ss=s/10;mg=m%10;ms=m/10;hg=h%10;hs=h/10;for(i=0;i8;i++){switch(i){case 0:P1=b[7];P0=a[sg];break;case 1:P1=b[6];P0=a[ss];break;case 2:P1=b[5];P0=0x40;break;case 3:P1=b[4];P0=a[mg];break;case 4:P1=b[3];P0=a[ms];break;case 5:P1=b[2];P0=0x40;break;case 6:P1=b[1];P0=a[hg];break;case 7:P1=b[0];P0=a[hs];break;}delay(1);}}void key_scan()//检测键能否按下按没有同键完成没有同得处置。

基于51单片机的9999秒倒计时器毕业设计

基于51单片机的9999秒倒计时器毕业设计

编号:审定成绩:重庆邮电大学毕业设计(论文)设计题目:基于51单片机的9999秒倒计时器设计学院名称:通信与信息工程学院学生姓名:X正伟专业:电子信息工程班级:0120XXX学号:060201XX指导教师:刘XX答辩组负责人:填表时间:2010 年 6 月重庆邮电大学教务处摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。

由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。

但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本论文针对倒计时系统的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。

倒计时系统需要用到锁存器、矩阵键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。

对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision3软件程序进行译码。

本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的9999秒倒计时系统。

【关键词】倒计时器单片机矩阵键盘Keil uVision3 LED数码显示器ABSTRACTIn recent years, with the penetration of computers in the social sphere, SCM applications are continually deepening, and the traditional control test is driving the rapid update. The size of SCM is very small, and it is easy to be producted. for control, high integration, functionality, high reliability, and so on. So it has been widely used in the area of industrial control, mechatronics, intelligent instruments and communications.In real-time detection and control of the microcomputer application system, the microcontroller is often used as a core component. But if only have the knowledge of SCM is not enough.It should be based on specific hardware architecture, and if the application-specific features of the software objects are combined will be perfect.This paper focuses on the needs of the countdown system design, introduced the MCS-51 MCU of some of the basic principles.Such as the 51 single-chip interface functions, interrupt, timer and so on. Countdown system needs to use latch, matrix keyboard, LED digital display and other major modules, through interaction between different modules to complete the Countdown to the initial hardware. The countdown device in the LED digital display, In order to simplify the circuit, reduce costs, we adopt a software-based interface method, namely using Keil uVision3 software program for decoding.C language programming was used in the design , we completed the initial value can be set at any time based on 51 single-chip control of the 9999 seconds countdown system by making use of the countdown subroutine modules, matrix keyboard scanning module, interrupt, and also the correct subroutine calls.【Key words】Counter-down SCM Matrix keyboard Keil uVision3 LED digital display目录前言 (1)第一章倒计时系统简介 (2)第一节功能说明 (2)一、设计要求 (2)二、方案说明 (2)三、系统功能 (3)第二节开发作用和意义 (3)第三节本章小结 (4)第二章MCS-51单片机基本原理 (5)第一节单片机概述 (5)一、单片机基础 (5)二、单片机应用领域 (7)三、单片机的生产厂家和机型 (8)第二节MCS-51单片机的组成原理 (8)一、80C51芯片介绍 (8)二、8051 与80C51 (10)第三节MCS-51单片机的引脚功能 (10)一、主电源引脚Vss和Vcc (11)二、外接晶体引脚XTAL1和XTAL2 (11)三、控制引脚RST/VPD、ALE/PROG、PSEN、EA/Vpp (11)四、输出输入引脚 (12)第四节中断 (14)一、中断的概念 (14)二、8051中断系统结构 (15)三、中断响应条件 (18)第五节定时器与计数器 (18)一、定时器概述 (18)二、定时器控制字 (18)第六节本章小结 (20)第三章倒计时器系统设计与调试 (21)第一节硬件电路设计 (21)一、中央处理器模块 (21)二、锁存器 (23)三、矩阵键盘 (25)四、LED数码显示模块 (26)第二节软件设计 (28)一、程序准备 (29)二、键盘扫描程序设计 (30)三、倒计时初值设置 (31)四、倒计时模块子程序设计 (32)五、其他子程序设计 (33)第三节系统调试 (34)一、系统调试工具Keil uVision3 (34)二、调试的主要方法 (34)结论 (38)致谢 (39)参考文献 (40)附录 (41)一、英文原文 (41)二、英文翻译 (51)三、源程序 (61)前言51系列单片机属于总线型单片机,具有硬件架构完整、功能强大、技术成熟、通用性强、可外部扩展、配套芯片齐全、集成开发环境好、实用子程序丰富以及价格低廉等一系列优点,无论是实际工程应用,还是学习单片机原理及其应用技术,51系列单片机都是理想的选择。

单片机:手动设定倒计时时间,0报警

单片机:手动设定倒计时时间,0报警

单⽚机:⼿动设定倒计时时间,0报警⾸先显⽰”时.分“,K1时增加,K2分增加(如果不修改时分默认5分钟:300秒倒计时)K3开始倒计时,显⽰秒倒计时,到时报警BEEPK4停⽌报警,并返回到”时分“状态,⼜可以设置倒计时时间,来回循环#include<reg51.h>#define uchar unsigned char;#define uint unsigned int;uchar position;uchar tt,bz=0,bza=1;uint second;uchar minute;uchar hour;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0--9sbit smg_q = P2^0;sbit smg_b = P2^1;sbit smg_s = P2^2;sbit smg_g = P2^3;sbit key1=P3^2;sbit key2=P3^3;sbit key3=P3^4;sbit key4=P3^5;sbit led1=P1^0;sbit led2=P1^1;sbit led3=P1^2;sbit led4=P1^3;sbit led5=P1^4;sbit led6=P1^5;sbit beep=P2^5;void keyscan();void display(unsigned char hour,unsigned char minute);void displaym(unsigned int second);void delay(unsigned int timer);void init();void main(){init();while(1){if(tt==20){ led1=~led1;led2=~led2;tt=0;if(second==0 && bz==1){while (bza==1){beep=0;delay(100);beep=1;break;}}elsesecond--;}keyscan();if (bz==0)display(hour,minute);elsedisplaym(second);delay(1);}}void keyscan(){ if(key1==0){TR0=0;hour++;if(hour==24)hour=0;delay(200) ;}if(key2==0){TR0=0;minute++;}if(key3==0){bz=1;bza=1;TR0=0;second=hour*3600+minute*60;if (second==0)second=300;delay(200) ;TR0=1;}if(key4==0){beep=1;bz=0;bza=0;minute=0;TR0=0;led1=1;led2=1;second=0;hour=0;minute=0;}}void init(){tt=0;bza=1;position=0;second=0;minute=0;hour=0;smg_q=1;smg_b=1;smg_s=1;smg_g=1;key1=1;key2=1;TMOD=0X01;TH0=0x4c;TL0=0x00;EA=1;ET0=1;TR0=0;}void t0() interrupt 1{TH0=0x4c;TL0=0x00;tt++;}void display(unsigned char hour,unsigned char minute){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[hour/10]; break;case1: smg_q=1;smg_b=0; P0=table[hour%10];if(tt>=10) P0&=0x7f; break;case2: smg_b=1;smg_s=0;P0=table[minute/10];break;case3: smg_s=1;smg_g=0;P0=table[minute%10];break;}position++;if(position>3)position=0;}void displaym(unsigned int second){ P0=0XFF;switch(position){case0: smg_g=1;smg_q=0;P0=table[second/1000]; break;case1: smg_q=1;smg_b=0; P0=table[second/100%10]; break;case2: smg_b=1;smg_s=0;P0=table[second/10%10];break;case3: smg_s=1;smg_g=0;P0=table[second%10];if(tt>=10) P0&=0x7f;break; }position++;if(position>3)position=0;}for(x=time;x>0;x--)for(y=110;y>0;y--);}更新:显⽰四位以上的秒时:显⽰最后四位的秒数,第⼀位数码管右侧的点亮。

倒计时60秒程序(单片机C51)

倒计时60秒程序(单片机C51)

倒计时60秒程序(单片机C51)#include#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit gew=P2^1;sbit shiw=P2^0;sbit k2=P1^0;uchar num,num1=60,num2,shi,ge;void Init(){TMOD=0X01; TH0=(65536-50000)%256; TL0=(65536-50000)%256;EA=1;ET0=1; TR0=1;}void delay(uint xms) //延时子函数{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void scankey() //键盘检测子函数{if(k2==0) //检测键是否被按下{delay(5); //延时消除抖动if(k2==0) //重新读取k2的值{num2++; //num2为按次数标志位while(!k2); //等待按键释放if(num2==1) //按键一次计时停止TR0=0;if(num2==2) //按键两次计时开始{TR0=1;}}}}void main() //主函数{Init(); //初始化子函数调用while(1){scankey(); //不断键盘扫描gew=0; //打开数码管个位位选P0=table[ge]; //数码管个位赋值delay(1); //延时送入数据的反应时间gew=1; //关闭数码管个位位选delay(1);shiw=0; //打开数码管十位位选P0=table[shi]; //送入数据delay(1);shiw=1; //关闭数码管十位位选delay(1);}}void Timer0() interrupt 1{TH0=(65536-50000)/256; //定时器重装初值TL0=(65536-50000)%256;num++;if(num==20) //定时器每进行一个周期num加1,运行20个周期即为1s{num=0; //到1秒,num清0重新开始num1--; //倒计时1秒if(num1==0)num1=60;shi=num1%10; //两位数分离赋给数码管十位显示ge=num1%10; //两位数分离赋给数码管个位显示}}。

基于AT89C51单片机的倒计时

基于AT89C51单片机的倒计时

单片机课程设计题目:基于AT89C51单片机的倒计时学院:机械与电气工程学院专业:电气工程及其自动化学号:101401010205目录1、设计要求 (3)2. 工作原理 (3)2.1硬件设计 (4)2.1.1 单片机AT89S51 (4)2.1.2 显示器件选择 (5)2.1.3复位电路 (7)2.1.4 时钟电路 (7)2.1.6 蜂鸣器 (9)3、软件设计 (10)3.1 按键流程图: (10)3.2 定时器流程图: (11)3.3蜂鸣器发出音乐流程图: (12)3.4主程序流程图: (13)4、电路仿真 (14)参考文献 (15)附录1 电路图 (16)附录2 程序 (16)附录3 元件清单 (21)1、设计要求利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。

做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。

定时闹钟的基本功能如下。

●显示格式为“分分:秒秒”。

用4个按键操作来设置当前想要倒计数的时间。

一旦按下键则开始倒计数,当计数为0时,发出一阵利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。

做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。

音乐声。

程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。

●K1—可调整倒计数的时间1~60分钟。

●K2—设置倒计数的时间为5分钟,显示“0500”。

●K3—设置倒计数的时间为10分钟,显示“1000”。

●K4—设置倒计数的时间为20分钟,显示“2000”。

按K1键则在LED上显示出设置画面。

此时,若:a. 按操作键K2—增加倒计数的时间1分钟。

b. 按操作键K3—减少倒计数的时间1分钟。

c. 按操作键K4—设置完成。

附加功能:K5—计数开始按钮。

基于51单片机的防摔倒报警器设计与实现

基于51单片机的防摔倒报警器设计与实现

基于51单片机的防摔倒报警器设计与实现设计与实现基于51单片机的防摔倒报警器摔倒是老年人出现的常见问题之一,而老年人的骨骼和身体机能比较脆弱,如果不及时发现摔倒情况,可能会导致严重后果。

因此,设计一款基于51单片机的防摔倒报警器,可以及时监测老人的摔倒情况,发出报警信号,提醒周围的人们。

1.系统设计(1)摔倒检测模块:通过加速度传感器检测老人是否摔倒,加速度传感器可以感知老人体重在地面上的状态,如果发生突然的变化,则表示可能发生摔倒。

(2)报警模块:使用蜂鸣器作为报警器,当摔倒检测模块检测到摔倒事件时,触发报警模块发出蜂鸣声。

(3)控制模块:使用51单片机作为控制器,通过编程实现数据的采集、处理和控制,当摔倒事件发生时,控制报警模块发出报警信号。

2.系统原理加速度传感器的原理是基于质量对加速度的感知,当有外力作用于传感器上时,传感器将产生电压变化。

通过对加速度传感器的信号进行采样和处理,可以得到老人体重在地面上的状态。

当传感器监测到摔倒事件时,会向51单片机发送一个信号,51单片机接收到信号后,会触发报警器发出报警声。

3.系统实现(1)硬件设计:硬件部分主要由51单片机、加速度传感器、蜂鸣器和其他必要的电路元件组成。

将加速度传感器与51单片机连接,通过IO口进行数据传输。

将蜂鸣器与51单片机连接,通过IO口进行控制。

(2)软件编程:软件部分主要包括数据采集、数据处理和报警控制三个部分。

首先,在数据采集过程中,通过读取加速度传感器的数值,获取老人体重在地面上的状态。

然后,在数据处理过程中,判断传感器数值是否发生突然变化,如果发生变化,则说明摔倒事件发生。

最后,在报警控制过程中,触发报警器发出报警声,可以通过设置蜂鸣器的IO口为高电平来实现。

4.系统应用总结:。

51单片机输入数字并数码管倒计时典型C语言代码

51单片机输入数字并数码管倒计时典型C语言代码
//EX0=0;//关外部中断0源允许
circle1=circle/10;
chaishu(circle1);
while(1)
{
display(e,d,c,b,a);
}
}
else
{
TH0=(65536-50000)/256;//50毫秒
TL0=(65536-50000)%256;//装入定时器0初值
circle=0;
c=d1/100;////////c=5*
c1=d1%100;///////c1=35
b=c1/10;/////////b=3*
b1=c1%10;////////b1=5
a=b1;////////////a=5*
}
void display(uint wan,uint qian,uint bai,uint shi,uint ge)
void T0_time() interrupt 1///////定时/计数器0的溢出中断对应的中断序号为"1"
{
TH0=(65536-50000)/256;//50毫秒
TL0=(65536-50000)%256;//装入定时器0初值
time++;
}
/////////////////////////////////////////////定时中断函数内容///////////////////////////////////////
{
case 0xeb:
{
num=7;
count=count+1;
}//如果=0xed那么num设定为4
break;//跳出switch
case 0xdb:
{
num=8;

本科毕业设计之基于51单片机控制的60秒倒计时系统设计

本科毕业设计之基于51单片机控制的60秒倒计时系统设计

摘要最近几年来随着运算机在社会领域的渗透,单片机的应用正在不断地走向深切,同时带动着传统控制检测日新月异的更新。

由于单片机具有体积小,易于产品化、面向控制、集成度高、功能强、靠得住性高、价钱低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中取得了普遍的应用。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来利用。

可是仅单片机方面知识是不够的,还应按照具体硬件结构,和针对具体应用对象特点的软件结合,以作完善。

本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确挪用,完成了能够随时设置初值的基于51单片机控制的60秒倒计时系统。

关键词:倒计时单片机KeiluVision3 LED数码显示器目录1 MCS-51 单片机硬件结构及原理 (1)MCS-51系列单片机结构 (1)1.1.1 MCS-51单片机的大体组成 (1)1.1.2内部大体结构 (3)MCS-51单片机存储器安排 (6)1.2.1存储器空间安排 (6)1.2.2片内存储器 (6)单片机秒表课程设计的概述 (9)课程设计思路及描述 (9)课程设计任务和要求 (10)系统硬件方案设计 (11)软件方案设计 (11)生“HEX”文件的步骤 (12)源程序及注释 (15)原理图分析 (16)课程设计效果 (18)总结 (19)致谢 (20)参考文献 (21)1 MCS-51 单片机硬件结构及原理 MCS-51系列单片机结构 1.1.1 MCS-51单片机的大体组成 1 整体结构图1-1单片机的整体结构2. MCS-51单片机外部引脚及其说明最多见的封装形式是40引脚双列直插式DIP(Dual In-line Package) 尚有44引脚的无引线芯片载体封装PLCC(Plastic Leaded Chip Carrier)图1-2 MCS-51单片机外部引脚及说明其中两条电源线,两条外接晶体,4条控制或作电源复用,32条I/O 引线。

单片机倒计时

单片机倒计时

单片机倒计时定时器这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7正常情况下单片机的P3.6P3.7都被程序初始化时置1 当有按键按下时对应的单片机引脚被按钮开关下拉为0,这种方法比较直观,而且比较简单,在按键数量不多的场合下使用很广泛因为机械开关开关时有抖动,所以需要在程序中加一个软件去抖动程序,它的工作原理如下:当单片机检测到有按键被按下后立即执行一个10毫秒的延时程序,然后再在检测该引脚是否仍然为闭合状态?如果仍然为闭合说明确认该键被按下立即执行相应的处理程序,否则可能是干扰,丢弃这次检测结果接下来我们再安装一个四位的拨码开关,就是图中红色的开关,它相当于四个装在一起的拨动开关,当开关拨到"ON"一侧时,对应的那路就会接通,反之断开.它在单片机中一般用于设置初始参数,而且不经常改变的场合这里因为单片机引脚资源不够,所以我们只使用了拨码开关的第234位,第1位闲置三个开关可以逻辑组合出8种状态,所以我们能够方便灵活地预置多达7种的倒计时时间最后我们来安装两个继电器和相关电路,有了继电器我们的实验板不再仅仅是做做实验而已,可以用于控制一些负载,比如说:充电器,洗衣机,电风扇等,使我们的实验板的实用功能大大增强,这也是电子制作实验室网站的单片机实验板和其他公司的产品不同的地方这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的P2.3/P2.4为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR P2.3或者CLR P2.4的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单;电子制作实验室/;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时;倒计时时间由四位拨码开关的2/3/4位来控制,;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟,;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁;K1为开始按钮,K2为停止按钮a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp equ 22h ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭CLR P1.0;点亮LED指示灯;等待键盘输入START:JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START;如果是干扰就返回JNB P3.6,$;等待按键松开;读拨码开关的状态,获得倒计时时间SET:MOV A,#0;首先对A清零JB P2.0,A1;判断拨码开关的第2位是否接通,接通就对A加5ADD A,#5A1:JB P2.1,A2;判断拨码开关的第3位是否接通,接通就对A加15ADD A,#15A2:JB P2.2,A3;判断拨码开关的第4位是否接通,接通就对A加30ADD A,#30A3:MOV TEMP,A;这时TEMP中的值就是倒计时时间;数码管显示定时时间的程序display:CLR P2.4;使继电器1释放,开始定时(开机时继电器处于吸合状态)CLR P2.3;使继电器2释放,开始定时(开机时继电器处于吸合状态)MOV R2,#120AB:MOV R3,#250TIME1:mov a,temp ;将temp中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示ACALL DELY1;显示1毫秒setb p2.7;关闭个位显示,防止鬼影mov a,b_bit ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示ACALL DELY1;显示1毫秒setb p2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C1:JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开AJMP SETB1:JB P3.7,M33ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERM33:djnz r3,TIME1 ;2毫秒循环执行250次,时间约0.5秒CPL P1.0;使LED每1秒闪烁一次djnz r2,AB ;循环执行120次,时间为1分钟DEC TEMP;满一分钟对定时时间减1MOV A,TEMPJNZ DISPLA Y;判断TEMP的数值是否为0?不为0循环;结束定时OVER:CLR P1.0;LED指示灯常亮SETB P2.4;继电器1吸合,定时结束,退回到开机时的状态SETB P2.3;继电器2吸合,定时结束,退回到开机时的状态AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1:MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10:MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的7段数码管0~9数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end。

基于51单片机的9999秒倒计时器设计

基于51单片机的9999秒倒计时器设计
第八周
熟悉毕业设计方案,查阅相关资料
完成方案的初步设计,开题报告
电路的仿真和PCB板的设计
软件流程的设计和软件的编写
完成软件的编写与调试
硬件电路的装配与调试
电路的软硬件综合调试
完成毕业设计
参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京航空航天大学出版社,1994
A
0
1
1
1
0
1
1
1
77H
B
0
1
1
1
1
1
0
0
7CH
C
0
0
1
1
1
0
0
1
39H
D
0
1
0
1
1
1
1
0
5EH
E
0
1
1
1
1
0
0
1
79H
F
0
1
1
1
0
0
0
1
71H
.
1
0
0
0
0
0
0
0
80H
5.3LED 数码管显示方式
LED显示器工作方式有两种:静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
①一个8位CPU;
②一个片内振荡器和时钟电路;
③4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM);

单片机倒计时

单片机倒计时

模拟电视播放中插播广告倒计时方莹目录摘要 (1)1绪论 (1)1.1功能需求 (1)1.2数据需求 (2)2硬件设计 (2)2.1电路设计 (2)2.2LCD液晶屏坐标图及外形尺寸图 (3)2.3功能模块设计 (4)3 系统工作原理 (6)3.1型液晶显示屏(奥可拉中文集成模块)工作原理 (6)3.2串行接口与串行传输介绍 (7)3.3字形显示模块 (8)4 线路连接 (9)5 软件设计 (9)5.1主程序 (9)5.2LCD显示模块设计 (10)6 调试分析 (10)7结论 (11)8结束语 (11)参考文献 (11)附录一 (12)附录二 (34)摘要液晶屏在现代人们日常生活中的使用已经非常广泛,例如飞机场里使用液晶屏来显示各个航班的情况,火车站和汽车站里用其来显示车次,商业街里使用液晶屏来显示各种各样的广告标语等。

本次课程设计要求使用液晶屏在第一页电视画面显示节目图片信息,随后插播10秒广告倒计时,使用到了OCMJ4X8C_3型LCD液晶屏,在这一次的课程设计中是将LCD液晶屏和单片机相结合使用,因此,还涉及到了51单片机的编程方式及实现方法。

本报告中包含了系统工作原理:OCMJ4X8C_3型液晶显示屏(奥可拉中文集成模块)工作原理、串行接口与串行传输资料、汉字图形显示步骤;硬件设计:电路设计、LCD液晶屏外形尺寸图及坐标图、功能模块设计;线路连接;软件设计:主程序、LCD显示模块设计等内容,并给出了硬软件的调试。

关键词:扫描;51单片机;字码库;1绪论LCD电子显示屏是近年来得到广泛应用的重要信息设备。

这种显示屏具有耗电省、成本低、清晰度高、寿命长、显示内容的信息量大,外形美观大方,操作使用方便灵活,用户可随时任意自行编辑修改显示内容,显示方式图文并茂等优点,因此被广泛应用于商场、学校、银行、邮局。

由于显示屏具有色彩鲜艳、亮度高、寿命长、工作稳定可靠等优点, 在许多行业都得到了广泛的应用, 如在车站、码头、商场、银行等公共场所将显示屏用于信息发布。

单片机控制的简易定时报警器电路设计含电路图和程序

单片机控制的简易定时报警器电路设计含电路图和程序

单片机控制的简易定时报警器电路设计(含电路图和程序)设计一个单片机单片机控制的简易定时报警器定吋报警器要求根据设定的初始值(1-59秒)进行倒计时,当计时到0时数码管闪烁&ldquo;00&rdqu。

;(以1Hz闪烁),按键功能如下:⑴ 设定键:在倒计时模式时,按卜此键后停止倒计时,进入设置状态;如果已经处于设置状态则此键无效。

(2)増-•键:在设豐状态时,每按一次递増键,初始值的数字增lo (3)递- 键:在设蜀状态时,每按一次递减键,初始值的数字减lo (4)确认键:在设宜状态时,按卜此腱后,单片机按照新的初始值进行倒计时及显示倒计时的数字。

如果已经处于计时状态则此健无效。

3.1.2模块1:系统设计(1)任务分析与整体设计思路根据题目的婆求,需要实现如卜几个方面的功能。

计时功能:要实现计时功能则需要使用定时器來计时,通过设豐定时器的初始值来控制溢出中断的时间间隔,再利用一个变量记录定时器溢出的次数,达到定时1秒中的功能。

然后,当计时每到1秒钟后,倒计时的计数器减1。

当倒计时计数器到0 时,触发另一个标总:变量,进入闪烁状态。

显示功能:显示倒计时的数字要采用动态扫描的方式将数字拆成&ldquo;十位&rdquo;和&ldquo;个位&rdquo;动态描显示。

如果处「•闪烁状态,则可以不需要动态疔描显示,只需要控制共阴极数码管的位控线,实现数码管的灭和亮。

键盘打描和运行模式的切换:主程序在初始化一些变崑和寄存器之后,需要不断循坏地读取键盘的状态和动态知描数码管显示相应的数字。

根据键盘的按键值实现设置状态、计时状态的切换。

(2)单片机型号及所需外阳器件型号,单片机硬件电路原理图选用MCS-51系列AT89S51单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89S51 单片机驱动能力有限,采用两片74HC244实现总线的驱动,一个74HC244完成位控线的控制和驱动,另一个74HC244完成数码管的7段码输出,在输出I I上各串联一个100欧姆的电阻对7段数码竹限流。

51单片机倒计时源程序

51单片机倒计时源程序

51单片机倒计时源程序#include<reg52.h> //51头文件//#include<472405468.h>//51头文件#define uchar unsigned char //宏定义#define uint unsigned int //宏定义#define s0 P2^0 // 时加键#define s1 P2^1 // 分加键#define s2 P2^2 // 倒时加键//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F #define s3 P2^3 // 倒分加键#define s4 P2^4 // 倒秒加键#define s5 P2^5 // 开始倒计时键总共6个按键uint tt1,tt0;uchar num=0;uchar biaozhi=11;uchar up;uchar z,han,jun,qiang,cishu,count,num1; //函数变量声明char shi,fen,miao,pao_miao; //定义有符号变量声明chardao_shi=23,dao_miao=59,dao_fen=59,dao_paomiao=99;sbit sky1=P1^0; //断控sbit sky2=P1^1; //位控sbit feng=P1^2; //控蜂鸣器const uchar code TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极显示代码//****************** 函数声明 *****************************void feng_ming_qi(uchar); //报时函数void init(); //定时器的初始化(T1)void fenjie(); //函数声明void delay(uchar); //延时函数声明void dao_fenjie(); //倒计时显示函数uchar key_scan(); //按键调试函数//************************************************************void delay(uchar z) //一毫秒延时函数{uchar x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void init()//TR1初始化{TMOD=0x22; // TMOD=0x20; 开定时 1TH1=0x06; //T1 250微妙TL1=0x06; //装初值EA=1; //打开总中断TR1=1; ////初始化先打开定时器1ET1=1;feng=0;///////////////////////////////////////////////TH0=0x06; //T0 也是 250 微妙中断一次TL0=0x06; //装初值//EA=1; //打开总中断TR0=0; //初始化先关闭定时器0ET0=1; // IEIP=0x20;}/////////////////////////////////////////////////////////////////// /////////////////////////void dao_fenjie() //分解倒秒,倒分,倒时。

基于51单片机能实现任意时间倒计时。

基于51单片机能实现任意时间倒计时。

倒计时器只要修改此文档15页源程序的(如下图)的到计时初值即可实现想要的倒计时。

比如30分钟倒计时修改分钟十位和各位即可。

一、设计要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。

倒计时到,由蜂鸣器发出报警。

绘制系统硬件接线图,并进行系统仿真和实验。

画出程序流程图并编写程序实现系统功能。

二、设计的作用目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。

通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。

本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

三、具体设计:1.问题分析:在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。

如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。

单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。

51单片机定时器设置

51单片机定时器设置

51单片机定时器设置51单片机,也被称为8051微控制器,是一种广泛应用的嵌入式系统。

它具有4个16位的定时器/计数器,可以用于实现定时、计数、脉冲生成等功能。

通过设置相应的控制位和计数初值,可以控制定时器的启动、停止和溢出等行为,从而实现精确的定时控制。

确定应用需求:首先需要明确应用的需求,包括需要定时的时间、计数的数量等。

根据需求选择合适的定时器型号和操作模式。

设置计数初值:根据需要的定时时间,计算出对应的计数初值。

计数初值需要根据定时器的位数和时钟频率进行计算。

设置控制位:控制位包括定时器控制寄存器(TCON)和中断控制寄存器(IE)。

通过设置控制位,可以控制定时器的启动、停止、溢出等行为,以及是否开启中断等功能。

编写程序代码:根据需求和应用场景,编写相应的程序代码。

程序代码需要包括初始化代码和主循环代码。

调试和测试:在完成设置和编程后,需要进行调试和测试。

可以通过观察定时器的状态和输出结果,检查定时器是否按照预期工作。

计数初值的计算要准确,否则会影响定时的精度。

控制位的设置要正确,否则会导致定时器无法正常工作。

需要考虑定时器的溢出情况,以及如何处理溢出中断。

需要考虑定时器的抗干扰能力,以及如何避免干扰对定时精度的影响。

需要根据具体应用场景进行优化,例如调整计数初值或控制位等,以达到更好的性能和精度。

51单片机的定时器是一个非常实用的功能模块,可以用于实现各种定时控制和计数操作。

在进行定时器设置时,需要注意计数初值的计算、控制位的设置、溢出处理以及抗干扰等问题。

同时需要根据具体应用场景进行优化,以达到更好的性能和精度。

在实际应用中,使用51单片机的定时器可以很方便地实现各种定时控制和计数操作,为嵌入式系统的开发提供了便利。

在嵌入式系统和微控制器领域,51单片机因其功能强大、使用广泛而备受。

其中,定时器中断功能是51单片机的重要特性之一,它为系统提供了高精度的定时和计数能力。

本文将详细介绍51单片机定时器中断的工作原理、配置和使用方法。

倒计时提醒器设计(课程设计)

倒计时提醒器设计(课程设计)

1 引言单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。

89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。

单片机一词最初是源于“Single Chip Microcomputer简称SCM。

随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。

国际上逐渐采用“MCU”(Micro Controller Unit)来代替,形成了单片机界公认的、最终统一的名词。

为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。

在国内因为“单片机”一词已约定俗成,故而可继续沿用。

我们所做的是单片机板子,它在工作原理和结构上基本类似于单片机,是单片机的压缩型,便于我们需诶和研究。

2 方案设计与论证近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。

51单片机数码管倒计时汇编语言代码

51单片机数码管倒计时汇编语言代码

51单片机数码管倒计时汇编语言代码数码管是一种电子元器件,常用于倒计时、计时和显示数字等场景中。

其中,51单片机作为一种常见的控制芯片,能够对数码管进行比较精确的控制。

本文将介绍51单片机在数码管倒计时中的应用,并给出相应的汇编语言代码。

一、硬件准备首先,我们需要准备一些硬件设备。

具体来说,我们需要一块51单片机的开发板、一组共阳数码管、一个蜂鸣器、一枚按键开关、若干杜邦线和面包板。

在连接各个模块时,需要注意接线的正确性和稳定性。

二、倒计时实现接下来,我们就可以开始编写汇编语言代码了。

代码实现中,需要注意数码管的显示方式以及倒计时时间的设定等细节。

首先,我们定义一些常数,如:COUNT_MAX EQU10;倒计时时长为10sCLK_FREQ EQU12000000;时钟频率为12MHzDELAY_US EQU CLK_FREQ/1000000其中,COUNT_MAX表示倒计时的最大时长,CLK_FREQ表示单片机的时钟频率,DELAY_US表示1us延时所需的机器周期数。

其次,需要定义一些数据段:ORG0SJMP MAINORG0BHDELAY_CNT:DB0ORG0CHMODE_CNT:DB0其中,DELAY_CNT是延时计数器,MODE_CNT是模式计数器。

接着,我们定义主函数:MAIN:CLR P1.5CLR P1.6CLR P1.7MOV TMOD,#01H;设置定时器0为模式1SETB TR0;启动定时器0SETB EASETB ET0SETB EX0MOV R6,#DELAY_USSJMP MODE_SEL首先,需要清空P1.5、P1.6和P1.7引脚,以便控制数码管的显示。

然后,设置定时器0为模式1,并启动定时器0。

接着,开启总中断、定时器0中断和外部中断,设置延时计数器,并跳转到MODE_SEL 模式选择功能。

接下来是MODE_SEL模式选择功能:MODE_SEL:MOV A,MODE_CNTCPL AMOV MODE_CNT,AANL A,#03HJZ MODE_0CJNE A,#01H,MODE_SEL_ENDSJMP MODE_1CJNE A,#02H,MODE_SEL_ENDSJMP MODE_2MODE_SEL_END:CLR TR0CLR EARETI在这个模式下,程序每执行一次,模式计数器加1,并且A寄存器与3进行与操作,最后根据A的值跳转到相应的倒计时模式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV MIN,#0 ;分初始化
MOV HOUR,#0 ;时初始化
MOV MSEC,#0 ;毫秒初始化
MOV TH0,#0DAH ;T0置初值
MOV TL0,#64H
MOV TMOD,#01H
SETB ET0 ;允许T0申请中断
JZ MM ; 为零则继续判断分钟
LJMP CLOCK2 ;不为零则继续计时
MM: MOV A,MIN ;判断分钟是否为零
JZ SS ; 为零则继续判断秒
CJNE A,#01,CLOCK2 ;判断分位是否为1,不为1则蜂鸣器流水灯工作在模式一
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
MOV A,B
CLR P2.7
MOV P0,#0F7H
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
;显示秒
MOV A,SEC
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0FBH
SETB P2.7
CLR P2.7
CLR P2.3
MOV A,MIN;
CJNE A,#60,J3 ;分满60清0
MOV MIN,#0
LJMP J3
J3: JB K3,A1
LCALL DISPLAY1
LJMP J3
S4: LCALL DELAY
JB K4,A1
AK4:INC HOUR
LJMP HERE
DIS1: LCALL DISPLAY1 ;调用显示1
LJMP HERE
;******************************************
;显示控制子程序
;当定时超过一小时时,数码管显示时-分-秒
DISPLAY1:
;显示秒
LJMP CLOCK3 ;判断分位是否为1,不为1则蜂鸣器流水灯工作在模式二
SS: MOV A,SEC ;判断秒是否为零
JZ SSE ;为零则继续判断毫秒
LJMP CLOCK3
SSE: MOV A,MSEC ;判断毫秒是否为零
JZ RUN ;为零则结束计时
LJMP CLOCK3 ;不为零则工作在模式二
CLOCK2:DEC MSEC ;毫秒减1,蜂鸣器流水灯模式一
MOV A,MSEC
CJNE A,#0FFH,LOOP ;判断毫秒减到0之后是否再减1
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
MOV A,B
CLR P2.7
MOV P0,#0F7H
SETB P2.7
CLR P2.7
MOV R4,#0 ;对R4进行赋初值0
ORG 00H
LJMP START ;上电,跳向主程序
ORG 0BH ;T0的中断入口
LJMP IT0P ;跳转到中端服务程序
ORG 0030H
START:
MOV DPTR,#TABLE
MOV SEC,#0 ;秒初始化
K1 BIT P3.4 ;启动按键控制位
K2 BIT P3.5 ;秒钟控制位
K3 BIT P3.6 ;分钟控制位
K4 BIT P3.7 ;快速计时控制位
SEC EQU R0 ;进行宏定义
MIN EQU R1
HOUR EQU R2
MSEC EQU R3
SETB EA ;总中断允许
MOV P1,#0FEH ;P1口进行初始化
A1: LCALL DISPLAY1 ;调用显示程序1
JNB K1,S1 ;判断k1是否为0;为0则转移到s1程序
JNB K2,S2 ;判断k2是否为0;为0则转移到s2程序
MOV P1,A;
MOV A,SEC
CJNE A,#0FFH,LOOP ;判断秒减到0之后是否再减1
MOV SEC,#59 ;是,装入初值59
DEC MIN ;分减1
MOV A,MIN
CJNE A,#0FFH,LOOP ;判断分减到0之后是否再减1
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
;显示分
MOV A,MIN
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0FBH
RET
IT0P:CLR TR0 ;中断服务程序
MOV TH0,#0DAH
MOV TL0,#64H
LCALL CLOCK
SETB TR0
RETI
CLOCK: ;判断计时是否结束
MOV A,HOUR ;判断小时是否为零
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
;显示小时
MOV A,HOUR
AK1:SETB TR0 ;启动T0
LJMP HERE; ;原地跳转
S2: LCALL DELAY ;调用延时
JB K2,A1 ;k2为1则转移到A1
AK2:INC SEC ;秒增1
CLR P2.3
MOV A,SEC
CJNE A,#60,J2 ;秒不满60跳转到J2
MOVC A,@A+DPTR
MOV P0,A ;写入位选信号
SETB P2.6 ;锁存位选信号
LCALL DELAY
CLR P2.6
MOV A,B
CLR P2.7
MOV P0,#0DFH
SETB P2.7
CLR P2.7
CLR P2.6
MOV SEC,#0 ;秒满60清0
LJMP J2;
J2: JB K2,A1; ;k2为1跳转到A1
LCALL DISPLAY1; ;调用显示程序1
LJMP J2;
S3: LCALL DELAY ;调用延时
JB K3,A1
AK3:INC MIN
MOV A,B
CLR P2.7
MOV P0,#0FDH
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
SETB P2.3
;延时子程序,时间大约为
;*******************************************************************
DELAY: MOV R7,#5 ;延时
DEL1:MOV R6,#100
DEL2:DJNZ R6,DEL2
DJNZ R7,DEL1
CLR P2.3
MOV A,HOUR
CJNE A,#24,J4 ;时满24清0
MOV HOUR,#0
LJMP J4
J4: JB K4,A1
LCALL DISPLAY1
LJMP J4
HERE: MOV A,HOUR
JNZ DIS1
LCALL DISPLAY2 ;调用显示2
RET
;当定时低于一小时时,数码管显示分-秒-毫秒
DISPLAY2:
;显示毫秒
MOV A,MSEC
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0EFH
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
;显示分
MOV A,MIN
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0FEH
MOV B,#10
DIV AB
CLR P2.7
MOV P0,#0FEH
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
SETB P2.7
CLR P2.7
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
LCALL DELAY
CLR P2.6
MOV A,B
CLR P2.7
MOV P0,#0FDH
MOV MSEC,#99 ;是,装入初值99
DEC SEC ;秒减1
MOV A,P1 ; 八个二极管灯以1秒为单位,循环右移
RL A;
CLR P2.3 ;蜂鸣器以秒为单位蜂鸣
CLR P2.6
MOVC A,@A+DPTR
MOV P0,A
SETB P2.6
相关文档
最新文档