急救:51单片机C程序编程

来源:百度知道 编辑:UC知道 时间:2024/05/13 16:01:18
题目:
完成递减时钟,数码管(共阴)显示30米秒,p2.0 p2.1分别控制个位和十位,P0接数码管的段码,单片机外接晶震12MHZ

帮我写下程序,我在TMOD初值那里不知道怎么处理!麻烦写出完整的程序!
看我写的是否正确
#include <reg52.h>
unsigned char code led[]={^^^^^^^^^^^} //括号里的省略了
sbit ledo=p2^0 led1=p2^1
unsigned char j=0 time=30
void main (void)
{TMOD=0X01;
TR1=1
ET1=1
TH1=10000》8
TL1=10000
while(1)}
void timer0_int(void)interrupter 1
{if(j<100)
j++
else
j=0
time--
xinshi();}
void delay(void)
{int 1
for(i=0;i<500;i++)}
void xinshi(void)
{po=led[time%10]
led0=0
delay()
p0=led[time/10}
led1=0
delay()}

EA=1,在程序中肯定是要的,CPU不开中断不行,在定时器中断子程序中,要重装定时器初值,程序还有其它的问题.

12M的晶振,一个机器周期是1us, 要延时30毫秒的话是:TMOD=0X01;TH0=0X8A;TL0=0XD0;这就是定时器选择方式1的初值。

你程序里怎么连";"都没有啊?
还有,怎么写得这么乱,养成一个好的软件设计习惯噢!