好文档 - 专业文书写作范文服务资料分享网站

单片机期末考试卷集锦

天下 分享 时间: 加入收藏 我要投稿 点赞

(3)拟选T1以模式几定时?写出模式字TMOD的值; (4)计算T1的定时初值;

(5)编写主函数和T1中断服务函数,实现流水灯功能。 答案:(1)低电平发光二极管亮 (2)125ms;2次

(3)模式1,TMOD=0X11 (4)3036

(5)C语言程序

#include 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; }

13、在一个fosc为12MHz的89C52系统中接有一片ADC0809,它的地址为7FFFH,试编写ADC0809初始化程序和定时采样通道2的程序(假设采样频率为1ms/次,每次采样4个数据)。 答案:#include #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; } }

14、编写一函数move_xdata,把程序存储器地址从0x200开始的50个字节数据,传送到片外RAM的数组array中。

答案:unsigned char xdata array[50]; void move_xdata() { unsigned char i; unsigned char code *pp; pp=0x200; for(i=0;i<50;i++) array[i]=*(pp+i); } }

15、编写一函数move_xdata,把程序存储器地址从0x200开始的50个字节数据,传送到片外RAM的数组array中。

答案:(1)定时时间为1000μs/2,

计数值为1000μs/2/机器周期=500,T0初值为65036 (2)C语言程序: #include sbit P10=P1^0; 主函数: main() { TMOD=0x21; TL0=12; TH0=254; EA=1; ET0=1; TR0=1; while(1); }

T0中断服务函数:

void int_t0(void) interrupt 1 { TL0=12; TH0=254; P10=~P10; }

16、编写一函数to_data,把传送给它的十六进制数的ASCII码转换成十六进制数,并将其返回。 答案:unsigned char to_asc(char d) { d-=0x30; If(d>9) d-=7; return d; }

单片机期末考试卷集锦

(3)拟选T1以模式几定时?写出模式字TMOD的值;(4)计算T1的定时初值;(5)编写主函数和T1中断服务函数,实现流水灯功能。答案:(1)低电平发光二极管亮(2)125ms;2次(3)模式1,TMOD=0X11(4)3036(5)C语言程序#includeunsignedcharaa=0x
推荐度:
点击下载文档文档为doc格式
6gl811uh598xswm2yhl07916095ebr009cd
领取福利

微信扫码领取福利

微信扫码分享