单片机接口电路设计及单片机资源配置:
1.上电复位电路;
2.晶振电路采用11.0592Mhz晶振;
3.485接口电路(P3.7用于485芯片的收发控制,收发管脚接单片机的rxd和txd);
4.P2口通过外部跳线接相应的高低电平,配置从机地址为学生学号(取值范围:0x01-0x80);
5.P3.6外接一发光二极管(注意串联电阻进行限流);
6.P3.2外接一按键,断开高电平,按下地电平;
7.按键检测采用外部中断方式,下跳沿触发;
8.单片机定时器0以模式1(16位模式)工作,产生50ms的定时中断,并在此基础上设计一
单片机内部时钟(24小时制,能计量时、分、秒、50ms值);
9.单片机串行通信采用模式1非多机通信方式,采用9600波特率以串行中断方式进行通信,
主机地址为0xF0,广播地址为0xFF
系统功能需求:
1.系统自检功能:
系统上电后,初始化时以每半秒闪烁一次的频率点亮发光二极管;按下按键触发外部中断
过程中熄灭发光二极管,同时禁止外部中断防止按键重复触发;
2.数据接收功能:
在接收到主机发来的按键允许命令帧后开外部中断,允许按键按下产生外部中断,同时点
亮发光二极管进行按键允许显示;
此后按下按键产生外部中断并同时在程序的数组变量中记下当前的时钟数据(定时器的低
8位、定时器的高8位、50ms值、秒、分、小时),并同时禁止外部中断防止按键重复触发;
3.数据发送功能:
接收到主机发来的时钟数据搜索命令帧后将前面记下的时钟数据按(定时器的低8位、定
时器的高8位、50ms值、秒、分、小时)的顺序组成时钟数据返回帧回送给主机,同时熄
灭发光二极管;
4.校验和生成和检测功能:
发送数据帧时自动生成校验和;
接收数据帧时能检测校验和并判断接收数据是否正确;
每帧数据在发送帧尾前,发送一字节的当前帧数据的校验和(校验和的计算不包含帧头和
帧尾),另外帧长不包含帧头、帧尾和校验和字节。
附录:
时钟数据搜索命令帧:
时钟数据返回帧:
帧结构头文件frame.h(内容如下)
#define FRAME_HEAD 0xAA //帧头
#define FRAME_TAIL 0x66 //帧尾
#define FRAME_LEN 0x00 //帧长
#define FRAME_DST_ADR 0x01 //目的地址
#define FRAME_SRC_ADR 0x02 //源地址
#define FRAME_CMD 0x03 //命令字
#define FRAME_DATA 0x04 //帧数据起始
#define READY 0x01 //按键允许命令
#define TIME_SERCH 0x03 //时钟数据轮询命令#define TIME_BACK 0x07 //时钟数据返回命令
#define BROAD_ADR 0xFF //广播地址
#define MASTER_ADR 0xF0 //主机地址