uchar code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, //数值‘'0-F' '-' '熄灭' 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x80,0x00}; //共阴的数码管段选.将值送给P2口 uchar code wema[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07}; //位选,0-7位数码管
void delay(uint time) /*______________________________________________________*/ {
int a;
while(--time) for(a=110;a>0;a--);
/*___________________________________________
_______________________________________________________________________________*/ }
void main() /*主程序*/ { uchar i; }
现象:_____________________________________________________________________________________ _____________________________________________________________________________________________________________________________________________________________________________________。
5
while(1) { }
//_____________________________________________________________________。
//for语句判断条
//______________________________________________________________ //______________________________________________________________
for(i=0;i<8;i++)
{ P1=wema[i]; }
P2=duma[i+1];
delay(6); //_________________________________________________________________。
得分
五、设51单片机的工作频率为6MHz,采用T0中断方式产生1s定时,当1s定时间到,
从P1.0输出一个低电平点亮发光二极管。请计算定时初值(3分)并编写程序(8分)。
(共11分)
定时器初值计算: 程序:
6
附件2
孝 感 学 院
参考答案及评分标准
2011 — 2012 学年度第一学期期末考核试卷
课程名称: 单片机原理及应用 执笔人:
要求:明确标注每小题或每步骤得分点
一、 简答题。( 5分*7=35 分)
1、51单片机有几个存储器地址空间?画出它的存储器结构图。 答:P6
2、简述51单片机的P0-P3口各有什么特点?以P1口为例说明准双向I/O口的意义。 答:P11-12
3、Keil C51编译器所支持的中断函数一般形式是什么? 答:P74
4、什么是中断,常见的中断类型有哪几种?单片机的中断系统要完成哪些任务? 答:P94-P96
5、假设单片机的震荡频率fosc=6MHz,现在要求产生1ms的定时,试计算定时器T1在方式1时的初值。 答:P110:65036D或FE0CH
6、什么叫波特率?它反映的是什么?当串行口每分钟传送3600个字符(每个字符由1位起始位,8位数据,1位停止位组成)时,计算其传送波特率。
答:P131,每秒传送字符:3600/60=60, 60*10=600位/s 7、什么是串行通信?已知异步串行通信的字符格式为1个起始位、8个ASCII码数据位、1个奇偶校验位、2个停止位,字符“T”的ASCII码为54H,请画出传送字符“T”的帧格式。 答:P131,格式:0 0101 0100 1 11
二、选择题……………………………………………( 2分*10=20 分) BACCA BDBBC
三、名词解释……………………………………………( 3分*6=18 分) “哈佛”结构:P1 寻址方式:P33 波特率:P131 精度:P201 转换时间:P201 sfr:P78
四、根据原理图,在_______中给语句写注释(2*6=12分),并写出实验现象(4分)。(共16 分) void delay(uint time) /*定义延时子程序*/ { int a; while(--time) for(a=110;a>0;a--); //当time的值为非0时,执行空语句。 //当time为0时,跳出while语句。 }
/*主程序*/ void main()
{ 院系负责人签字
【第 1 页 7 共 2 页】
uchar i; while(1) //做一个死循环,让程序永远在while下面的大括号里面运行。 { for(i=0;i<8;i++) //for语句判断条 { P1=wema[i]; //表达式为假时执行括号里面语句。为真时,执行下一句。 P2=duma[i+1]; //要显示1-8.取值从1开始 delay(6); //修改此处的时间,可以明显感觉到动态扫描的原理。时间定的太长会有明显闪烁。 } } }
现象:单片机让数码管依次显示0到发F等字符,可以更改延时时间参数,让延时时间很短,可以看到数码管在宏观上静态显示,此过程为数码管的动态显示原理。
五、计算定时初值(3分)并编写程序(8分)。参考教材P112-113 初值:3CB0H
参考教材:单片机原理与应用——基于Proteus虚拟仿真技术.徐爱钧.机械工业出版社
【第 2 页 共 2 页】 8
相关推荐: