《单片机C语言程序设计》练习题
- 格式:doc
- 大小:37.50 KB
- 文档页数:8
《单片机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()