欢迎来到天天文库
浏览记录
ID:10525089
大小:100.45 KB
页数:6页
时间:2018-07-07
《实验8 用串行口并行输出口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CHANGZHOUINSTITUTEOFTECHNOLOGY题目8:用串行口并行输出口二级学院(直属学部):延陵学院专业:电气工程及其自动化班级:10电Y3学生姓名:学号:一、实验目的1、掌握AT89C52串行口方式0的工作方式和编程2、掌握利用串行口和移位寄存器扩展并行接口的方法二、实验电路、元器件编号元器件名称说明U1AT89C52AT89C52单片机U274HC164.IEC并行输出串行移位寄存器7EG-BCD7段BCD数码管显示器三、实验流程开始初始化串口I<8?循环移位100次?置零检查状态i++结束NYYN四、
2、实验运行和调试用查询T1方式,在7段BCD数码管显示器上循环显示0~99这100个数字。五、实验程序#include#include#include#include#include#include#definebyteunsignedchar#defineucharunsignedchar#definewordunsignedint#defineuintunsignedint#defineulongunsig
3、nedlong#defineBYTEunsignedchar#defineWORDunsignedint#defineTRUE1#defineFALSE0voidinitUart(void);//初始化串行口voidtime(unsignedintucMs);//延时单位:mssbitCTRL_OUT=P3^4;//=0,清零;=1,并行输出/******HEXtoBCD*****/unsignedcharHEXtoBCD(unsignedcharhex){return((hex/10)*16+(hex%10));}/**
4、******mainc*********/voidmain(void){uchari,wByte=0;initUart();//初始化串行口方式0CTRL_OUT=1;//=1,允许并行输出for(;;){for(i=0;i<8;i++){SBUF=HEXtoBCD(wByte);//循环右移i位,串行输出wByte++;if(wByte==100)//0-99循环wByte=0;while(!TI){}//状态查询TI=0;//清发送中断标志time(88);//状态维持}}}voiddelay_5us(void)//延
5、时5us,晶振改变时只改变这一个函数{_nop_();_nop_();//_nop_();//_nop_();}/*delay_50us*/voiddelay_50us(void)//延时50us{unsignedchari;for(i=0;i<4;i++){delay_5us();}}/******************延时100us********************/voiddelay_100us(void)//延时100us{delay_50us();delay_50us();}/*延时单位:ms*/void
6、time(unsignedintucMs){unsignedcharj;while(ucMs>0){for(j=0;j<10;j++)delay_100us();ucMs--;}}/**********初始化串行口波特率********/voidinitUart(void)//初始化串行口方式0{SCON=0x00;//串行口方式0工作ES=0;//禁止串行中断}六、实验效果图
此文档下载收益归作者所有