模块一单片机结构及开发设计流程
课题一单片机结构
1、画出89C51单片机的引脚排列图。
2、画出89C51单片机的引脚功能图。
3、画出89C51单片机的基本组成框图。
4、叙述89C51单片机各部分的具体组成情况。
课题二单片机工作条件
1、画出51系列单片机内部时钟和外部时钟电路接线图。
2、画出51系列单片机上电复位和按键复位电路接线图。
3、画出51系列单片机工作条件接线图。
课题三单片机输入/输出端口结构
1、画出51系列单片机P0、P1、P
2、P3口位结构图。
2、叙述51系列单片机P0~P3口使用注意事项。
课题四单片机开发设计流程
1、用Protel软件画出按键左移亮灯电路原理图。
2、用Protel软件设计出按键左移亮灯电路印制电路板图。
3、制作按键左移亮灯电路板。
4、连接仿真器。
5、运行仿真软件,输入按键左移亮灯程序,编译、调试及仿真运行程序。
6、连接编程器。
7、运行编程器软件,将调试通过的按键左移亮灯程序目标代码写入89C51单片机。
8、将经过编程的89C51单片机插入电路板上的单片机IC插座中,脱机运行,观察电路运
行情况。
模块二单片机指令系统及汇编语言程序设计
课题一程序设计基础
1、简述单片机存储器总体分配情况。
2、简述单片机片内数据存储器结构。
3、简述单片机七种寻址方式。
1
4、简述单片机不同存储器空间的寻址方式。
5、回答下列指令的寻址方式:
(1)MOV A, #6AH
(2)MOV A, #0E#H
(3)MOV A, 3FH
(4)MOV A, 7BH
(5)MOV A, R1
(6)MOV A, R3
(7)MOV A, @R0
(8)MOV A, @R1
(9)MOVX A, @DPTR
(10)MOVC A, @A+DPTR
(11)MOV A, @A+PC
(12)JZ 50H
(13)SETB 01H
课题二延时程序
1、将本课题任务二中的R3的值改为01H、02H和08H,观察亮灯的间隔时间有何变化?
2、将本课题任务二中的RL A指令改为RR A指令,观察亮灯的顺序有何变化?
3、将本课题任务二中的亮灯数据初值改为03H、07H和55H,观察亮灯规律有何变化?
4、设计一延时5S的延时程序,并替代任务二中的延时程序,观察亮灯间隔时间。
5、设单片机振荡频率为6MHz,试精确计算下列延时子程序的延时时间。
DEL: MOV R7, #0FAH
DEL1: MOV R6, #0F8H
NOP
DEL2: DJNZ R6, DEL2
DJNZ R7, DEL1
6、设单片机振荡频率为12MHz,试估算下列延时子程序的延时时间。
MOV R5, #20
K1: MOV R6, #250
K2: DJNZ R6, K2
DJNZ R5, K1
2
课题三算术运算程序
1、若R0=20H、R1=30H、R2=40H、R3=50H,运行任务一中的程序,观察R4、R5和R6
的值。
2、若R2=80H、R3=60H、R4=40H、R5=20H,运行任务二中的程序,观察R6和R7的值。
3、若CY=1,R0、R1、R2和R3的值如第1题,将任务一中的ADD A,R3指令改为ADDC
A,R3指令,运行程序,观察结果与第1题有何不同,为什么?
4、若CY=1,R2、R3、R42和R5的值同第2题,将任务二中的CLR C指令去掉,运行
程序,观察结果与第2题有何不同,为什么?
5、若两个3字节数分别存放在50H、51H、52H单元和60H、61H和62H单元,高位在前,
低位在后。编写程序实现两个3字节数相加运算,结果存放在70H、71H、72H、73H 单元,高位在前,低位在后。自行设置数据,观察运行结果。
6、若两个3字节数分别存放在60H、61H、62H单元和70H、71H和72H单元,高位在前,
低位在后。编写程序实现两个3字节数相减运算,结果存放在50H、51H、52H单元,高位在前,低位在后。自行设置数据,观察运行结果。
课题四代码转换程序
1、设内部RAM 30H单元的值为7FH,在计算机上运行本课题任务一的程序,检查运行结
果31H和32H单元的值。
2、在本课题任务一的程序中,如转换得到的BCD码分别存储在独立的单元中,如BCD码
百位、十位和个位分别存于40H、41H和42H单元中,程序应如何修改?修改后上机运行。
3、在本课题任务一的程序中,在十和个位BCD码合并时,如不用“ORL A,B”指令进
行合并,而用“ADD A,B”指令是否可以,程序修改后上机试运行。
4、在本课题任务二的程序中,设有两个压缩BCD码20H、35H存于50H单元和51H单元,
上机运行程序,检查60H、61H、62H和63H单元的值。
5、在本课题任务二中,如50H单元开始的存储块中存放的是非压缩BCD(即一个单元存放
一个BCD码),程序应如何修改?上机调试程序并检查运行结果。
6、在本课题任务二中,如只进行一个BCD码转换,即一个非压缩BCD码存于50H单元,
转换结果存于60H单元,那么程序又该如何修改?上机调试程序并检查运行结果。
3
课题五输入输出程序
1、将本课题任务一中的LED亮灯电路制作成印制电路板,然后用仿真器对任务二中的LED
亮灯程序进行仿真调试,再用编程器将调试通过的程序下载到单片机中并运行,观察电路运行情况。
2、将本课题任务二中的K1子程序中A的初始值FEH改为FCH,即将该子程序的第一条
指令MOV A,#0FEH改为MOV A,#0FCH,运行程序,观察并分析运行情况。还可将该初始值改为其他数据,修改后运行程序,观察并分析运行情况。
3、在本课题任务一设计的电路中,当按下S1键时,要实现如下图所示的亮灯方式,则K1
子程序应如何修改?提示:对K1子程序中的MOV A,#0FEH指令、JNB ACC.7,M1指令和RL A指令加以修改即可。
4、将本课题任务二K2子程序中A的初始值FEH改为FAH,即将该子程序的第一条指
令MOV A,#0FEH改为MOV A,#0FAH,运行程序,观察并分析运行情况。还可将该初始值改为其他数据,修改后运行程序,观察并分析运行情况。
5、在本课题任务一设计的电路中,当按下S2键时,要实现如下图所示的亮灯方式,则K2
子程序应如何修改?提示:对K2子程序中的MOV A,#0FEH指令、JNB ACC.7,M2指令和RLC A指令加以修改即可。
6、若在本课题任务一设计的电路中增加一个按键K3,实现上面题3的亮灯功能,则原理图
4
和程序应如何修改?
模块三单片机简单应用电路设计实例
课题一彩灯控制器设计
1、用Protel软件绘制出本设计任务的电路原理图,并设计印制电路板图及制作印制电路板。
2、连接好仿真器,将本设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接好编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、自行设计一亮灯数据表,修改程序后仿真运行,观察电路运行情况。
5、要求每个亮灯状态延时时间为2S,程序应如何修改,程序修改后仿真运行,观察电路运
行情况。
6、如果发光二极管采用共阴连接方式,即8只发光二极管阴极相连后接地,阳极分别通过
一个电阻接到P2口的8位,仍按图3-1要求的方式亮灯,则亮灯数据表应如何修改,修改后仿真运行,观察电路运行情况。
课题二加法运算器设计
1、用Protel软件绘制出本设计任务的电路原理图,并设计印制电路板图及制作印制电路板。
2、连接好仿真器,将本设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接好编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、如果采用共阴数码管,则电路应如何修改,程序中七段显示数码表中的数据又应如何修
改,修改后仿真运行。
5、程序中如将十进制数调整指令DA A删除,仿真运行,观察是否能得到正确的结果数
据。
6、如采用MOVC A,@A+PC查表指令进行查表,则程序应如何修改,修改后仿真运行。
课题三数显抢答器设计
1、用Protel软件绘制出本设计任务的电路原理图,并设计印制电路板图及制作印制电路板。
2、连接仿真器,将本设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、如果删除用于按键去抖动的12ms延时子程序调用指令,即删除LCALL DELAY指令,
仿真运行,观察运行情况。
5、将延时程序的延时时间修改为1ms,仿真运行,观察运行情况。
6、删除每个按键功能程序中的动态停机指令SJMP $,仿真运行观察运行情况。
5
课题四篮球比赛计分器设计
1、用Protel软件绘制出本设计任务的电路原理图,并设计印制电路板图及制作印制电路板。
2、连接仿真器,将本设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、如把按键去抖动程序删除,即删除LCALL DELAY指令,仿真运行,观察运行情况。
5、如把等待按键释放的程序段删除,即删除“W AIT:MOV A,P0”、“ANL A,#0FH”、“CJNE
A,#0FH,W AIT”三条指令,仿真运行,观察运行情况。
6、如按S1键加2分,按S2键加4分,按S3键加6分,按S4键减2分则程序应如何修改,
修改后仿真运行,观察运行情况。
模块四单片机内部三大功能
课题一中断系统及其应用
1、简述中断处理过程。
2、简述中断编程结构。
3、用Protel软件绘制出本课题中的外部中断应用电路原理图,并设计印制电路板图及制作
印制电路板。
4、连接仿真器,将本课题中的外部中断应用程序输入计算机,并进行仿真调试及运行。
5、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
6、删除外部中断应用程序中的第一条指令LJMP MAIN,程序修改后仿真运行,观察电路运行情况。
7、将主程序放在存储器的开始处,程序修改后仿真运行,观察电路运行情况。
8、将外部中断程序放在中断入口地址处,程序修改后仿真运行,观察电路运行情况。
课题二定时/计数器及其应用
1、简述定时/计数器初始化步骤。
2、用Protel软件绘制出本课题中定时器的应用电路原理图,并设计印制电路板图及制作印
制电路板。
3、连接仿真器,将本课题两个例题中的定时器应用程序输入计算机,并进行仿真调试及运
行。
4、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并用示波器测量P1.0引脚的电压波形。
6
5、在本课题例4-2中,如采用方式0,试计算T1的初值,并设置TMOD,程序修改后仿真运行,用示波器监测P1.0引脚的电压波形。
6、在例4-2中,如在中断程序中不对T1重新赋初值,即删除MOV TH1,#0FEH和MOV TL1,#0CH两条指令,程序修改后仿真运行,用示波器测量P1.0引脚的电压波形。
7、在例4-3中,如将JBC TF1,T1OPR指令改为JB TF1,T1OPR,程序修改后仿真运行,用示波器测量P1.0引脚的电压波形。
课题三串行通信及其应用
1、简述串行口初始化的步骤。
2、简述SM2、TB8和RB8位的作用。
3、用Protel软件绘制出本课题中两个例题的串行口应用电路原理图,并设计印制电路板图
及制作印制电路板。
4、连接仿真器,将本课题中两个例题的串行口应用程序输入计算机,并进行仿真调试及运
行。
5、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
6、如在例4-4中,单片机RXD引脚只接74LS164的A引脚或B引脚,电路修改后运行程序,观察电路运行情况。
7、如在例4-4中,74LS164的Q0接数码管的a段,Q1接b段,……,Q6接数码管的g段,电路修改后,运行程序,观察电路运行情况。
8、如在例4-5中应用串行通信方式2或方式3,则程序应如何修改,修改后仿真运行,观察电路运行情况。
模块五单片机接口电路及应用
课题一键盘接口电路及其应用
1、用Protel软件绘制出本课题两个设计任务的电路原理图,并设计印制电路板图及制作印
制电路板。
2、连接仿真器,将本课题两个设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、分析本课题任务一和任务二中的键盘扫描及处理程序,并分析键值的计算方法,是否还
能用其它方法来编写键盘扫描程序。
5、在任务一中自行设计几组亮灯数据,上机调试运行,观察电路运行情况。
7
6、在任务二中将密码位数修改为10位并自行设计一组密码,程序修改后上机调试运行,
观察电路运行情况。
7、在本课题任务一和任务二的键盘扫描程序中,将按键去抖动和等待按键释放程序段删除,
程序修改后上机调试运行,观察电路运行情况,并分析原因。
课题二显示器接口电路及其应用
1、用Protel软件绘制出本课题设计任务的电路原理图,并设计印制电路板图及制作印制电
路板。
2、连接仿真器,将本课题设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、分析本课题任务中数码管动态显示子程序和T0中断服务程序的编程方法。
5、修改数码管动态显示子程序中每个数码管的点亮时间,修改后上机调试运行,并观察电路运行情况。
6、如在本课题任务中用T1方式1定时10ms,则程序应如何修改,修改后上机调试运行,并观察电路运行情况。
7、如在本任务中用T1方式2,则程序又应如何修改,修改后上机调试运行,并观察电路运行情况。
课题三模数及数模转换接口电路及其应用
1、用Protel软件绘制出本课题设计任务的电路原理图,并设计印制电路板图及制作印制电
路板。
2、连接仿真器,将本课题设计任务的程序输入计算机,并进行仿真调试及运行。
3、连接编程器,将仿真通过的程序代码下载到单片机中,脱机运行并观察电路运行情况。
4、试根据任务中给出的电路参数及热敏电阻的分度值,计算出经ADC0809转换后的每一温度下的电压温度数据。
5、如在温度控制器电路中将热敏电阻接于IN1通道,则电路和程序应如何修改,修改后上机调试运行,并观察电路运行情况。
6、如中温度控制器电路(见图5-23)中单片机的P2.7作为ADC0809的控制信号,即将P2.3控制改为用P2.7控制,则电路和程序又应如何修改,修改后上机调试运行,并观察电路运行情况。
8
9