单片机课程设计串行口应用.docx

单片机课程设计串行口应用

串行口扩展应用系统分析设晶振为12MHZ将指拨开关数据串行输入74LS164并行输出到8个LED,进行相应的数码显示。2.系统功能框图的设计 系统的功能框图3.系统硬件设计 电路原理图4.系统软件设计4.1程序流程图设计开始 数据是否发送完?结束4.2程序设计(C语言)#include reg51.h#define uint unsigned int;#define uchar unsigned char;void delayms(unsigned int ms) //延时函数{ unsigned int i;while(ms--) { for(i=0;i120;i++);}}void send(unsigned char state) //发送数据{ SBUF=state; while(TI==0); //在发送完一帧数据后,将TI置0{TI=0;}}void SCON_init(void) //串行寄存器设置{ SCON=0x00; SBUF=0xFF;ES=1;EA=1;}void main(void) //主函数{P1=0xFF; //P1端口置1SCON_init();while(1){send(P1);delayms(10);}}5.系统调试与仿真1按下指拨开关1234时由下到上四个灯亮 2按下指拨开关5678时,由上到下四个灯亮3按下指拨开关1357时,由下到上的1357灯亮4按下指拨开关2468时,由下到上2468的灯亮6.目前仍存在的问题 存在一个很大的疑问就是,在进行仿真的时候,如果按照课本上单片机与74L164芯片的连接方式连接硬件,不能得到正确结果。后来查了引脚的作用,觉得应该是发送与接收接反了,对调之后结果就正确了。还有一些模糊不清的地方,比如延时函数对程序有什么影响,串行中断与全局中断允许可不可以去掉。7.收获与建议 通过这次作业,加深了对串行通信的认识,也对单片机有了更多的了解,对所学的知识也得到了巩固。程序修改了很多次,会出现语法错误,如没有定义变量等。现在对两个软件的操作也越来越熟练了,基本可以自己独立设计一个简单的小程序。1

文档评论(0)

1亿VIP精品文档

相关文档