|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
学文历史的,最近迷上了弄单片机,自己学了一段时间尝试写了个倒计时器(已经尽力了),在proteus上运行的很好。特地找了朋友焊上了但是一开电数码管没有显示,打开那个P3^1/TXD那个端口就亮了,但是很亮,数字也变成相同的了。已经查了很多次资料,单片机也废了好几个了,真心求教,真的对单片机感兴趣。
) E& T1 p- F; v B, z+ k* p2 P* E" k
单片机代码:% h ]& V; U4 _ G* Z- J
#include<reg51.h>- `* ? m# }2 p& I# U
#include <intrins.h>
: g F+ ?9 j) n8 }% K: ]#define uchar unsigned char9 v" I) o4 _/ ^% E5 x
#define uint unsigned int# W8 t% S7 P8 G" R
sbit one_place=P2^1;
0 s# M' {( ?% Y3 O- T; osbit ten_place=P2^0;
' X' Y1 v u* }+ F% r& @sbit features1=P1^0;//star开始# H2 ?3 v) W1 ]" l9 t+ P: d/ y! V3 @
sbit features2=P1^1;//stop停止
' ]# }9 @- B D6 ~sbit features3=P1^2;//reset复位: Z7 \ t2 D1 t0 D; `
sbit beep=P3^0;
q" ~4 W) D# ~sbit aa=P3^1;//蜂鸣器停止
( z0 {0 D7 {9 i0 n2 puchar code table[]=
8 Z6 v6 D$ d# a! R# J# `1 D{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};8 d/ l5 ]* j4 [& x1 O: Z: O
uchar num,num1=11,num2,ten,one;- P, ?# |7 {2 x1 @1 |9 e1 H
void timer_init(void)
: P' t& v( D( V! F! ^- t{
( F2 U) V1 u- l/ V4 H6 v. ]TMOD=0x01;
9 Z: o& v- a% ~6 L$ M. i5 hEA=1;
; V8 P# D" H3 g+ J4 [ET0=1;8 c; _, C# m5 V
TR0=0;
$ B9 U+ d% z2 q7 E. O" M5 c/ x9 x}
8 `1 I" O; U. H& kvoid delay(uint n)
/ t8 a; S& x6 R, v{while(n--);
, |, Y. q6 \# T}
& _" E" M+ ~& P: ?5 Y9 xvoid check(); |/ d5 c% K* x7 w
{6 S' ^- I, Q6 R s, |6 G
/ N2 Q0 @' c j B
if(aa==0){beep=1;}
N6 z+ G8 T: j if(features1==0){TR0=1;}# h: k6 q" N2 i" _# `
if(features2==0){TR0=0;} \1 n( [5 |: W5 [& [. d; Y- l
if(features3==0){TR0=0;TH0=(65536-50000)/256; + q( a+ s. I& L( ?7 ]4 o* i
TL0=(65536-50000)%256;num1=11;}- Z9 ?, ]1 j7 v; J7 P/ M
* T7 Y: g- R( V( |}# v1 h/ n8 I9 z- w' T3 i
void display()
. |8 V- r1 {" b{# g; }! o, z' V' Y6 h
P2=0xff;
1 `/ t+ ]$ y a7 Z X& H5 ]4 gP0=0xff;
$ F- H( E* O# @& n. M}
8 h7 O8 D# M3 [7 [) L; ~/ q [+ _. U; {void main(void)
% ?4 }. O0 z# i t/ Z5 z' v8 K4 B* d$ C{ ( ]3 J! W# g- s' S( \$ @
beep=1;3 }! ^3 h: p+ u; N1 A2 J
timer_init();
! N6 V& r' `- o) ~: {display();% W1 ?, Q. ~3 q! Q% ^
if(features1==1){TR0=0;}1 D5 b% e( j1 w2 z1 q4 V' _
while(1)2 V1 ~! ?+ @. z8 l5 i
{
: m4 q# i" g' Z. Acheck();$ D) ^$ ?2 d2 \
one_place=1;# p7 _5 [2 o$ c9 n* p
P0=table[one];2 Y: x1 {2 z% k) `7 \+ d2 E. A9 O7 K0 f
delay(100);
3 {, B/ H+ t2 ~; O5 mone_place=0;6 H3 U! J# M; m: p
delay(100);
* s: z* y, @. G% sten_place=1;3 y1 V1 V8 ?/ v% x3 U# D* P
P0=table[ten];
; d# l: z5 ?! i- L7 P; J/ odelay(100);
2 s; J- i8 t# x$ t( bten_place=0;
o% X" R% B, p! Pdelay(100);
$ M/ F7 n7 m9 y. f H}
# }% m$ t4 \! r3 y) @# u6 y; f}
' g0 f& v; _+ f7 P% u- X1 h4 Yvoid Timer0()interrupt 1 ! P, q& q$ h( R0 t3 ~3 d# c
{* t- M' v; G& `9 q) S1 Z
7 U- C2 W$ {/ }: x
TH0=(65536-50000)/256; . ]$ K+ t5 I- P7 s) s: `$ r2 q2 R0 E
TL0=(65536-50000)%256;" w2 ?9 t2 u% r( v, x j& h- w
num++;
! ]! d7 y4 C* q2 p( P) aif(num==20)
4 _( o8 {" z& Q{
0 k& ^6 n+ O6 |, P3 Z num=0;
. }0 ^; ~7 R$ o2 m" k( L num1--;
) M3 U: B9 |' d5 m if(num1==0)5 i: u4 M1 d( ]. d& Z& Y$ J
{TR0=0; A/ e9 I5 P9 [1 t. ?& [
beep=0;}# j e. l1 v7 Q
ten=num1/10;
* @9 C* e$ S$ ^& l L0 A% z! k one=num1%10;
5 y- d8 Z$ j1 P" T/ c! I- m
) r% ~5 [; W' B4 [' _) N0 z}
8 [" R0 L5 `( Q* I" L* _- a: z}1 l- a& e e0 [6 u
: ^8 [( m% {, n c( G+ }" n6 c9 g. A' {! \ j: k5 Q3 c
0 T: Z/ S6 ^; F& f3 q8 U% R+ d8 L7 a) d$ y
; V: G8 g/ y. i/ {( j, I0 a! @ |
|