注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

chenht7的个人空间 http://home.eeworld.com.cn/space-uid-490705.html [收藏] [复制] [分享] [RSS]

日志

单片机_汇编语言_19_嘀嘀...报警声

已有 207 次阅读2017-10-20 10:55 |个人分类:汇编

 单片机_汇编语言_19_嘀嘀...报警声
时间:2017/10/20

# 一、任务描述
使用汇编编程,通过采用定时器,从而实现在P1.0口,产生频率为1kHz的方波。其中的具体工作是,1kHz方波从P1.0输出0.2秒,接着0.2秒从P1.0输出电平信号,如此循环下去。

# 二、任务实现
## 2.1 硬件连接
目前的硬件线路如下:
主控芯片: STC 89C52
输入引脚: 无
输出引脚: P1.0 - 运放驱动喇叭
时钟频率: 12MHz

[19_嘀嘀...报警声_OUT]

## 2.2 分析命题
这次主要的功能如下:
1. 产生1kHz的方波 <-- 采用定时器,产生一个计时为200us的基本定时单位,并且加上定时到,即对输出进行取反
2. 需间隔0.2s,需要关闭方波 <-- 采用标志位FLAG进行判断

## 2.3 确定算法
这个算法中,用了16位定时器,最后只是定时只定了500um,用了其中的一点点,挺浪费的。
目前的采用的方式是,采用了一个FLGA进行判断,两种情况,一个为方波,一个为关闭。另外结合定时器跟计数器,实现计时0.2s跟方波的产生。

## 2.4 流程图

[19_嘀嘀...报警声_整体_流程图]


## 2.5 程序

```
; 进行位定义
T02SA EQU 30H
T02SB EQU 31H
FLAG BIT 00H
ORG 00H
LJMP START
ORG 0BH                                           ; 定时/计数器T0中断入口地址
LJMP INT_T0

START:
    MOV T02SA, #00H                             ; 初始化
    MOV T02SB, #00H
    CLR FLAG
    MOV TMOD, #01H                              ; 设置定时器为16位定时/计数器
    MOV TH0, #(65536-500) / 256            ; 设置初值,定时500us
    MOV TL0, #(65536-500) MOD 256
    SETB TR0                                          ; 启动定时器
    SETB ET0
    SETB EA
    SJMP $

INT_T0:
    MOV TH0, #(65536-500) / 256          ; 重新初始化
    MOV TL0, #(65536-500) MOD 256
    INC T02SA                                      ; 为实现定时0.2s,而采用的中间计数值,50ms
    MOV A, T02SA
    CJNE A, #100,NEXT
    INC T02SB
    MOV A, T02SB
    CJNE A, #04H, NEXT                     ; 计时50ms*4=0.2s
    MOV T02SA, #00H                        ; 重新初始化
    MOV T02SB, #00H
    CPL FLAG                                     ; 标志取反,主要是用于方波跟低电平的切换
NEXT:
    JB FLAG, DONE                             ; 判断方波or低电平
    CPL P1.0
DONE:
    RETI
    END


```


## 2.6 实际效果

[19_嘀嘀...报警声_示波器_显示图]
该图中,其中的黄色为测试喇叭地方的波形。
其中的蓝色部分为P1.0口输出的波形。

[19_嘀嘀...报警声_示波器_显示整体图]

# 三、总结
这次的程序中,主要算是学到一种是,是以500um作为基本的定时单位,然后结合计数,实现所需要的功能。看来定时器,可以实现所需要的最基本定时,还是挺重要的。

# 参考资料

[1] 《单片机的编程与汇编程序案例》, https://wenku.baidu.com/view/9018d6795acfa1c7aa00cc58.html

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-11-24 02:46 , Processed in 0.136206 second(s), 11 queries , Redis On.

Powered by EEWORLD电子工程世界

© 2017 http://bbs.eeworld.com.cn/

返回顶部