首页
课件、教案、试卷中心
用户登录
资料
搜索
ID: 20088469
实例32 、实例33和实例34 课件(6份打包) 《单片机基础与应用》(C语言版) 同步教学
日期:2025-10-07
科目:
类型:课件
查看:17次
大小:4850126B
来源:二一课件通
预览图
0
张
实例
,
同步
,
语言
,
单片机基础与应用
,
打包
,
6份
(
课件网
) 实例32 串口控制16个LED流水灯 《单片机基础与应用(C语言版)》 高等教育-出卷网- 实例要求 实例分析 采用串入并出移位寄存器74LSl64实现单片机串行口的I/O扩展,一片74LS164可以扩展8位并行输出口,系统需要2片74LS164级联实现16个LED的控制。 利用单片机串行口扩展并行I/O口电路,驱动16个LED,使16个LED逐一点亮,实现16个LED流水灯效果。 硬件电路 控制程序设计 //程序:ex35.c //功能:串口控制16个LED流水灯程序 #include
//包含头文件REGX51.H,定义了51单片机的所有SFR //函数名:sendbyte //函数功能:向串口发送一个字符,采用查询方式实现 //形式参数:无符号整型变量i,定义发送的字符 //返回值:无 void sendbyte(unsigned char i) { SBUF=i; //发送字符写入SBUF while(!TI); //查询TI是否由0变1 TI=0; //软件给TI清0 } //定义流水灯显示数据 unsigned char dat[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void main() { unsigned char i; unsigned int t; SCON=0x00; //设置串行口工作方式为方式0 while(1){ for(i=0;i<8;i++){//第2片74LS164连接的8个灯实现流水 sendbyte(dat[i]); //发送第2片74LS164连接8个灯显示数据 sendbyte(0xff); //第1片74LS164连接8个灯熄灭 for(t=0;t<20000;t++); //延时 } for(i=0;i<8;i++){//第1片74LS164连接的8个灯实现流水 sendbyte(0xff); //第2片74LS164连接8个灯熄灭 sendbyte(dat[i]);//第1片74LS164连接8个灯显示数据 for(t=0;t<20000;t++); //延时 } } } 《单片机基础与应用(C语言版)》 高等教育-出卷网- 实例33 单片机双机通信 实例要求 实例分析 如果2个单片机共在一个电路板上或同处于一个机箱内,这时只要将2个单片机的TXD和RXD引出线交叉相连,并共地即可;如果2个单片机不在一个机箱内,距离较远,这时要采用 RS-232C接口进行连接。本系统假定两机处于一个机箱内。 实现一个单片机串行口双机通信测试系统。系统中,发送与接收各用一套51单片机电路,称为甲机和乙机。甲机作为发送端,连接一个按键;乙机作为接收端,连接一个LED。将甲机按键次数(0~9,超过10次后又回到0)发送给乙机,并在乙机的LED上显示出来。 硬件电路 控制程序设计 //程序:ex36.c //功能:甲机串行发送程序 #include
//包含头文件REGX51.H,定义了51单片机的所有SFR sbit S=P0^0; //定义P0.0引脚位名称为S unsigned char count; //全局变量,用于存放按键次数 //函数名:key //函数功能:检测按键S是否按下,如果按下count加1计数 //形式参数:无 //返回值:无 void key() { unsigned int k; if(S==0) //第1次判断S是否按下 { for(k=0;k<1200;k++); //延时去抖 if(S==0) { //再次判断S是否按下 if(++count==10)count=0; //按键次数处理 while(!S); //等待S释放 } } } 甲机发送通信程序如下。 void main() { TMOD=0x20; //设置定时器T1为方式2 TL1=0xfd; //波特率为9600Bd TH1=0xfd; TR1=1; SCON=0x40; //定义串行口工作于方式1,不接收 PCON=0x00; //SMOD=0 count=0; //次数清0 while(1) { key(); //调用按键处理函数 SBUF=count; //发送次数 while(!TI); //查询TI是否由0变1 TI=0; //软件给TI清0 } } 控制程序设计 乙机发送通信程序如下。 //程序:ex7-2.c //功能:乙机串行接收程序,采用查询方式实现 #include
//包含头文件REGX51.H,定义了51单片机的所有SFR //定义0~9共阳极显示字型码 code unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void main() //主函数 { unsigned char i; TMOD=0x20; //设置定时器T1为方式2 TL1=0xfd; //波特率为96 ... ...
~~ 您好,已阅读到文档的结尾了 ~~
立即下载
免费下载
(校网通专属)
登录下载Word版课件
同类资源
江苏省南京信息职业技术学校2024-2025学年电工基础与技能训练期中测试模拟卷(9)(含答案)(2025-05-29)
江苏省南京信息职业技术学校2024-2025学年电工基础与技能训练期中测试模拟卷(7)(含答案)(2025-05-29)
江苏省南京信息职业技术学校2024-2025学年电工基础与技能训练期中测试模拟卷(11)(含答案)(2025-05-29)
江苏省南京信息职业技术学校2024-2025学年电工基础与技能训练期中测试模拟卷(10)(含答案)(2025-05-29)
南京信息职业技术学校2024-2025学年电工基础与技能训练期中测试模拟卷(8)(含答案)(2025-05-29)
上传课件兼职赚钱