单片机编程,输出周期为2S和0.5S的方波
来源:互联网 发布:怎么看b超单子的数据 编辑:程序博客网 时间:2024/06/05 10:31
在80C51单片机中,已知时钟频率为 6MHz,请编程使 P1.0 和 P1.1 分别输出周期为 2s 和 0.5s 的方波。
求答案,过程。
悬赏分:50 - 解决时间:2010-1-7 17:16
;=====================================
最佳答案:
;-------------------------------------
;下列程序,经过编译、仿真,符合要求:
;-------------------------------------
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
;-------------------------------------
START:
MOV TMOD, #01H
MOV TH0, #9EH
MOV TL0, #58H ;50ms@6MHz
SETB TR0
SETB ET0
SETB EA
MOV R2, #5
MOV A, #0
CLR P1.0
CLR P1.1
SJMP $ ;原地转移,假死,等待中断
;-------------------------------------
T0_INT: ;50ms执行一次
MOV TH0, #9EH ;重新赋初始值
MOV TL0, #58H ;50ms@6MHz
DJNZ R2, T0_END ;不到5次,转到退出
; ;下列指令都是每隔250ms执行一次
MOV R2, #5 ;重新设置
INC A ;计数器加一
MOV C, ACC.0
MOV P1.1, C ;P1.1,每隔250ms,变化一次
MOV C, ACC.2
MOV P1.0, C ;P1.0,每隔1s,变化一次
T0_END:
RETI
;-------------------------------------
END
;-------------------------------------
回答者: 做而论道 - 十二级 2010-1-7 12:54
提问者对于答案的评价:xiexie
原文网址:http://zhidao.baidu.com/question/132367773.html
;-------------------------------------
后记:
题目要求输出两个波形的周期是个4倍的关系,这一点,被做而论道发现并巧妙的利用了。
程序中只使用了一个计数器ACC,它的相邻两位之间的变化时间,是呈2倍的关系;
而其第0位和第2位,就是4倍的关系,把它们输出,即可得到所需的周期波形。
呵呵,做而论道的程序,所使用的资源,是最低的;执行效率也最高,不知网友们认为如何?
- 单片机编程,输出周期为2S和0.5S的方波
- 用T1定时,在P1.0和P1.1 引脚分别输出周期为2ms和500微秒的方波
- 利用定时/计数器TO从P1输入周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHZ
- 使8253输出1S的方波,使通道外接的发光二极管亮1S,暗1S
- 编写51单片机程序,输出方波,at89s52的单片机
- 输出所有和为S的连续正数序列
- Problem A: 输出满足和为S的数
- 数组中,输出和为S的最小乘积
- 编程算法 - 和为s的两个数字 代码(C)
- STC单片机IO方波脉冲输出
- 和为S的连续
- 格式化输出中的%s和%S的区别
- 使用定时器1以方式0产生周期为500us的方波连续脉冲
- 用51单片机做信号发生器,同时输出四种频率的方波
- 有n个数,输出其中所有和为s的k个数的组合。
- C++输出所有和为S的连续正数序列(牛客剑指offer)
- C++的s输出
- 和为S
- 单片机编程-3
- 多个字的2进制整数相乘
- 编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示
- 关于view.getTop(),view.getRight()....
- 利用8031单片机,设计跑马灯和流水灯
- 单片机编程,输出周期为2S和0.5S的方波
- 三级偏软程序题目
- 汇编语言程序分析-51单片机
- 求 《微机系统原理与接口》 题目答案
- ASCII 码和十六进制数的转换 -51单片机
- 单片机定时问题:亮100ms、灭300ms
- 汇编中字符串初始化的问题,“7, 13, 10, 13, 10” 是什么意思?
- 编写3字节二进制加法子程序
- 树莓派利用360wifi2开机自动连接路由器