unsigned char aa=0x80; 主函数: main() { TMOD=0x21; TL1=220,TH1=11; EA=1,ET1=1; TR1=1; P1=~aa; while(1); }
T1中断服务函数: void int_t1(void) interrupt 3 { TL0=220,TH0=11; aa<<=1; P1=~aa; }
18、编写一函数,对无符号字符型数组用冒泡法从小到大进行排序,函数的入口参数为拟排序的数组aa的数组的长度m。
void sort(unsigned char aa, unsigned char m) { unsigned char I,j,n,tem; for(i=0;i { n=m-i-1; for(j=0;j 19、在一个fosc为12MHz的89C52系统中接有一片ADC0809,它的地址为7FFFH,试编写ADC0809初始化程序和定时采样通道2的程序(假设采样频率为1ms/次,每次采样4个数据)。 #include define DAC0809 XBYTE[0x7fff] unsigned char xdata buffer[4] _at_ 0xa0; void main() { TMOD=0x01; TH0=0xFC; TL0=0x18; EA=1; ET0=1; TR0=1; DAC0809=2; while(1); } void time0_srv() interrupt 1 { unsigned char i; TH0=0xFC; TL0=0x18; for(i=0;i<4;i++) { DAC0809=2; delay(); buffer[i]=DAC0809; } } 20、设某MCS-51单片机系统的振荡频率为12MHz,编写程序,用定时器/计数器T0以模式1定时,中断方式在P1.0引脚产生周期为1000μs的方波。假设没有使用T0. (1)定时时间为1000μs/2, 计数值为1000μs/2/机器周期=500,T0初值为65036 (2)C语言程序: #include T0中断服务函数: void int_t0(void) interrupt 1 { TL0=12; TH0=254; P10=~P10; }