单片机原理实验指导书(张自友.08.3)
- 格式:doc
- 大小:131.00 KB
- 文档页数:31
单片机原理实验指导书(张自友.08.3) 51系列单片机实验 指导书
张自友 第3页 乐山师院物电系实验室编印 2008年3月 第1页
第一章 实验系统介绍 1.1. 系统组成 AEDK5196ET单片机实验系统包括:
1. AEDK5196ET实验系统主板(已插上8032CPU芯片);
2. U5196ETF测试板(已联接60芯短接电缆);
3. 9芯标准串行通讯电缆:1根;
4. 4芯电源联接电缆:1根;
5. 40芯仿真联接电缆:1根;
6. 实验用线束:20根;
7. 外部电源:选配件;
8. AEDK机电实验平台:选配件;
9. 系统软件安装盘:5张; 实验系统连接如右图所示: 1.2 基本实验项目
1. 软件编程实验,提供MCS-51、MCS-96算术子程序库;
2. 单片机本身并行口、串行口、定时/计数器、A/D转换、中断系统等实验; 第2页
3. 扩展8位存储器实验; 4. 扩展简单输入、输出口实验;
5. 扩展可编程并行口(8155/8255)实验;
6. 扩展可编程串行口(8251)实验;
7. 扩展可编程键盘显示控制器(8279)实验;
8. 扩展A/D(0809),D/A(0832)转换实验;
9. 双色灯显示实验(交通灯);
10.扫描键盘,LED数码管显示实验;
11.计算机音响实验;
12.继电器控制实验;
13.步进电机,直流电机控制实验;
14.标准(CENTRONIC)并行打印机实验; 1.3 系统快速入门 用户使用本系统进行实验时一般包括以下步骤: 启动运行环境->编写实验程序->调试实验程序->进行实验 1.启动运行环境 正确连接实验系统,确认各个开关处于正确位置,打开实验机电源。 运行LCAET软件,进入调试环境。选取主菜单的Options菜单进行通讯设置(串行口、波特率的设置)和模式设置(CPU类型、实验机状态),与实验 第3页
机建立通信联系。 2.编写实验程序 新建文件,保存成.asm(汇编)或者.c(c51)即可。 3.调试 打开源语句调试窗口并将目标码加载到实验机。然后用户就可以运用本系统提供的各种工具和方法进行调试。主要是观察程序的运行是否正常、有无走飞、各主要参数中间值是否与设计吻合。 4.进行实验 根据实验有关说明和用户编制的程序,完成连线(最好先关闭实验机电源,再进行)。通过调试软件加载、运行程序,观察实验有关现象。若现象与设计不符,则返回第三步,重新进行。 1.4 其它 未尽事宜,请查看系统软件帮助文挡。
第二章 MCS51系列单片机实验 第4页
实验一 I/O口输入输出实验 任务:1,实现用p1口输出控制发光二极管亮灭和延时闪烁、左右移动等。 2,实现用拨动开关K0~K7控制控制发光二极管L0~L7。 实验二 定时器及中断实验 任务:1,实现计数实验,如果按键5次则点亮发光二极管。 2,实现3秒和5秒定时,并用此信号控制交通灯。 3,外部中断实验:按下按键时,停止发光二极管的闪烁。 实验三 串口应用实验 任务:1,串并转换实验 2.串口通信实验 实验四 c51编程实验 任务:1,控制L0~L7左右移动闪烁。 2,对10次ad采样结果排序,输出其平均值
说明:1。本指导书不直接提供实验源代码,请实 第5页
验前先自己根据实验任务编写实验程序。 2.基本实验任务完成后,有时间可自己把附录的综合设计实验调试。
附录:综合设计实验参考 1.AD转换实验,用中断方法读结果,并在数码管上显示 ;CS8255----F228H,CS0809----F230H,P3.2----EOC,,IN0---0~5V(硬件连线) ;PC3~5-----LEDSA~LEDSC,PC2-------LEDSELECT(通过短路套接好) ;PA0~7-----LEDA~LEDDP(通过短路套接好) ;-------符号定义------------------------------------------- C8255 EQU 0F22BH ;8255命令口地址 P8255A EQU 0F228H ;8255 PA口地址 P8255B EQU 0F229H ;8255 PB口地址 第6页
P8255C EQU 0F22AH ;8255 PC口地址 C0809 EQU 0F230H ;ADC0809片选信号 LED0 DATA 50H ;显存区 LED1 DATA 51H LED2 DATA 52H ;--------主程序--------------------------------------- ORG 0000H AJMP MAIN ORG 0003H AJMP FX0 ORG 0030H MAIN: MOV SP,#60H MOV LED0,#00H ;置显示初始值 MOV LED1,#00H MOV LED2,#00H MOV DPTR,#C8255 ;8255初始化 MOV A,#80H ;8255 PA,PB,PC口输出 MOVX @DPTR,A 第7页
CLR IT0 SETB EX0 SETB EA ;开中断 MOV DPTR,#C0809 MOVX @DPTR,A ;启动AD转换 LOOP: ACALL DISP ;显示子程序 AJMP LOOP ;主循环 ;-------------8255驱动数码管显示子程序------------------------------- DISP: MOV DPTR,#P8255C MOV A,#00H MOVX @DPTR,A ;通过8255C口选种第一个数码管 MOV DPTR,#LEDSEG MOV A,LED0 MOVC A,@A+DPTR MOV DPTR,#P8255A ;显示键值 MOVX @DPTR,A ;送显示段选码 ACALL DELAY ;延时,增加显示亮度 CLR A ;带了锁存器,送下一个数据前将数据撤消 第8页
MOVX @DPTR,A MOV DPTR,#P8255C MOV A,#08H MOVX @DPTR,A ;通过8255C口选种第二个数码管 MOV DPTR,#LEDSEG MOV A,LED1 MOVC A,@A+DPTR MOV DPTR,#P8255A ;显示键值 MOVX @DPTR,A ;送显示段选码
ACALL DELAY CLR A MOVX @DPTR,A MOV DPTR,#P8255C MOV A,#10H MOVX @DPTR,A ;通过8255C口选种第三个数码管 MOV DPTR,#LEDSEG MOV A,LED2 MOVC A,@A+DPTR ORL A,#80H ;加个小数点在最高 第9页
位后面 MOV DPTR,#P8255A ;显示键值 MOVX @DPTR,A ;送显示段选码 ACALL DELAY CLR A MOVX @DPTR,A RET ;----------- ;中断服务程序---------------------------------------------- FX0: MOV DPTR,#C0809 MOVX A,@DPTR ;读转换结果 MOV B,#5 MUL AB ;相乘结果为16位,再右移8位,则B刚好为整数部分 MOV LED2,B MOV B,#10 MUL AB ;小数部分放大10倍 MOV LED1,B MOV B,#10 MUL AB MOV LED0,B 第10页
FX0_RET: MOV DPTR,#C0809 MOVX @DPTR,A ;启动AD下一次转换 RETI ;----延时子程序----------------------------------------- DELAY:MOV R7,#5 DJNZ R7,$ RET ;--- LED显示常数表--------------------------------------- LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;--------------------------------------------------------- END 2.简易函数信号发生器,通过按PULSE+键,切换波形输出 ;P3.2----PULSE+ ;CS0832-;-F218 ;VOUT,AGND---示波器 D_APORT EQU 0F218H ;0832 口