51单片机时控开关原理图_中为电子科技工作室

合集下载

51单片机定时器 66页PPT文档

51单片机定时器 66页PPT文档
(2) 当GATE=1时, “与门”的输出信号K由INTx输入 电平和TRx位的状态一起决定(即此时K=TRx·INTx),
当且仅当TRx=1且INTx=1(高电平)时,计数启动; 否则,计数停止。
返回
27
5.3 定时器的工作方式——方式1
5.3.2 方式1
M1、M0=01,为16位的计数器,除位数外,其他与方式0相同。
缺点: 只有8位计数器,定时时间短、计数范 围小。其定时时间为: (28-初值)×振荡周期×12
若晶振频率为12MHz,则最长的定时时间为 (28-0)×(1/12)×12us=0.256ms
方式2工作过程图 (x=0, 1) 。
30
5.3 定时器的工作方式——方式3
5.3.4 方式3 只适用于定时器/计数器T0。T1不能工作在方式3。 如果将T1置为方式3,则相当于TR1=0,停止计数 (此时T1 可用来作串行口波特率产生器) 。
5.3.1 方式0 5.3.2 方式1 5.3.3 方式2 5.3.4 方式3
5.4 定时器的编程和应用
5
第5章 定时器/计数器及其应用
5.1 定时器的结构及工作原理
6
5.1 定时器的结构及工作原理
8051
内 部 结定 构时 框器 图
组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器 TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。
当TL1的低5位计数溢出时,向TH1进位。而TH1计 数溢出时,则向中断标志位TF1进位(即硬件将TF1 置1),并请求中断。
可通过查询TF1是否置“1”或考察中断是否发生来判 定定时器T1的操作完成与否。
25
5.3 定时器的工作方式——方式0

51单片机最小系统原理图

51单片机最小系统原理图

51单片机最小系统原理图51单片机最小系统原理图的功能详解单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。

单片机最小系统下面着重介绍时钟电路和复位电路。

1)时钟电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。

单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。

内部时钟方式的原理电路如图所示。

在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。

晶振的取值范围一般为0~24MHz,常用的晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz等。

一些新型的单片机还可以选择更高的频率。

外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,一般选用20~30pF的瓷片电容。

外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时钟信号可以保证单片机的工作同步。

时序是单片机在执行指令时CPU发出的控制信号在时间上的先后顺序。

AT89C51单片机的时序概念有4个,可用定时单位来说明,包括振荡周期、时钟周期、机器周期和指令周期。

振荡周期:是片内振荡电路或片外为单片机提供的脉冲信号的周期。

时序中1个振荡周期定义为1个节拍,用P表示。

时钟周期:振荡脉冲送入内部时钟电路,由时钟电路对其二分频后输出的时钟脉冲周期称为时钟周期。

时钟周期为振荡周期的2倍。

时序中1个时钟周期定义为1个状态,用S表示。

每个状态包括2个节拍,用P1、P2表示。

机器周期:机器周期是单片机完成一个基本操作所需要的时间。

一条指令的执行需要一个或几个机器周期。

一个机器周期固定的由6个状态S1~S6组成。

指令周期:执行一条指令所需要的时间称为指令周期。

第4章-51单片机对时间的控制PPT课件

第4章-51单片机对时间的控制PPT课件
13
定时工作方式0
在定时工作1,16位寄存器TH1和TL1只用13位,由TH1的8位和TL1的低5位组 成。当TL1的低5位计数溢出时,向TH1进位。而TH1计数溢出时,则向中断标志 位TF1进位(即硬件将TF1置1),并请求中断。可通过查询TF1是否置“1”或考 察中断是否发生来判定定时器T1的操作完成与否。
当GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TR1决定,定 时器不受INT1输入电平的影响,由TR1直接控制定时器的启动和停止。 TR1=1;定时/计数启动; TR1=0;定时/计数停止;
当GATE=1时,“与门”的输出信号K由INT1输入电平和TR1位的状态一起 决定,当且仅当TR1=1且INT1=1(高电平)时,计数启动;否则,计数停止。
时计数器时,也就是TH0和TL0合并为一个16位数据寄存器,当计数达到最大状态 65535,如表4-5所示。如果再计一个数,就会产生溢出,此时标志位TF0被置为1, 而TH0和TL0都被清零。 ② TR1和TR0——定时器运行控制位
TR0(TR1)=0,停止定时器/计数器的工作。 TR0(TR1)=1,开启定时器/计数器的。
定时计数中断响应地址
中断源
定时/计数器 0(TF0) 定时/计数器 1(TF1)
向量地址
000BH~0012H 001BH~0022H
C51 中断序号
20
定时工作方式1
当工作方式控制寄存器控制位M1、M0=01,定时/计数器所在的工作方式为工 作方式1,假设我们使用定时器0,则定时数据寄存器就是由TH0的全部8位和 TL0全部8位组成。其逻辑电路和工作情况和方式0是完全相同的,所不同的只是 组成计数器的位数。
12
(5)定时\计数工作方式控制寄存器TMOD(89H)

