59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer
51单片机00-59秒计时器 0-59s Timer
1. 实验任务
如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。
2. 电路原理图
00-59秒计时器0-59s Timer
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
(2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
4. 程序设计内容
(1. 在设计过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,从新秒计数。
(2. 对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余。
(3. 在数码上显示,仍通过查表的方式完成。
(4. 一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒。
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
5. 程序框图
00-59秒计时器0-59s Timer
6. 汇编源程序
Second EQU 30H
ORG 0
START: MOV Second,#00H
NEXT: MOV A,Second
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELY1S
INC Second
MOV A,Second
CJNE A,#60,NEXT
LJMP START
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
7. C语言源程序
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char Second;
void delay1s(void)
{
unsigned char i,j,k;
for(k=100;k>0;k--)
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
Second=0;
P0=table[Second/10];
P2=table[Second%10];
while(1)
{
delay1s();
Second++;
if(Second==60)
{
Second=0;
}
P0=table[Second/10];
P2=table[Second%10];
}
}
59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer相关推荐
- 51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句
1. 条件选择语句之if 语句 前面我们讲了数据类型,运算符及表达式.C语言也是一种语言,既然是语言,一定有连接词.这些连接词可以用来表示假设,循环等等.我们先来看看假设if语句.这些连接词有一定的规 ...
- 一个简单的C语言程序(详解)
C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h>int main(void) //一个简单的 C程序 {int num; //定义一个名为 n ...
- AT89C51单片机流水灯c语言程序及详解(扫盲教程)
AT89C51单片机是我们学习单片机必学的一个单片机,也是单片机入门的教材,下面给大家展示一下流水灯的编写方法适合初学者 首先先在proteus画出仿真图,方便仿真程序 下面来编写程序,先来写入头函数 ...
- 00 59秒计时器仿真c语言源程序,单片机0059_秒计时器.doc
单片机0059_秒计时器 目 录 摘 要1 引言2 第一章 概述 3 第二章 电路设计4 2.1 单片机核心模块4 2.2 时钟模块5 2.3 复位电路模块5 2.4 显示模块6 第三章 软件程序及调 ...
- 简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序
<(最新整理)基于51单片机的电子钟C语言程序>由会员分享,可在线阅读,更多相关<(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)>请在人人文库网上搜索. 1.完整) ...
- 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆
基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘 要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...
- 24c512 c语言程序,24C32~24C512的51单片机读写程序
24C32~24C512的51单片机读写程序 来源:-- 作者:-- 浏览:3875 时间:2016-08-10 14:18 标签: 摘要: AT89S52 晶振频率为11.0592MHz 指令周期: ...
- c51汇编语言典型例子详解,51单片机典型开发实例大全.pdf
51单片机典型开发实例大全 提供电子技术最新最实用设计方案 --单片机 C51 编程规范 typedef unsigned char INT8U; // 无符号 8 位整型变量 // typedef ...
- 详解51单片机播放音乐、电子琴、快进
这是在学习完51之后做的一个实验,现在再来看有些寄存器都不记得了.不过我还是想要把它记录下来--因为我热爱音乐. 1.效果 先来看看实验的仿真图吧: 从按键就可以看到,这个实验可以实现播放音乐,暂停音 ...
最新文章
- node --- 模块化连接MongoDB数据库的参数设置方案之一
- 揭秘!微软 Build 2020 开发者大会将启,邀您共赴线上新旅程
- 第二课计算机ppt,第二课计算机系统.ppt
- 关于datawindow does not have update capability
- byte拷贝java_Java字节流实现文件夹的拷贝
- QT中QTableWidget鼠标事件捕获
- 微信文件夹的dat文件怎么打开_使用什么软件打开微信dat文件
- 码农小汪-Hibernate学习6-hibernate中Annocation修饰属性
- 24位RGB颜色与16位RGB颜色的转换
- 简单理解聚集索引和非聚集索引
- [原创]记某app内购破解 – 安卓逆向菜鸟的初体验
- COSMIC度量知识整理
- Axure使用中继器为表格添加数据
- 计算机毕设(附源码)JAVA-SSM基于Internet快递柜管理系统
- Optisystem7.0安装教程(Win10系统)
- 记录spacy安装英文包en出现E11004问题的解决方案
- 初学XML,xmlns的含义
- php新闻增删改查操作
- java 读gps_java – 如何获取当前的GPS位置?
- 微信小程序-入门到入土-01
热门文章
- 用VC写Assembly代码(2)
- 取得程序运行的目录[360度]
- 开发和编程是一样的吗?区别有哪些?
- 职场沟通能力,不是人人都有
- 生信宝典联合科学出版社在双 11推出生物信息专题书单 5 折优惠!学起来!
- Acrobat Reader DC 2020 for mac(最好用的免费PDF阅读器) 2020新增功能
- macos server 恢复安装_如何通过 macOS 恢复功能重新安装 macOS
- 提高篇 第二部分 字符串算法 第1章 哈希和哈希表
- 1949:【10NOIP普及组】数字统计
- 如何拼局域网所有ip_求助 家庭网络如何布线让所有网口在同一个局域网内