《单片机Proteus仿真C51参考程序实验》
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C51 CLOCK=12MHz
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
2.在 Keil 环境下建立源程序并保存为.C 文件,生成.HEX 文件;
参考程序如下:
#include<reg51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int
void delay_ms(uint x) {
uchar t;while(x--)for(t=0;t<120;t++); }
班级:
学号:
姓名
void main() {
uchar i,j=0x01; while(1) {
P2=j; j=_crol_(j,1); delay_ms(100); } } 将以上程序补充完整,流水时间间隔为 100ms。 3.将.HEX 文件导入仿真图,运行并观察结果;
2.在 Keil 环境下建立源程序并保存为.C 文件,生成.HEX 文件;
参考程序如下:
#include<reg51.h>
班级:
学号:
姓名
#include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay_ms(uint x) {
C1
30pF
C2 30pF C3 R1 1uF
200
U1 X1 19 XTAL1
18 XTAL2
9 RST
R2 29
1k 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C51
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
uchar t;while(x--)for(t=0;t<120;t++); } void main() {
uchar i,j=0x80; IT0=1; EX0=1; EA=1; while(1) {
P1=j; j=_cror_(j,1) delay_ms(250); } } void EX0_INT()interrupt 0 { uchar i; for(i=0;i<5;i++) { P1=0xff; delay_ms(250); P1=0x00; delay_ms(250); }
班级:
学号:
姓名
实验三 串行通信实验 一、实验目的
利用单片机的串行口输出数据,掌握单片机串行通信的特点。
二、实验原理
1.在 Proteus 环境下建立如下仿真原理图,并保存为文件;
22pf
22pf
12M X1
19 XTAL1 18 XTAL2
220
C3
10uF
10k
9 RST
29 30 31
PSEN ALE EA
六、预习及思考
1.串行接口和并行接口的特点各是什么? 2.方式 0 时,串口数据的输出和时钟的输出引脚分别是什么?
班级:
学号:
姓名
3.方式 0 数据传输的波特率? 4.方式 0 字符(帧)的格式是多少位?
查阅 74164 芯片资料和共阳型数码管的显示原理或参考教材有关章节编写循环显示 0~
F 显示子程序。
三、主要实验设备
实验室电脑及配套软件。
四、实验内容
利用串行口工作方式 0 同步移位寄存器方式,利用 74164 作为驱动芯片,编程循环显示 0~F。
五、实验总结
LED 数码管串行驱动显示方式和并口驱动显示方式的特点,此时串行数据输出的波特 率。
班级:
学号:
姓名
实验一 I/O口的实验
一、实验目的
1.掌握在Keil环境下建立项目、添加、保存源文件文件、编译源程序的方法; 2.掌握运行、步进、步越、运行到光标处等几种调试程序的方法; 3.掌握在Proteus环境下建立文件原理图的方法; 4.实现Proteus与Keil联调软件仿真。
二、实验原理
1.在 Proteus 环境下建立如下仿真原理图,并保存为文件;
C1
30pF
C2
30pF
X1
19
CRYSTAL
18
U1
XTAL1
XTAL2
C3
9 RST
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
39 38 37 36 35 34 33 32
班级:
学号:
姓名
} 将以上程序补充完整,流水时间间隔,闪烁时间间隔为 250ms。 3.将.HEX 文件导入仿真图,运行并观察结果;
三、主要实验设备
实验室电脑及配套软件。
四、实验内容
1.将以上程序中软件延时改为利用定时器 T0 实现; 2.P3.4 引脚外接脉冲源进行计数实现对流水灯状态的改变; 3.写出对应的 C51 程序,并进行仿真调试。
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
AT89C51 PROGRAM=..\KEIL\shiyan2.hex
原理图中常用库元件的名称:
R3 R4 R5 R6 R7 R8 R9 R10
39 38 37 36 35 34 33
32 RN1
21 280 22 23 24 25 26 27 28
10 DAT 11 CLK 12 13 14 15 16 17
串口模式0控制串行输出时 DAT,CLK分别连接RXD,TXD
9 8
MR CLK
2.在 Keil 环境下建立源程序并保存为.ASM 文件
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
1 2
A B
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
3 4 5 6 10 11 12 13
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
R11uF
200
29
R2 30
1k 31
Hale Waihona Puke PSEN ALE EAP2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
1k
1k
1k
1k
1k
1k
1k
1k
D1 D2 D3 D4 D5 D6 D7 D8
无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51
晶体振荡器:CRYSTAL 电阻:RES
按键:BUTTON
发光二极管:红色 LED-RED 绿色 LED-GREEN 蓝色 LED-BLUE 黄色 LED-YELLOW
五、实验总结
利用单片机外部中断 0,使用边沿触发方式,当 P3.2 所接按键按下时,流水灯停止流 水,闪烁两次,按键抬起时,恢复原来的流水状态。
六、预习及思考
1.若把边沿触发改为电平触发,有何不同? 2.如何让流水灯保持原来的状态继续流水? 3.软件延时和定时器定时的区别? 4.定时方式和计数方式的区别?
班级:
学号:
姓名
实验二 定时计数器中断实验
一、实验目的
利用单片机的定时计数器和外部中断,实现 LED 流水灯轮流发光,流水时间以定时器 的方式来控制,利用计数器进行计数改变流水灯的状态,输入外部脉冲产生外部中断改变流 水灯的状态。
二、实验原理
1.在 Proteus 环境下建立如下仿真原理图,并保存为文件;
三、主要实验设备
实验室电脑及配套软件。
四、实验内容
1.编写出对应的 C51 程序; 2.改变流水灯的时间间隔; 3.改变流水灯方向。
五、实验总结
进行软硬件仿真时,观察到 8 支 LED 发光二极管流水发光。
六、预习及思考
1.如何让改变流水方向? 2.若将 R3 至 R10 上拉电阻省略,8 支 LED 还能正常发光吗? 3.如果将 LED 接到 P0 口与接到 P2 口硬件设计时应注意什么问题?
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
R11
1k
原理图中常用库元件的名称:
无极性电容:CAP 极性电容:CAP-ELEC 单片机:AT89C51
晶体振荡器:CRYSTAL电阻:RES
按键:BUTTON
发光二极管:红色 LED-RED 绿色 LED-GREEN 蓝色 LED-BLUE 黄色 LED-YELLOW