第2章 MCS51单片机组成与工作原理PPT课件

第2章 MCS51单片机组成与工作原理PPT课件

暂存器2 指令译码器ID
PSW
ALU
定时与控制
振荡器
缓冲器
DPH DPL PC增量器
程序计数器PC 地址寄存器 AR
VSS
XTA XTA EA RST ALE PSEN
L2 L1
单片机结构图(中)
ROM 4K字节
2.1 单片机管脚及片外总线结构
本节主要学习内容:
1.引脚介绍: 电源引脚; 外接晶体引脚; 控制引脚; I/0口引脚。
2.外总线结构 地址总线; 数据总线; 控制总线。
80C51
AT89C51
ATMEL
FLASH型
87C51
EPROM型
MCS-51单片机(DIP封装) 4
VCC RST XTAL1
P0口 XTAL2 /EA /PSEN ALE
P1口 P3口 RXD TXD /INT0 /INT1 P2口 T0 T1 /WR /RD GND
P3口第二功能表( P3.0 10脚-- P3.7 17脚)
口线 定义 P3.0 RXD P3.1 TXD P3.2 INT0 P3.3 INT1
说明
口线 定义
说明
串行数据输入口 P3.4 T0 计数器0外部输入信号 串行数据输出口 P3.5 T1 计数器1外部输入信号
外部中断0输入口 P3.6 / WR 外部数据存储器写信号 外部中断1输入口 P3.7 / RD 外部数据存储器读信号
寄存器 TCON T2CON TH0
00H 07H 0000H FFH XX000000B 0X000000B 00H
TL0 TH1 TL1 SCON SBUF PCON
复位状态 00H 00H 00H
00H 00H 00H 00H XXH 0XXX0000B

电子时钟基于AT89c51单片机设计电路图及程序

电子时钟基于AT89c51单片机设计电路图及程序

电子时钟基于AT89c51单片机的设计电子时钟原理图开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示JD12102Class--16,第二行显示动态TINE:12:00:04。

电子时钟调时间仿真图:当按下K1为1次时,光标直接跳到电子时钟的秒,可以按下K2进行调节。

当按下K1为2次时,光标直接跳到电子时钟的分,可以按下K2进行调节。

当按下K1为3次时,光标直接跳到电子时钟的时,可以按下K2进行调节。

当按下K1为4次时,光标直接跳完,电子时钟可以进行正常计时。

电子时钟闹钟调节仿真:当按下K3为1次时,直接跳到闹钟显示界面00:00:00,按下K2可以对闹钟的秒进行调节。

当按下K3为2次时,可以调到分,按下K2可以对闹钟的分进行调节。

当按下K3为3次时,可以调到时,按下K2可以对闹钟的时进行调节。

当按下K3为4次时,直接跳到计时界面,对闹钟进行到计时,时间到可以发出滴滴声。

