#include <REGX52.H> #include "Delay.h" #include "INT0.h" #include "Timer0.h" #include "Key.h" sbit ChuFa= P1^0; unsigned char n; unsigned code LiangDu_tab[100]={100,200,300,400,500,600,700,800,900,1000, 1100,1200,1300,1400,1500,1600,1700,1800,1900,2000, 2100,2200,2300,2400,2500,2600,2700,2800,2900,3000, 3100,3200,3300,3400,3500,3600,3700,3800,3900,4000, 4100,4200,4300,4400,4500,4600,4700,4800,4900,5000, 5100,5200,5300,5400,5500,5600,5700,5800,5900,6000, 6100,6200,6300,6400,6500,6600,6700,6800,6900,7000, 7100,7200,7300,7400,7500,7600,7700,7800,7900,8000, 8100,8200,8300,8400,8500,8600,8700,8800,8900,9000, 9100,9200,9300,9400,9500,9600,9700,9800,9900,10000, }; void main() { Timer0Init(); Int0_Init(); ChuFa=0; while(1) { //等待中斷 } } void Int0_Routine(void) interrupt 0 { ChuFa=1; n=Key(); TL0 =65536-LiangDu_tab[n]%256; //設置定時初值 TH0 =65536-LiangDu_tab[n]/256; //設置定時初值 TR0=1; } void Timer0_Routine() interrupt 1 { ChuFa=0; Delay10us(); ChuFa=1; TR0=0; } |