《单片机C语言程序设计》练习题

  • 格式:doc
  • 大小:37.50 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《单片机C语言程序设计》练习题

1.Keil软件的源文件的建立、工程的建立、工程的设置过程?

打开keil软件,在硬盘中新建一个文件夹,以保存本实验中所产生的文件,点击“文件”菜单中的“新建”,新建一个源文件,将程序输入文件中,点击“文件”菜单中的”保存”,,给源文件取名并保存为ASM文件类型。

点击“工程”菜单中的“新建工程”新建一个工程,给工程取名,并与源文件保存在同一文件夹中,在“CPU选择的对话框中,选择ATMEL公司的At89C52单片机,右击“source Group”,选择“Add File to Group....”,将源文件加入到工程,右击“Target”,选择“option for Target......”,选择“输出”列,并选择创建HEX 文件,对工程文件调试、编译,无误后生成HEX文件。

2.程序调试时可以运用哪些方法进行调试?

全速运行,单步运行,连续运行,断点运行

3.安装PL2303驱动软件后如何确定该虚拟端口的?

鼠标右键点击桌面的“我的电脑”==》设备管理器==>端口,可查看到“Prolific USB-to-Serial comm Port(COM4,根据串口使用情况不同而不同),此即为虚拟端口”

4.STC-ISP如何将程序下载到开发板中?

打开STC-ISP软件,选择单片机型号,串行口端口,打开HEX文件,点击Download 下载,即可实现自动下载编程。

5.编程使8个发光二极管按如下方式循环点亮。(1)L6、L4、L2、L0全亮全灭;

(2)L7、L5、L3、L1全亮全灭;(3)L7、L6……L0依次单个点亮;(1)采用软件延时,各时间间隔为0.5秒。每次循环结束时蜂鸣器发出一声报警声音。

(2) 采用外部中断1方式来控制蜂鸣器,即有外部中断按键时,蜂鸣器发出

一声报警声音。

#include

#define uint unsigned int

sbit kai = P3^5;

sbit beep= P3^2;

void mDelay(uint Delay)

{

uint i;

for( ;Delay>0;Delay--)

for(i=0;i<124;i++);

}

void main()

{

kai=0; //注意,有些实验板可能不是P3.5

for( ; ; )

{

P0=0xAA; //LED亮

mDelay(5000);

P0=0xFF;

mDelay(5000);

P0=0x55;

mDelay(5000);

P0=0xff; //LED灭

mDelay(5000);

P0=0x7F;

mDelay(5000);

P0=0x3F;

mDelay(5000);

P0=0x1F;

mDelay(5000);

P0=0x0F;

mDelay(5000);

P0=0x07;

mDelay(5000);

P0=0x03;

mDelay(5000);

P0=0x01;

mDelay(5000);

P0=0x00;

mDelay(5000);

beep=0; //蜂鸣器叫一声

mDelay(500);

beep=1;

}

}

6.采用定时器1按方式1工作,要求编写程序模拟如下一个循环彩灯,间隔时

间0.5s。(1)L6、L4、L2、L0全亮全灭;(2)L7、L5、L3、L1全亮全灭;(3)L7、L6……L0依次单个点亮;

#include

#define uchar unsigned char

#define uint unsigned int

sbit Power=P3^5;

uchar

tab[]={0xAA,0xFF,0x55,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};

uint n,i;

void Int0() interrupt 3 {

TH1=(65536-50000)/256; TL1=(65536-50000)%256; n++;

}

void main()

{

i=0;

n=0;

Power=0;

TMOD=0x10;

TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1;

ET1=1;

TR1=1;

while(1)

{

if(n>10)

{ n=0;

P0=tab[i];

i++;

}

if(i>11) i=0;

}

}

7.编写程序完成键盘与LED数码管的动态显示,上电初始状态为“0 0 0 0”或

“- - - -”,延时一段时间后熄灭。当键盘输入相应的数字时或字符时在数码管上显示出来,当数字或者字符超过4位时,从LED数码管从右到左循环显示。#include

#define uchar unsigned char

#define uint unsigned int

sbit Power=P3^5;

uchar

tab[]={0xAA,0xFF,0x55,0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; uint n,i;

void Int0() interrupt 3

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

n++;

}

void main()