完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
串口使用练习一
由上位机发送’1’给单片机时,蜂鸣器以400Hz频率发声,发‘2’时以200Hz频率发声,发‘3’时以100Hz频率发声,发‘4’时关闭蜂鸣器。 本实验使用锐志电子RZ-51/AVR V2.8单片机,不同单片机引脚可能不同。下面给出代码段,欢迎讨论。 #include《reg52.h》 #define uint unsigned int #define uchar unsigned char uint num; uint temp;//用于记录num的变化 uchar a; ***it buzzer=P2^3; void main() { TMOD=0x21;//定时器T1选择工作方式2 TH1=0xfd; TL1=0xfd;//定时器T1装初值 TR1=1; REN=1;//SOCN中开串行接受 SM0=0; SM1=1;//SCON中设定定时器工作方式为1 EA=1; ES=1;//IE中开串行口中断 buzzer=0; num=0; temp=0; TH0=(65536-45972)/256; TL0=(65536-45872)%256; ET0=1; TR0=1; while(1) { switch(a) { case ‘1’: temp++; if(temp==4) { temp=0; buzzer=~buzzer; } break; case ‘2’: num++; temp++; if(temp==2) { temp=0; buzzer=~buzzer; } break; case ‘3’: num++; temp++; if(temp==1) { temp=0; buzzer=~buzzer; } break; default: break; } } } void ser() interrupt 4 { RI=0; a=SBUF; } void enter0() interrupt 1//50ms { TH0=(65536-45872)/256; TL0=(65536-45872)%256; } |
|
|
|
只有小组成员才能发言,加入小组>>
2549 浏览 0 评论
1149浏览 2评论
748浏览 1评论
501浏览 0评论
267浏览 0评论
430浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 23:11 , Processed in 1.601018 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号