求30秒倒计时电路。。。跪
电子信息工程吧
全部回复
仅看楼主
level 1
潮童鞋j 楼主
2013年04月25日 04点04分 1
level 8
#include<reg51.h>
sbit dula=P2^6;sbit wela=P2^7;sbit beep=P2^3;unsigned char j,k,a1,a0,s=60;unsigned int m;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(unsigned char i){ for(j=i;j>0;j--) for(k=125;k>0;k--);}void display(unsigned char sh_c,unsigned char g_c){ dula=0; P0=table[sh_c]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table[g_c]; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5);}
void main(){TMOD=0x01;TR0=1;TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12ET0=1;EA=1;while(1){if(m==20){m=0;s--;}a0=s%10;a1=s/10;display(a1,a0);if(s==0){TR0=0;//时间到,定时器关闭beep=0;//蜂鸣器响,报时。}}}
void time0() interrupt 1{TH0=(65536-46080)/256;TL0=(65536-46080)%256;m++;}
2013年04月25日 04点04分 2
一看就是郭天祥的。
2013年04月25日 17点04分
@无奈黄昏怒 哈哈,他的模板
2013年04月25日 17点04分
level 9
不用跪
2013年04月26日 02点04分 3
level 9
这问题太炸了,是用数字电路还是MCU,FPGA。。。。呢?
2013年05月04日 15点05分 4
数学电路
2013年05月04日 16点05分
用计数器就搞定啊,有这么难吗?
2013年05月05日 02点05分
level 3
中断单片机完破之
2013年05月05日 07点05分 5
1