#include<reg51.h>#define uchar unsigned char //预定义一下#define uint unsigned intuchar table[]="JD12102Class--21"; //显示内容sbit lcden=P3^4; //寄存器EN片选引脚sbit lcdrs=P3^5; //寄存器RS选择引脚sbit beep=P3^6; //接蜂鸣器extern void key1();extern void key2();extern void key3();uchar num,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3; //定义变量void delay(uint z) //延时{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){lcdrs=0;P0=com; //送出指令,写指令时序delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date){lcdrs=1;P0=date; //送出数据,写指令程序delay(5);lcden=1;delay(5);lcden=0;}void write_add(uchar add,uchar date){uchar aa,bb;aa=date/10;bb=date%10;write_com(0x80+add);write_data(0x30+aa);write_data(0x30+bb);}void init() //初始化{lcden=0;write_com(0x38); //设置16*2显示,5*7点阵write_com(0x0c); //开显示,不显示光标write_com(0x06); //地址加1,写入数据是光标右移1位write_com(0x01); //清屏write_com(0x80); //起点为第一行第一个字符开始}void display(uchar h,uchar m,uchar s) //显示设计程序{{write_com(0x80+0x16);}{write_com(0xC0+0x00);write_data('T');write_data('I');write_data('M');write_data('E');write_data(':');write_data(0x30+(h/10));write_data(0x30+(h%10));write_data(':');write_data(0x30+(m/10));write_data(0x30+(m%10));write_data(':');write_data(0x30+(s/10));write_data(0x30+(s%10));write_data(' ');write_data(' ');write_data(' ');} }void main(){init();TMOD=0X01; //设置T0定时方式1 TH0=(65535-50000)/256; //设置初值TL0=(65535-50000)%256;EA=1; //开总中断TR0=1; //启动T0ET0=1;for(num=0;num<16;num++) //依次读出数据{write_data(table[num]);}while(1){key1();key2();key3();if(ahour==hour&&aminite==minite&&second<10) //时间到闹钟响{beep=~beep;}if(F_k1==0&F_k3==0) //K1和K3按下次数为零就直接显示时分秒display(hour,minite,second);}}void timer0() interrupt 1 //T0中断函数{TH0=(65535-50000)/256; //装载计数器初值TL0=(65535-50000)%256;a++;if(a==20){ //进位设置60秒进1分,60分进1时,24时进0时a=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24){hour=0;}}}}}#include <reg51.h> //调时间程序#define uchar unsigned char#define uint unsigned intsbit k1=P1^0; //定义3个变量sbit k2=P1^1;sbit k3=P1^2;extern uchar F_k1,F_k3,second,minite,hour,ahour,aminite,asecond; //预定义变量extern void write_com(uchar com);extern void write_add(uchar add,uchar date);extern void display(uchar h,uchar m,uchar s);void delay_key(int i){while(i--);}void key1(){if(k1==0) //按下K1零次时,直接计时与开机显示{delay_key(100);if(k1==0){TR0=0;while(!k1);F_k1++;if(F_k1==4){F_k1=0;write_com(0x0c);TR0=1;}}}if(F_k1==1|F_k3==1){write_com(0xC0+0x0c);write_com(0x0f);}if(F_k1==2|F_k3==2)write_com(0xC0+0x09);if(F_k1==3|F_k3==3)write_com(0xC0+0x06);}void key2(){if(k2==0){delay_key(100);while(!k2);if(F_k1==1) //按下K1一次时设置闹钟的秒{second++;if(second==60)second=0;write_add(0x4b,second);}if(F_k1==2) //按下K3两次时设置闹钟的分{minite++;if(minite==60)minite=0;write_add(0x48,minite);}if(F_k1==3) // 按下K1三次时设置闹钟的时{hour++;if(hour==24)hour=0;write_add(0x45,hour);}if(F_k3==1) //按下K3一次时设置闹钟的秒{asecond++;if(asecond==60)asecond=0;write_add(0x4b,asecond);}if(F_k3==2) //按下K3两次时设置闹钟的分{aminite++;if(aminite==60)aminite=0;write_add(0x48,aminite);}if(F_k3==3) //按下K3三次时设置闹钟的时{ahour++;if(ahour==24)ahour=0;write_add(0x45,ahour);}}}void key3(){if(k3==0){delay_key(100);if(k3==0){while(!k3);F_k3++;if(F_k3==4) //K3等于四次时直接跳入闹钟显示{F_k3=0;write_com(0x0c);}if(F_k3==1)display(ahour,aminite,asecond);}}}。

MCS51单片机时钟与复位电路幻灯片PPT

