|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机定时器0方式2输出方波 有proteus仿真 汇编语言源程序
2 \* K6 @# m4 R
+ l% t* k7 b* `) q3 u! `
6 `, |6 P8 S% w& @* w9 ?& b" |定时器输出方波proteus单片机仿真原理图:
2 E1 F" b: |1 X0 f p2 L + d2 g8 [- R% }) d6 t
单片机的定时器0设置为计数方式2(自动重装初值0FFH)一旦外输入P3.4有下降沿信号即产生中断,P1.1输出高电平指示LED亮,并启动定时器1工作方式2也是自动重装方式,初值按6M晶振机器周期为2微秒算500微秒 256-500/2=6,定时器1每500微秒产生一次中断取反一次P1.0,所以在P1.0上接的示波器会显示周期为1MS方波
& M. D3 I3 q" O8 j1 x# T7 h . E5 e1 h# P2 Z3 e# ?
5 ~* ?$ j. H; w! b# h
单片机汇编语言源码:
3 R4 C, z! Z) g( P( j org 0h3 M0 R# O, O4 Y! R$ F$ [
RESET: AJMP MAIN9 C8 c1 c6 h- T# M6 B0 x
ORG 0BH
; L, [" ]' X' E7 P1 T8 @ h" H. d AJMP IT0P
; @2 W6 e @- @' f ORG 01BH
. J, K( d9 M) l0 N AJMP IT1P2 R2 j' x# @4 _) ]
ORG 100H
, t" ?9 {2 j* N# \, xMAIN: MOV SP,#60H" Z. \0 N2 N2 u. K; N9 a7 a% J
ACALL PT0M2
7 f1 S, S: V* L) J) K# TLOOP: MOV C,P1.1
( g3 e8 K6 ~9 Q' p; P, A/ _ JNC LOOP
6 _% Q# k6 y% M0 t4 l$ K SETB TR17 F1 [) i: }4 H+ t8 g# ?: W
SETB ET11 ^# V: v8 s. O- s2 x
HERE: AJMP HERE0 X" m" {8 a/ T7 R/ r! Y$ s
PT0M2 : MOV TMOD,#26H7 {1 s& E0 m6 s) Z" |8 J
MOV TL0,#0FFH/ ]1 S, a" ^) y6 p$ F8 t; ]
MOV TH0,#0FFH
$ d5 W0 [5 o: _4 a% K& k$ M% F SETB TR00 K0 s7 D0 j, Q# S: n0 u
SETB ET0
! F: N/ |6 i/ `$ n MOV TL1,#06H- q* @$ j' Y, r+ M3 o3 O$ B9 A" [
MOV TH1,#06H* X" r* z4 i; U8 |
CLR P1.17 x5 U# d; J$ |4 D% L$ w
SETB EA
7 `+ I2 e; l2 ^2 ]- z2 e RET
7 X( R; X/ q2 n! \IT0P: CLR TR0
. ^! a. `( f- J2 _: L4 i% B6 a { SETB P1.13 A8 a u6 e8 \3 K+ `' e* U6 h
RETI9 n+ U0 i. x6 ^. v1 u+ s$ X
IT1P: CPL P1.0- S( J" K# k8 H" j5 }: a8 U
RETI
7 Q1 F. ~, W, p* N END ! b' p7 O7 L$ V
% q6 U {% g# D% {/ A, K8 e y5 w5 D" ~4 R( B' B& j
: H1 _* s/ e# `" f
|
|