历史上的今天
今天是:2024年09月20日(星期五)
2019年09月20日 | 51单片机学习笔记(五)
2019-09-20 来源:eefocus
已经很多天没有写程序了,原因很简单,竟是迷上了新版的西游记,连续看了几天,今天写的是续上以前的教材,“心率计数器”是继“电子时钟”的一个计算器/计时器的应用。
对于计数器/计时器的应用,似乎就是熟练的问题,对计数器/计时器的使用很容易理解,但是要是不看书本,那编写出的程序多半是有错误的,因为对TMOD,TCON,IE,的控制方式,不看书是很难把它记住的,而应用起来却是十分简单。
在这里要说一下在计数器模式下,t1计数的是p3.5的脉冲信号,t0计数的是来自p3.4的脉冲信号。因为我手头上没有心率传感器,所以就只用一根杜邦线接在p3.5口上,然后用手捏杜邦线的另一头,用这种方法给p3.5脉冲信号,挺有意思的。
写这个程序似乎没有什么收获,就是了解了一下传感器的使用,接收脉冲信号的方法和对计数器的使用吧,不值得一说。
MIAO EQU 20H ;********定义秒内存**************
ORG 0000H
SJMP START
ORG 000BH ;********中断跳转位置**************
SJMP COUNT ;********跳转至count计算时间**************
ORG 0030H
;********初始化**************
START:
MOV SP,#060H
MOV DPTR,#TAB
MOV R0,#0
MOV TMOD,#01010001B ;********t1计数,t0计时**************
MOV TL1,#0
MOV TH0,#3CH ;********计时器初始值**************
MOV TL0,#0B0H
MOV IE,#10000010B ;********中断允许**************
SETB TR0 ;********开启计时器,计数器**************
SETB TR1
MAIN:
CALL DISPLAY1 ;********输出时间**************
CALL DISPLAY2 ;********计数**************
CALL STOP
SJMP MAIN
DISPLAY1: ;********输出时间**************
MOV A,MIAO
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
CLR P1.0
CALL DELAY
SETB P1.0
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P1.1
CALL DELAY
SETB P1.1
RET
DISPLAY2: ;********输出计数**************
MOV A,TL1
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
CLR P1.6
CALL DELAY
SETB P1.6
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P1.7
CALL DELAY
SETB P1.7
RET
COUNT: ;********计算时间*************
INC R0
CJNE R0,#20,HUI
INC MIAO ;********1秒时间到,秒位加**************
MOV R0,#0 ;********重置计时器**************
MOV TH0,#3CH
MOV TL0,#0B0H
HUI: RETI ;********中断返回**************
STOP: ;********判断时间**************
MOV A,MIAO
CJNE A,#60,HUI2
CLR TR1 ;********1分钟时间到,计时器,计数器停止工作**************
CLR TR0
HUI2: RET
DELAY:
MOV R1,#5
D1: MOV R2,#250
D2: DJNZ R2,D2
DJNZ R1,D1
RET
;*****************共阴极数码表****************
TAB:
DB 03FH,006H,05BH,04FH,066H ;0,1,2,3,4
DB 06DH,07DH,007H,07FH,06FH ;5,6,7,8,9
END
下一篇:51单片机学习笔记(四)
史海拾趣
|
突然那个方块状零件冒出火花,有三个接角..然后指示灯就不能亮了.只要一加热这个零件就过热..把手柄都烫化了...请问这是什么零件叫什么??为什么么会突然烧掉???… 查看全部问答> |
|
根据美国亚特兰大州佐治亚理工学院有机光电中心(Center for Organic Photonics and Electronics)的研究人员介绍,一种创新的封装技术将使用具有高介电常数特性的钛酸钡(BaTiO3)纳米级微粒子来制造电容器,该技术能使电容器储存的能量提高一倍。 ...… 查看全部问答> |
|
我想从事驱动开发,可是不知道如何入门?从事驱动开发需要那些方面的知识?驱动开发的学习体系是什么?请大家推荐几本好书(国外程序员写的),几个驱动开发的好论坛或者邮件列表,谢谢。… 查看全部问答> |
|
一些介绍硬件的书上说486是第一个真正采用流水线设计的Intel X86处理器。包括新浪网上也是这样说的 http://tech.sina.com.cn/h/2007-03-23/15421431097.shtml 但是我最近看——《16位、32位微机原理》中国科技大学出版(中科院考研指定用书)上说8 ...… 查看全部问答> |
|
在学生时代,让人头疼的课程系列之模拟电子,越想越纠结。尤其是我们这种还处于学生的硬件爱好者来说,其酸甜苦辣,我们的感触自然深刻~~ 不知道那些已经在此领域有一定成就的大哥哥、大姐姐们,是如何练就那身本领的?望硬件界的精英们为我们这些 ...… 查看全部问答> |
|
我现在使用C语言编程,仿真没有问题,烧到flash后,复位不能运行,检查发现,map文件中多了一个.switch的段,并且定义在外部ram中,请问这种情况要怎么处理啊? 各位大侠帮帮忙!!… 查看全部问答> |