MCS51单片机时钟与复位电路幻灯片PPT
MCS51单片机时钟与复位 电路幻灯片PPT
本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢! 本课件PPT仅供大家学习使用 学习完请自行删除,谢谢!
一、时钟的根本概念
1.单片机的工作原理: 取一条指令、译码、进展微操作,再取一条指令、译码、
2.状态周期:指振荡器脉冲 信号经过时钟电路二分频之 后产生的单片机时钟信号的 周期〔用S表示〕称为状态 周期。故1个状态周期S包含 2个节拍,前一时钟周期称 为P1拍,后一个时钟周期称 为P2拍。如图2.13所示:
图2.13 80C51单片机时钟信号
3. 机器周期:是指CPU完成某一个规定操作所需的时间。 MCS-51单片机的一个机器周期包含6个状态,并依次
对于CHMOS单片机〔如80C51〕,外部时钟要由 XTAL1引入,而XTAL2引脚应悬空。如图2.11〔c〕所示。
三、时序单位
根本概念:
MCS- 51时序的定时单位共有4个,从小到大依次是: 时钟周期〔拍节〕、状态周期、机器周期和指令周期。
⒈ 时钟周期〔拍节,振荡周期〕:是指振荡器产生一个 振荡脉冲信号所用的时间,是振荡频率的倒数,称为节 拍,为最小的时序单位。
表示为:S1~S6,每个状态分为2个拍。故一个机器周期包 含12个节拍〔时钟周期〕,依次表示为:S1P1、S1P2、 S2P1、…S6P1、S6P2。假设采用12MHz的晶振时,那么 一个机器周期为1μs;假设采用晶振6MHz时,那么一个机 器周期为2μs。
4. 指令周期 是CPU执行一条指令所需要的时间为指令周期。 MCS-51单片机包含1个或2个或4个机器周期。 假设采用6MHz晶振,那么振荡周期为1/6μs,机器周

51单片机的24c02电子时钟程序和电路图

