欢迎来到天天文库
浏览记录
ID:61040402
大小:43.50 KB
页数:4页
时间:2021-01-20
《实验三 并口实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三并口实验一、实验目的1.熟悉和掌握AT89C51单片机的并口工作原理;2.了解和掌握单片机的并口输入输出应用。二、实验内容1、LED模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。Proteus设计的仿真电路如图所示。(1)运行下述程序,并在电路上验证。(2)如果要求黄灯闪烁3次后红灯亮,应该怎么该写程序?#include#defineucharunsignedchar#defineuintunsignedint
2、sbitRED_A=P0^0;//东西向灯sbitYELLOW_A=P0^1;sbitGREEN_A=P0^2;sbitRED_B=P0^3;//南北向灯sbitYELLOW_B=P0^4;sbitGREEN_B=P0^5;ucharFlash_Count=0,Operation_Type=1;//闪烁次数,操作类型变量//延时voidDelayMS(uintx){uchari;while(x--)for(i=0;i<120;i++);}//交通灯切换voidTraffic_Light(){switch(Operation_Type){
3、case1://东西向绿灯与南北向红灯亮RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=0;YELLOW_B=1;GREEN_B=1;DelayMS(2000);Operation_Type=2;break;case2://东西向黄灯闪烁,绿灯关闭DelayMS(300);YELLOW_A=~YELLOW_A;GREEN_A=1;if(++Flash_Count!=10)return;//闪烁5次Flash_Count=0;Operation_Type=3;break;case3://东西向红灯,南北向绿灯亮RED
4、_A=0;YELLOW_A=1;GREEN_A=1;RED_B=1;YELLOW_B=1;GREEN_B=0;DelayMS(2000);Operation_Type=4;break;case4://南北向黄灯闪烁5次DelayMS(300);YELLOW_B=~YELLOW_B;GREEN_B=1;if(++Flash_Count!=10)return;Flash_Count=0;Operation_Type=1;}}//主程序voidmain(){while(1)Traffic_Light();}2、开关控制用AT89C51单片机控
5、制四个按键K1到K4和四个发光二极管D1到D4,要求当按下K1或K2键时D1或D2点亮,松开时对应的发光二极管熄灭,当按下K3或K4后,D3或D4不停地闪烁。Proteus仿真电路如下图。(1)验证程序实现所要求的功能。(2)若K3、K4同时按下时,D3和D4同时不停地闪烁,如何改写程序?#include#defineucharunsignedchar#defineuintunsignedintsbitD1=P1^0;sbitD2=P1^1;sbitD3=P1^2;sbitD4=P1^3;sbitK1=P3^4;sbi
6、tK2=P3^5;sbitK3=P3^6;sbitK4=P3^7;voidDelayMS(uintx)//延时子程序{uchart;while(x--){for(t=120;t>0;t--);}}voidmain()//主程序{P1=0xff;//四个二极管暗while(1){D1=K1;//D1反映K1开关的状态D2=K2;//D2反映K2开关的状态if(K3==0)//K3按下时,D3的状态不停地变反{while(K3==0){D3=~D3;DelayMS(10);}}if(K4==0)//K4按下时,D4的状态不停地变反{whil
7、e(K4==0){D4=~D4;DelayMS(10);}}}}3、设计题目试设计AT89C51单片机与一个4为数码管相连的Proteus仿真电路,并用C语言编程使数码管从左到右显示1~4.
此文档下载收益归作者所有