单片机复习题c语言
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit kai=P3^5;
sbit beep=P3^2;
sbit wela1=P1^7;
sbit wela2=P1^6;
void delay(uint z);
void display();
uchar code table[]={0xc0,0xf9,0xa4};
uchar a,aa,b,bb,cc;
uint dier;
void main()
{
TMOD=0x10;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
ET1=1;
TR1=1;
EA=1;
a=0xfe;
kai=0;
bb=0;
while(1)
{
display();
delay(1);
if(cc==100)
{
if(bb==0)
{ P0=a;
kai=0;
a=_crol_(a,1);
dier=1;
aa++;
if(aa==10)
{
bb=1;
aa=0;
}
if(a==0xfe)
beep=0;
if(a!=0xfe)
beep=1;
}
if(bb==1)
{ P0=a;
kai=0;
a=_cror_(a,1);
dier=2;
aa++;
if(aa==10)
{
bb=0;
aa=0;
}
if(a==0x7f)
beep=0;
if(a!=0x7f)
beep=1;
}
cc=0;
delay(500);
kai=1;
}
}
}
void delay(uint z)
{
uintx,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
void display()
{
P0=0xff;
wela1=0;
P0=0x8c;
delay(1);
wela1=1;
delay(1);
P0=0xff;
wela2=0;
P0=table[dier];
delay(1);
wela2=1;
delay(1);
}
void T1_time() interrupt 3
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
cc++;
}
2. 一道单片机的练习题,c语言版的,stc89c52
你主程序中并没有发送序号啊
只是把数据发出去了
在每次发送数据前加一个发送序号程序不过OK了
3. 单片机C语言设计编程题
#include sbit pluse=P1^0; void t0isr() interrupt 1 { TH1=(65536-10000)/256; TL1=(65536-10000)%256; pluse=~pluse; } main() { TMOD=0x10; TH1=(65536-10000)/256; TL1=(65536-10000)%256; TR1=1; ET1=1; EA=1; while(1); }
4. 单片机C语言程序设计题
这是两个题啊。哈哈好做,第一个有C语言的冒泡法排序,第二个用中断,读,输出就可以
5. 单片机C语言试题求解
定时器计数频率为12MHz/12=1MHz,则计一个数为1us,最大65536*1us=65.536ms,计数器向上计数,则定时50ms为65536-50000=15536=0x3CB0,所以TH0=0x3C, TL0=0xB0
6. 单片机复习题(C语言)
一. 填空题
1. MCS-51单片机是____8____位机,其最大程序容量可达___64_____K字节,有_____4___个并行口和____32____条I/O管脚。
2. MCS-51单片机正常工作所必须的外部硬件电路是___电源_____、___时钟_____、__复位______。
3. MCS-51单片机复位电平是___高_____电平,正常工作时复位端为__低______电平,复位后并所有行口的输出为____高____电平。
4. MCS-51单片机内部结构中,四个基本功能单元分别是___CPU_____、__RAM______、____ROM____、___定时器计数器I/O口_____;三个扩展功能单元分别是____?____、___?____、___?_____。
5. MCS-51单片机内部RAM四个分区分别是__00H到1FH(R0-R7)可位寻址____、____ _ 20H-2FH___、_30H-7FH__ _____、__80H-FFH______。
6. MCS-51单片机___P0_____口没有内部上拉电阻;并行口作为输入口使用时必须保证该端口场效应管__开漏______,即向该端口写___0xff_____,此时该端口的输出锁存器Q端为___1(高电平)_____。
7. MCS-51单片机计数器工作在方式1和方式2的最大计数值分别是_____65536______、___256________。
8. MCS-51单片机若单片机的主时钟振荡频率为6MHz,定时器工作在方式1和方式2的最大定时时间分别是_____自己算!!______ms、___不懂看书!!________us。基本指令周期是___0.5-2_______us。
9. MCS-51单片机的五个中断源分别是___INT0______、__T0_______、_____INT1_____、___T1______、___UART_______。
10. 编写程序常用的三种程序结构是 __顺序结构_______、__循环结构_______、___选择结构_______。
11. C语言语法中,数据类型unsigned char 定义的是____8_____位无符号数;数据类型unsigned int定义的是___16______位无符号数。对8位和16位有符号数,定义数据类型关键词为___signed char______、____short_____。
12. 单片机上电后是从主函数void main()的___0x0000H______位置运行。
13. 单片机C语言编程时必须有的固定结构的语句是#include <reg51.h>、void main()以及____while_____。
14. keil 集成开发软件的三个主要功能是___编译______、__调试_______、___仿真______。
15. 十进制数100对应的十六进制数是____64_____、二进制数是___01100100______。
二. 读程序题
默认有关变量x、y、z、a、b、c、i均为unsigned int (8为无符号数)(这个是不是打错了)请写出局部程序运行后的结果,用十进制表示。
1. x = ___6___, y = ___3___, z = __11____ , a = ___5___, b = ___15___, c = ___252___。
x = 50/8; y = 100%12; z = 240+26;
a = z>>1; b = x | z; c = ~y;
2. x = _183_____, y = __10____, z = __11____ , a = __10____, b = __10____, c = ___10___。
x = 0xa5 ^ 0x12; y = 5*2; z = y++
a = --z; b = a & y; c = (a+z)/2;
3. x = ___6___, y = __12____, i = ___3___。
x=0;y=0;
for (i=1;i<=3;i++){
x = x+i;
y = y + i*2;
}
4. x = __20____, y = ___10___, z = ___81___ , a = __8____, b = ____9__,
c = __48____, i = ___8___。
a=0;
if (!a){
x=20; y=x<<2; z=y++;
}else{
x=10; y=x<<2; z=y++;
}
i=2<<2; y=10;
if (i>3 && y){
a=y & 0x0c;
b=++i;
c=x^y;
}
随便做的,有些东东忘了!不懂的自己回去看看书去。
7. 单片机考试题目及答案(单片机考试复习题)
《单片机原理及接口技术》试卷(闭卷A卷)
一.单项选择题(每题1分,共20分)
1.DPTR为( C)
A.程序计数器 B.累加器 C.数据指针寄存器 D.程序状态字寄存
2.PSW的Cy位为( B)
A.辅助进位标志 B.进位标志 C.溢出标志位 D.奇偶标志位
3.MCS-51单片机片内ROM容量为( A )
A.4KB B.8KB C.128B D.256B
4.MCS-51单片机片要用传送指令访问片外数据存储器,它的指令操作码助记符是以下哪个?( B)
A.MUL B.MOVX C.MOVC D.MOV
5.direct表示( C )
A.8位立即数 B.16位立即数 C.8位直接地址 D.16位地址
6.堆栈指针SP是一个( A )位寄存器
A.8 B.12 C.13 D.16
7.定时器/计数器工作方式选择中,当M1M0=11时,其工作方式为( D )
A.方式0 B.方式1 C.方式2 D.方式3
8.定时器/计数器工作方式0为( A)
A.13位定时/计数方式 B.16位定时/计数方式
C.8位可自动装入计数初值方式 D.2个8位方式
9.MCS-51的最小时序定时单位是( A )
A.节拍 B.状态 C.机器周期 D.指令周期
10.#data表示( A )
A.8位直接地址 B.16位地址 C.8位立即数 D.16位立即数
11.主频为12MHz的单片机它的机器周期为(C )
A.1/12微秒 B.0.5微秒 C.1微秒 D.2微秒
12.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应( A )。
A.外部中断0 B.外部中断1 C.定时器0中断 D.定时器1中断
13.MOVC A ,@A+PC指令对于源操作数的寻址方式是( D )
A.寄存器间接寻址 B.寄存器寻址 C.立即寻址 D.变地寻址
14. 为( C )
A.复位信号输入端 B.地址锁存允许信号输出端
C.程序存储允许输出端 D.程序存储器地址允许输入端
15.MCS-51单片机的一个机器周期由(D )个振荡脉冲组成。
A.2 B.4 C.6 D.12
16.MOVC A ,#30H指令对于源操作数的寻址方式是( C )
A.寄存器间接寻址 B.寄存器寻址 C.立即寻址 D.变地寻址
17.计算机能直接识别的语言为( B)
A.汇编语言 B. 机器语言 C.自然语言 D.硬件和软件
18.PSW的OV位为( C )
A.辅助进位标志 B.进位标志 C.溢出标志位 D.奇偶标志位
19.在单片机中( A )为程序存储器。
A.ROM B. RAM C.EPROM D.EEPROM
20.能用紫外线光擦除ROM中的程序的只读存储器为( C )
A.掩膜ROM B.PROM C.EPROM D.EEPROM
二、填空(每题 2 分,共 10 分)
1、从单片机系统扩展的角度出发,单片机的引脚可以构成三总线结构,即 数据
总线、地址总线和 控制 总线。
2、ALE信号的作用是 锁存低8位地址信号(或 低8位地址锁存) 。
3、MOV A,40H 指令对于源操作数的寻址方式是 直接 寻址。
4、PC存放的内容为: 下一条要执行的指令的地址 。
5、MCS-8051系列单片机字长是 8 位,有 40 根引脚。
三、简答题:(共 25 分)
1、什么是单片机?简述单片机的应用领域。(15 分)
答:单片微型计算机简称单片机,它是把微型计算机的各个功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROM、定时/计数器及I/O接口电路等集成在一块芯片上,构成一个完整的微型计算机。
应用领域:(1)单片机在智能仪器仪表中的应用;(2)单片机在工业控制中的应用;(3)单片机在计算机网络与通信技术中的应用;(4)单片机在日常生活及家电中的应用。
2、什么叫中断?中断有什么特点?(10 分)
答:(1)“中断”是指计算机在执行某段程序的过程中,由于计算机系统内、外的某种原因,当出现CPU以外的某种情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序。
(2)特点:分时操作;实时处理;故障处理。
四.已知:(R1)=32H,(30H)=AAH,(31H)=BBH,(32H)=CCH,求执行下列指令后累加器A.50H.R6.32H.和P1口中的内容。(10分)
MOV A ,#30H
MOV 50H ,A
MOV R6 ,31H
MOV @R1 ,31H
MOV P1,32H
解:上述指令执行后的操作结果为:
A=30H
(50H)=30H
R6=BBH
(32H)=BBH
P1=BBH
五、分析执行如下指令后,PSW中的Cy 、Ac、OV、P各为多少? A中的结果用十进制表示是多少?(15分)
MOV A,#85H
ADD A,#0AEH
Cy=1,Ac=1,OV=1,P=0。(A)=51
六、编程题: (每小题10分,共20分)
1、在程序中定义一个0——9的平方表,利用查表指令找出累加器A=03的平方值。(10分)
解:编程如下:
ORG 0050H
MOV DPTR,#TABLE ;表首地址→DPTR
MOV A,# ;03→A
MOVC A ,@A+DPTR ;查表指令,25→A
SJMP $ ;程序暂停
TABLE:DB 0,1,4,9,16,25,36,49,64,81 ;定义0——9平方表
END
2、试采用两种方法编制程序,开放定时器T1的溢出中断。(10分)
解:编程如下:
MOV IE,88H
或者MOV A8H,88H
或者 SETB EA
SETB ET1
8. 求解一道单片机C语言编程题,急
#include"AT89X52.h"
sbit BUTTON = P1^1;
sbite LED = P1^0;
unsigned int reg;
void main(void)
{
while(1)
{
if (!BUTTON)
{
reg= 5000;
while(--reg);
if (!BUTTON)
{
LED = ~LED;
while(!BUTTON);
}
}
}
}
9. c语言单片机考试题目急用
1、uchar state1;//主函数中 有 state1 变量,整个程序却没有改变量定义,可知,第1空即是该变量的定义。
2、state1=0xfe; 或者 state1=~1;//图中 LED为 低电平驱动,D1为 P10,循环中直接将state1的值赋值给 P1,所以,要想D1亮,state1 的值就 必须=0xfe
3、temp=4;//题目要求 亮灯 按 D1\3\5\7 执行,只有 4个步骤,且 for循环的 步进值 只有 -1(temp--),结束条件为temp=0,故temp 的初始值 应= 结束值-步进值×步骤数=0-(-1)×4=4。
4、state1=(state1<<2)+3;//本语句的前半截 为 左移2位,则低2位变为0,需要补充2个1(即0000 0011b=3),以关闭低2位 的灯。
5、j<q;//但这个时间到底多少,没有标准答案,定时不能靠延时函数。晶振不一样,时间不一样。编译器不同,编译结果不一样。单片机类型不同,延时结果不一样。