51单片机的24c02电子时钟程序和电路图
{
fen++;
if(fen==60)fen=0;
write_sfm(shi,fen,miao);
write_cmd(0xc0+7);
write_add(2,fen);
}
if(s1num==3)
{
shi++;
if(shi==60)shi=0;
write_sfm(shi,fen,miao);
write_cmd(0xc0+4);
}
void keyscan()
{
if(s1==0)//如果功能按键1按下
{
delayms(5);//去抖动
if(s1==0)
{
while(!s1);//等待松手
s1num++;//主要还是记下次数
di();//蜂鸣器响
if(s1num==1)//按一下秒钟
{
TR0=0;
write_cmd(0xc0+10);//指针显示闪烁
sbit lcdrs=P2^4;//液晶的控制角
sbit lcdrw=P2^5;
sbit lcden=P2^6;
sbit s1=P3^0;//三个调时钟的按键
sbit s2=P3^1;
sbit s3=P3^2;
sbit beep=P2^3;//蜂鸣器
uchar count,s1num;
char miao,shi,fen;
delayms(1);
}
void write_sfm(uchar s,uchar f,uchar m)//数据在液晶显示
{
uchar ss,sg,fs,fg,ms,mg;
ss=s/10;sg=s%10;

51单片机的时钟工作原理

51单片机的时钟工作原理

51单片机的时钟工作原理一、什么是时钟时钟是指系统用于同步各种操作的重要信号。

在51单片机中,时钟用于控制指令的执行、数据的传送、中断的处理以及外部设备的操作等。

时钟信号的频率决定了单片机的运行速度和性能,因此时钟电路的设计和工作对于单片机的正常运行非常重要。

二、时钟的基本要求1.稳定性:时钟信号必须具有较高的稳定性,即频率不能随着温度、电压等变化而波动。

在51单片机中,通常使用晶振作为时钟源,晶振具有较好的频率稳定性。

2.精确性:时钟信号的频率必须是精确的,以保证单片机正常工作。

在51单片机中,时钟频率通常是晶振频率的整数分频倍数。

3.可调性:有时需要调节时钟频率,以满足不同应用的需求。

在51单片机中,通过改变分频系数或选用不同的晶振频率可以实现时钟频率的调节。

三、51单片机的时钟电路1.晶振电路:晶振是时钟电路的核心部件,它提供稳定且精确的时钟信号。

晶振电路通常由晶体振荡器和负载电容组成。

晶体振荡器包括一个晶体谐振回路,通过晶体的共振来产生稳定的时钟信号。

负载电容用于调整晶振振荡器的频率。

2.频率切换与分频电路:由于晶振的频率通常较高,超过了单片机内部工作的最高频率,因此需要通过频率切换和分频来降低时钟频率。

分频电路通常由多个单元组成,其中包括可调的分频系数以实现时钟频率的调节。

3.时钟信号发生电路:时钟信号发生电路将时钟频率切换和分频后的信号发送给单片机的各个模块,如控制器、ALU、存储器等。

四、分频原理分频是指将输入信号的频率降低到指定的频率。

在51单片机中,分频主要通过两个机制来实现:定时/计数器和时钟选择。

1.定时/计数器:51单片机中的定时/计数器可以设置为12位或16位。

通过设定定时/计数器的初值和工作方式,可以实现对输入时钟的分频。

2.时钟选择:51单片机内部有多个时钟源可供选择,包括晶振、外部时钟和内部振荡电路等。

通过设置时钟选择位或时钟控制寄存器,可以选择所需的时钟源。

五、时钟频率调节有时需要调节单片机的时钟频率,以满足不同应用的需求。

51单片机的硬件与工作原理 ppt课件

51单片机的硬件与工作原理 ppt课件

处理器芯片,以它为核心的MCS-4计算机,由该公
司年轻工程师马西安·霍夫研制,标志了世界上第
一台微机的诞生,至今,已经历了五代:
• 第一代:1971~1973,4位和低档8位机,典型代表

Intel4004,Intel8008。
• 第二代:1974~1978,中档8位机,典型代表

Intel8080,MC6800,ZILOGZ80
运行,名为(ENIAC)。1955年10月切断电源。 • 从公元10世纪中国古代的算盘到现代计算机的
问世经历了一个漫长的阶段。
2020/12/27
8
• 2、发展
• ENIAC: 5千次/秒,18000个电子管

电子管式→晶体管式→中小规模集成电路→

↑1946 ↑1958
↑1965
• → 大、超大规模集成电路(微机时代) 四代。
• * 嵌入式微机:
• (1) 单片机:CPU、存储器、I/O接口等集成在

一 块硅片上
• (2) 单板机:CPU、存储器、I/O接口等装配在

一块电路板
• (3) 多板机:CPU、存储器、I/O接口等分做在

多块电路板上
2020/12/27
15
• 3、微型计算机的发展

1971年,美国Intel公司研制出了Intel4004微
逻辑结构 CPU内部 接口芯片
Both
硬件结构 CPU内部
Both
EDA
初级 基本 高级
对象
板块 编程芯片 定制芯片
方法
绘原理图—仿真—设计PCB 以上加编程—仿真—调试 编程(硬件)—仿真—调试
典型例

51单片机定时器详细全解.上

51单片机定时器详细全解.上

51单片机定时器详细全解.上看了很多几本单片机的书,对51定时器的认识又有了一些新的变化。

开局一张图(一个简单的单片机程序),其实文章也是来解释这个代码的写法。

在此,后面也会对STC官方的库,做详细的解读和使用我们使用串口,设置它的寄存器一共4种模式,八位的可变2位,4个状态B6位为0的时候,B7用于帧错误检测,当检测到一个无效的停止位的时候,UART设置它,软件清0.这个方式0,是使用一个专用的SBUF发送的TI标志位发送完以后,自动的变1,相对于有了一个中断。

然后中断系统处理,处理完以后就要把状态变回去。

RI也是,一发一收接收的一个函数这里是注意的编程要点这里要开启UART的中断,先开启大中断,接着开启串口的中断REN是收发功能的开关1,2,3都是异步通信,0是移位寄存器接下来配置定时器只有两个寄存器,灵活使用要TCON是这样的TR1,相对于是使能位关于定时器不得不说,而且最近看了几本相对古老的书,真的很清晰,现在的书比喻一堆也不知道想说什么。

对51来说,其实是只有4种方式:1、51单片机计数器的脉冲输入脚。

主要的脉冲输入脚有Px,y,也指对应T0的P3.4和对应T1的P3.5,主要用来检测片外来的脉冲。

而引脚18和19则对应着晶振的输入脉冲,脉冲的频率和周期为:F = f/12 = 11.0592M/12 = 0.9216MHZ T = 1/F = 1.085us2、定时器有两种工作模式,分别为计数模式和定时模式。

对Px,y 的输入脉冲进行计数为计数模式。

定时模式,则是对MCU的主时钟经过12分频后计数。

因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。

所谓的定时器就是恒定的数数。

3、51计数器的计数值存放于特殊功能寄存器中。

T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)其实就是容器,存放脉冲数的这是我们单片机的4种定时器模式4、TLx与THx之间的搭配关系以下的进制,就是向前进位的意思。

51单片机定时器的使用和详细讲解__特别是定时器ppt课件

51单片机定时器的使用和详细讲解__特别是定时器ppt课件
定时时间0.6ms 。
以0.6 ms为周期在P1.0端交替输出高低电平。
最新编辑ppt
17
计数初值2n -定时时间 Tcy
X 2 1 30 .6 * 16 0 81 8 90 2 1 0 9 0 0 x 2 0 C 75
高 8位 TH 00000010x1006
T0从192开始计数,直到 超过8192即溢出,置
加法计数器对机器周期脉冲Tcy计数,每个机器周 期TL0加1。
最新编辑ppt
14
定时器的定时时间
T(81-X 9)2Tcy
计数初始值X
X2n-定时时 (此 间 n处 1)3 Tcy
最大定时能力:
Tma8x19T2cy
最新编辑ppt
15
模式0的结构图如图8-4所示。1计3位数加器法
门控位
GATE=0 定时器不受
低 5位 T0 L0000000x0000
TF0=1,产生中断信号
定时器初始化程序 MOV TL0, #0X00 MOV TH0,#0X06 MOV TMOD,#0X00 SETB ET0 SETB TR0
定时器中断服务程序 PUSH …. …… CPL P0_0 …… POP …
最新编辑ppt
5
XC866单片机有三个16位的定时器——定时器0、 定时器1和定时器2。
定时器0、1各具有四种工作模式;定时器2有两 种工作模式。
定时器0、1和定时器2的任何一种工作模式均可 通过程序对相应寄存器进行设置来选择。
定时器在定时时间到时,可以由程序决定是否产 生中断请求信号,进而判断是否执行中断程序。
控于外部信号;仅打 图8-4 方式0结构图
开与门,是定时器仅
有TR位控制;

单片机实训at89c51电子时钟电路图

单片机实训at89c51电子时钟电路图

at89c51电子时钟电路图:1.功能:1 开机时,显示12:00:00的时间开始计时;2 P0.0/AD0控制“秒”的调整,每按一次加1秒;3 P0.1/AD1控制“分”的调整,每按一次加1分;4 P0.2/AD2控制“时”的调整,每按一次加1个小时;源程序:3.系统板上硬件连线(1)把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;(2)把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;(3)把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;4. 汇编源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.0MINITEK BIT P0.1SECONDK BIT P0.2DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISPMOV TMOD,#01HMOV TH0,#(65536-2000) / 256MOV TL0,#(65536-2000) MOD 256SETB TR0SETB ET0SETB EAWT: JB SECONDK,NK1LCALL DELY10MSJB SECONDK,NK1INC SECONDMOV A,SECONDCJNE A,#60,NS60 MOV SECOND,#00H NS60: LCALL DISP JNB SECONDK,$NK1: JB MINITEK,NK2 LCALL DELY10MSJB MINITEK,NK2 INC MINITEMOV A,MINITE CJNE A,#60,NM60 MOV MINITE,#00H NM60: LCALL DISP JNB MINITEK,$NK2: JB HOURK,NK3 LCALL DELY10MSJB HOURK,NK3INC HOURMOV A,HOUR CJNE A,#24,NH24 MOV HOUR,#00H NH24: LCALL DISP JNB HOURK,$NK3: LJMP WT DELY10MS:MOV R6,#10D1: MOV R7,#248 DJNZ R7,$DJNZ R6,D1RETDISP:MOV A,#DISPBUF ADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,MINITEMOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,SECONDMOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1RETINT_T0:MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 MOV A,#DISPBUFADD A,DISPBITMOV R0,AMOV A,@R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P1,AMOV A,DISPBITMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,AINC DISPBITMOV A,DISPBITCJNE A,#08H,KNAMOV DISPBIT,#00HKNA: INC T2SCNTAMOV A,T2SCNTACJNE A,#100,DONEMOV T2SCNTA,#00HINC T2SCNTBMOV A,T2SCNTBCJNE A,#05H,DONEMOV T2SCNTB,#00HINC SECONDMOV A,SECONDCJNE A,#60,NEXTMOV SECOND,#00HINC MINITEMOV A,MINITECJNE A,#60,NEXTMOV MINITE,#00HINC HOURMOV A,HOURCJNE A,#24,NEXTMOV HOUR,#00HNEXT: LCALL DISPDONE: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档