TL1=0xfa; TR1=1; SCON=0x50; while(1) {
while(RI==0); RI=0; c=SBUF; SBUF=c; while(TI==0); TI=0; } }
7、用单片机P0口输出端选码,P口输出位选码,写出数码管显示程序。
#include
{0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f, 0x7c,0x39,0x5e, 0x79, 0x71,0x40,0x00}
0x6f, 0x77, unsigned char dispbuf[6]; void disp() {
unsigned char i; for(i=0;i<6;i++) {
P0=LED[dispbuf[i]]; P1=1<
8、设fsoc=11.0592MHz,试编写一段程序,其功能 为对串行口初始化, 使之工作与方式1,波特率为1200b/s;并用查询串行口状态的方法,读出接收缓冲区的数据并回送到发送缓冲区。
#include
unsigned char c; TMOD=2; TH1=0xe8; TL1=0xe8;
TR1=1; SCON=0x50; while(1) {
while(!RI); RI=0; c=SBUF; SBUF=c; while(!TI); TI=0; } }
9、 某MCS-51单片机系统使用定时器/计数器T0定时,从P1.0产生频率为100kHz等宽矩形波。假定单片机的晶振频率为12MHz,不考虑T1。完成下列各问题: (1)计算方波周期和T0的定时时间。 (2)计算T0在定时时间内的计算值;
(3)应该选T0以何种模式工作最恰当?写出模式字TMOD的值; (4)计算T0的定时初值;
(5)编写主函数和T0中断服务函数,使T0以中断方式P1.0产生方波。
(1)10μs,5μs
(2)5
(3)模式2,TMOD=0X22 (4)251 (5)C语言程序 #include
T0中断服务函数: void int_t0(void) interrupt 1 { P1_0=~P1_0; }
9-1、某MCS-51单片机系统使用定时器/计数器T1定时,产生频率为1000Hz方波声音信号,要求方波信号从P3.5引脚输出。设fosc=6MHz,不考虑T0.完成下列各问题: (1)计算声音信号的周期和T0的定时时间。 (2)计算T1在定时时间内的计数值;
(3)应该选T1以何种模式工作最恰当?写出模式字TMOD的值; (4)计算T1的定时初值;
(5)编写主函数和T1中断服务函数,使T1以中断方式P3.5引脚产生方波。
(1)1ms,500μs (2)250
(3)模式2,TMOD=0X25 (4)6
(5)C语言程序 #include
T1中断服务函数: void int_t1(void) interrupt 3 { P35=~P35; }