大三单片机

更新时间:2024-05-29 23:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

选择题 1. 1.C51中char型数据的表示范围是(A)(uchar是0-255、int是-32768-32767、uint是0-65535)

A.-128~127 B.0~255 C. -127~127 D.-32767-~32767 填空题:

1. 单片机是一种可通过编程控制的微处理器/ 存储器、各种输入输出接口的芯片

2. A/D转换过程是通过 采样 , 量化 , 编码 这三个步骤完成的.。 3. 单片机是一种数字集成芯片,只有两种电平:高电平和低电平。 4. 二进制与八、十、十六进制互换。

5. 头文件的作用:在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用头文件的位置处,免去我们每次编写同类程序都要将头文件的语句重复编写。

6. 单片机能接收的下载文件类型:.hex。 7. C语言中注释的写法://?.和/*?. */。

8. 电阻标号与阻值:103表示阻值大小为10*10^3;102表示其阻值大小为10*10^2;150表示阻值大小为15*10^0;1002表示阻值大小为100*10^2; 3R0表示阻值大小为3欧;4K7表示阻值大小为4.7千欧;R002表示阻值大小为0.002

9. 发光二极管具有:单向导电性。

10.时钟周期:时钟频率的倒数1/12us。机器周期:它由12个时钟周期组成。指令周期:是CPU执行一条指令的时间,一般需要1-4个机器周期。 11.盘分类:独立键盘、矩阵键盘

分类:弹性小按键、贴片式小按键、自锁式小按键。 12. 波特率的概念,波特率和定时器初值的计算方法

单片机或计算机在串口通信时的速率用波特率表示,它定义为每秒传输二进制代码的位数

1波特=1位/秒 单位是:bps(位/秒)

1字符有10位(1个起始位、1个停止位、8个数据位) 简单题:

1. 请说出建立keil 工程的步骤.: 答:(1)建立一个新工程单机[Project]菜单中的【New project】选项。 (2)选择工程要保存的路径,输入工程文件名。 (3)弹出对话框选择,选择89C52,点击确定。

(4)单击【file】菜单中的【New】菜单项,或单击界面上的快捷图标。新建文件后,单击保存图标,在【文件名(N)】编辑框中,输入要保存的文件名,扩展名为.C。 (5)回到编辑界面,单击【Target1】前面的“+”号,然后在【source group1】选项上单击右键,然后选择【Add Files to Group ‘Source Group1’】菜单项对话框。选中.C文件,单击【Add】按钮,在单击【Close】按钮,然后再单击左侧【Sourse Group1】前面的“+”号。 (6)这时【Source Group1】文件夹中多了一个子项【.C】,把代码文件都加在文件夹下,源代码文件就与工程关联起来了。

2. 单片机中一共有6个中断源,它们的符号、名称及产生条件: INT0—外部中断0,由P3.2端口线引入,低电平或下降沿引起,入口地址0003H。 INT1—外部中断1,由P3.3端口线引入,低电平或下降沿引起, 入口地址0013H。 T0—定时器/计数器0中断,有T0计数器计满回零引起的, 入口地址000BH。 T1—定时器/计数器1中断,有T1计数器计满回零引起的, 入口地址001BH。 T2—定时器/计数器2中断,有T2计数器计满回零引起的, 入口地址002BH。 TI/RI串行口中断,串行端口完成一帧字符发送/接收后引起,入口地址0023H。

3.单片机的标号含义及封装类型。例如(STC89C52RC-DIP)

STC:前缀,公司名称。8:芯片为8051内核芯片。9:内部含Flash E^2PROM存储器。 C:为COMS产品。5:固定不变。 2:芯片内部程序存储空间的大小为8KB(1为4KB,3为12KB)。RC-STC:单片机内部RAM为512B C:商业级别,温度范围为0度—70度 PDIP:产品封装型号,表示双列直插式。

40:表示芯片外部晶振最高可接入40MHZ。

4.单片机的封装:DIP双列直插式封装;PLCC带引线的塑料芯片封装;QFP塑料方型扁平式封装和PFP;PGA插针网格陈列封装;BGA球栅阵列封装。 5.单片机的电平特性:

TTL电平 高电平为+5V,低电平为-5V。

计算机串口RS-232C 高电平为-12V,低电平为+12V 单片机和计算机间要用电平转换芯片MAX232

