Serial communication

1 post

80C51单片机Proteus仿真实验:双机单工通信

功能 波特率为9600bps; 单片机1使用4×4计算器键盘,按下其中任意一个键,单片机2的数码管显示对应数字; 数字显示范围:十六进制的0~F。 工具 Windows 10 x64 Proteus Professional 8.9 SP0 Keil C51 Version 9.59 仿真器件选型 单片机:80C51,时钟频率(Clock Frequency)调整为11.0592MHz; 数码管:7SEG-COM-AN-GRN,7段1位共阳极绿色数码管; 键盘:KEYPAD-SMALLCALC,该键盘为4*4计算器键盘; 电源:POWER一个。 定时器初值计算 本实验中发送端和接收端使用相同的定时器初始化参数,使波特率为9600 bps。计数初值计算如下: $$\rm 计数初值=2^{8}-\frac{1s}{9600bps}\times\frac{11.0592MHz}{12}=160=(A0)_{16}$$ $$\rm 计数初值=2^{8}-\frac{1s}{9600bps}\times\frac{12MHz}{12}\approx 151.833\approx (97.D55)_{16}$$ 由上式可以看出,当单片机时钟频率为11.0592 MHz时,定时器计数初值为整数,可以更方便的设置单片机的计数初值,从而得到更精准的波特率,因此本实验在Proteus中将单片机的的时钟频率(Clock Frequency)值调成了11.0592 MHz。 发送/接收时延控制方法 串口中断通信法 仿真器件连接方式与实验效果图 Keil C51代码 发送端代码 接收端代码 I/O口模拟串口通信法 仿真器件连接方式与实验效果图 定时器0中断查询法 发送端代码 接收端代码 定时器0中断法 发送端代码 接收端代码 […]