6. A/D,D/A的概念,分辨率,转换时间的计算,A/D转换的几个步骤

A/D 将模拟信号转化为数字信号 D/A 将数字信号转化为模拟信号 参数指标

1、 分辨率:8、10、12、16、24、32位 2、 转换误差: 3、 转换时间:

步骤:保持、量化、编号

7. 串行口的初始化步骤及编程,串口编程使用.

Void init() {

TMOD=0xfd; //设定T1定时器工作方式2 TH1=0xfd; //T1定时器装初值 TL1=0xfd; // T1定时器装初值 TR1=1; //启用T1定时器 REN=1; //允许串口接收

SM0=0; //设定串口工作方式1 SM1=1; //同上

EA=1; //开总中断开关 ES=1; //开串口中断 }

8.延时函数:

void delayms(uint xms) {

uint i,j;

for(i=xms;i>0;i--) for(j=110;j>0;j--); }

程序设计题:

1. 编写程序,实现在1602液晶上单字符屏移显示”I LOVE FLYING”。 #include lcden=1; #define uchar unsigned char delay(5); #define uint unsigned int lcden=0; uchar code table[]=”I LOVE } FLYING”; void init() sbit lcden=P3^4;//液晶使能 { sbit lcdrs=P3^5;//液晶数据命dula=0; 令选择 wela=0; sbit dula=P2^6;//段选 lcden=0; sbit wela=P2^7;//位选 write_com(0x38);//设置16x2uchar num; 显示,5X7点阵,8位数据接口 void delay(uint z) write_com(0x0c);//设置开显{ 示,不显示光标 uint x,y; write_com(0x07);//写一个for(x=z;x>0;x--) 字符后地址指针加1 for(y=110;y>0;y--); write_com(0x01);//显示清} 零 void write_com(uchar com) } { void main() lcdrs=0; { P0=com; init(); delay(5); write_com(0x80); lcden=1; for(num=0;num<13;num++)

delay(5); { lcden=0; write_data(table[num]} ); void write_data(uchar date) delay(5); { } lcdrs=1; while(1); P0=date; } delay(5);

1.共阳极和共阴极数码管异同,如何让一个数码管显示”8”.

共阴极:8个发光二极管的阴极在数码管内全部连接在一起(阴极接地) 显示“8”:给二极管除了“dp”送低电平外,其他送高电平 共阳极:8个 的阳极 显示“8:”给二极管除了“dp”送高电平外,其他送低电平 #include sbit dula=P2^6; sbit wela=P2^7; void main() { wela=1; P0=Oxfe;

3. 定时器/计数器的初值如何计算装入, 器中断子程序写法

初始化: TMOD=01; 初值装入: TH0=(65536-45872)/256; TL0=(65536-45872)%6 EA=1; ET0=1; TR0=1;

4.检测矩阵键盘程序: P3=0xfe; Temp=P3; temp=temp&0xf0; if(temp!=0xf0) {

Wela=0; dula=1; P0=Ox7f; dula=0; while(1); } 定时器/计数器初始化, 定时器/计数 While(1);

中断子程序: Void T0_time() interrupt 1 { TH0=(65536-45872)/256;

TL0=(65536-45872)%6 Num++; } delayms(10); temp=P3; temp=temp&0xf0; if(temp!=0xf0) }综合设计题:

1给出51单片机,/数码管2个/锁存器2片,画出硬件连接图,并写出单片机控制数码管显示”90”的程序. #include P0=0xfe; #define uint unsigned int wela=0; #define uchar unsigned char delayms(5); sbit dula=P2^6; dula=1; sbit wela=P2^7; P0=table[0]; uchar code table[]={ dula=0; 0x3f,0x06,0x5b,0x4f, P0=0xff; 0x66,0x6d,0x7d,0x07, wela=1; 0x7f,0x6f,0x77,0x7c, P0=0xfd; 0x39,0x5e,0x79,0x71}; wela=0; void delayms(uint z); delayms(5); void main() } { } while(1) void delayms(uint z) { { dula=1; uint x,y; P0=table[9]; for(x=z;x>0;x--) dula=0; for(y=110;y>0;y--); P0=0xff; } wela=1;

本文来源:https://www.bwwdw.com/article/mkc6.html

Top