您好,欢迎访问三七文档
实验一熟悉KEIL软件的使用一、实验目的1.认识单片机实验系统的构成及使用。2.学习KEIL软件和STC-ISP下载软件的使用方法。3.单片机I/O口的使用方法;二、实验内容1.P23口做输出口,接发光二极管,编写程序,使其闪烁。2.P23-P26口接四只发光二极管LED1-LED4,P20口接开关K1,编写程序,用开关控制发光二极管上的亮灭。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路及参考程序1.参考电路2.参考程序实验1:#includereg52.hsbitP23=P2^3;//定义LED指示灯的IO口voidmain(){inti;//计时变量while(1){for(i=0;i30000;i++);//延时P23=!P23;//指示灯IO口反转}123456ABCD654321DCBATitleNumberRevisionSizeBDate:10-Nov-2009SheetofFile:C:\PROGRAMFILES\DESIGNEXPLORER99SE\EXAMPLES\MyDesign.ddbDrawnBy:P23R1LED4R2P24R3LED3R4P25LED2VCCP26+5VLED18051K1P32}实验2:#includereg52.hsbitP23=P2^3;//定义LED指示灯的IO口sbitP20=P2^0;//定义key的IO口voidmain(){inti;//计时变量while(1){for(i=0;i30000;i++);//延时if(P20==0)P23=0;//按键,LED亮elseP23=1;//LED亮}}五.思考题1.P23-P26口做输出口,接发光二极管,编写并调试程序,使其闪烁。2.P23-P26口做输出口,接发光二极管,编写并调试跑马灯程序。实验2KeilC51程序设计上机练习一、实验目的1.学习KEIL软件的程序调试方法。2.学会KEILC程序设计及调试,重点学会预处理命令、数据类型的定义。二、实验内容1.单片机P2口的P20和P21各接一个开关K1、K2,P23、P24、P25和P26各接一只发光二极管。由K1和K2的不同状态来确定发光二极管的点亮。K2K1亮的二极管00L101L210L311L42.设计一个二进制加1计数器,按一次键,加1,并用4个LED显示计数结果,加至16时清零重新计数。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路及参考程序1.实验1#includereg51.hsbitk1=P2^0;sbitk2=P2^1;voidmain(){while(1){if(k1==0&k2==0){P2=0xf7;}if(k1==1&k2==0){P2=0xef;}if(k1==0&k2==1){P2=0xdf;}if(k1==1&k2==1){P2=0xbf;}}}2.实验2#includereg52.hsbitkey=P3^2;123456ABCD654321DCBATitleNumberRevisionSizeBDate:10-Nov-2009SheetofFile:C:\PROGRAMFILES\DESIGNEXPLORER99SE\EXAMPLES\MyDesign.ddbDrawnBy:P23P24P25P26R1R2R3R4VCC+5V8051K1P20K2P21LED1LED2LED4LED3unsignedchara;unsignedcharcount=0;voiddelay(inti){while(i)i--;}voidmain(){while(1){if(key==0){delay(10);if(key==0){count++;while(!key);if(count==16)count=0;a=count;a=~a;a=a3;P2=a;}}}}五、思考题1.设计一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。2.用1个按键控制LED的显示,要求显示3种以上的不同模式。实验3单片机中断实验一、实验目的1.掌握单片机的中断系统,学会单片机中断系统的初始化。2.学会单片机外部中断的应用。二、实验内容1.采用外部中断的方式实现按键控制1个LED的亮灭。2.采用外部中断的方式实现4个LED的轮流亮灭。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.实验1#includereg52.hsbitP23=P2^3;voidmain(){IT0=1;//外部中断0连沿触发方式EX0=1;//使能外部中断0EA=1;//开部中断P23=0;//指示灯初始为亮while(1);}voidint0()interrupt0//外部中断0程序入口{P23=!P23;}2.实验2#includereg52.hsbitP32=P3^2;123456ABCD654321DCBATitleNumberRevisionSizeBDate:10-Nov-2009SheetofFile:C:\PROGRAMFILES\DESIGNEXPLORER99SE\EXAMPLES\MyDesign.ddbDrawnBy:P23R1LED4R2P24R3LED3R4P25LED2VCCP26+5VLED18051K1P32voidmain(){IT0=1;//外部中断0连沿触发方式EX0=1;//使能外部中断0EA=1;//开部中断while(1);}voidint0()interrupt0//外部中断0程序入口{staticunsignedcharBit=0;Bit++;if(Bit=4)Bit=0;switch(Bit){case0:P2=0xf7;break;case1:P2=0xef;break;case2:P2=0xdf;break;case3:P2=0xbf;break;}}五、思考题1.采用外部中断的方式实现一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。2.采用外部中断的方式实现用1个按键控制LED的显示,要求显示3种以上的不同模式。实验4中断及定时器∕计数器实验一、实验目的1.掌握单片机的中断系统、定时器的工作原理。2.学会单片机中断系统、定时器的应用。二、实验内容1.采用单片机定时器实现1个LED的亮灭,周期为1s。2.采用单片机定时器实现实现4个LED的轮流亮灭,每个LED点亮时间为1s。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.实验1#includereg51.h#defineTHC00xee#defineTLC00x00sbitled0=P2^3;voidmain(){TMOD=0x01;TH0=THC0;TL0=TLC0;TR0=1;ET0=1;EA=1;while(1);}voidtimer0_ISR(void)interrupt1{staticunsignedcharcount=0;123456ABCD654321DCBATitleNumberRevisionSizeBDate:10-Nov-2009SheetofFile:C:\PROGRAMFILES\DESIGNEXPLORER99SE\EXAMPLES\MyDesign.ddbDrawnBy:P23P24P25P26R1R2R3R4VCC+5V8051LED1LED2LED4LED3TL0=TLC0;TH0=THC0;count++;if(count=200){count=0;led0=!led0;}}2.实验2#includereg51.h#defineTHC00xee#defineTLC00x00sbitled0=P2^3;sbitled1=P2^4;sbitled2=P2^5;sbitled3=P2^6;voidmain(){TMOD=0x01;TL0=TLC0;TH0=THC0;TR0=1;ET0=1;EA=1;while(1);}voidtimer0_ISR(void)interrupt1{staticunsignedcharcount=0,Bit=0;TL0=THC0;TH0=TLC0;count++;if(count=200){count=0;Bit++;if(Bit=4)Bit=0;P2=P2|0x78;switch(Bit){case0:led0=0;break;case1:led1=0;break;case2:led2=0;break;case3:led3=0;break;}}}五、思考题1.设计1个秒计数器,每秒计1次数,在LED上显示出来,计至16清零后重新计数。2.在上题基础上用按键控制秒计数器的启停,按一次键开始计数,按2次停止计数,按3次又开始计数…。实验5数码管显示器实验一、实验目的1.掌握单片机的按键、数码管显示器的工作原理。2.学会单片机独立式按键、数码管显示器的应用。二、实验内容1.在一个数码管上显示字符“1”。2.在4个数码管上显示字符“1”、“2”、“3”、“4”。3.设计一个2位10进制计数器,每秒加1,在LED上显示。三、实验步骤1.设计实验电路,画出电路原理图2.按照KEIL软件的使用步骤,建立工程。3.编写程序,保存文件,将源程序文件加载到工程中,当编译通过之后生成HEX文件。4.用STC-ISP下载软件下载HEX文件到单片机系统。5.运行、调试程序,观察实验结果。四、实验参考电路和参考程序1.参考电路A/D转换实验2.参考程序#includereg52.h#defineTHCO0xee#defineTLCO0x0unsignedcharcodeDuan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴极数码管,0-9段码表unsignedcharData_Buffer[4]={1,2,3,4};//四个数码管显示数值,数组变量定义sbitP10=P1^0;//四个数码管的位码口定义sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;voidmain(){TMOD=0x11;//定时器0初始化TH0=THCO;TL0=TLCO;TR0=1;ET0=1;EA=1;while(1);}voidtimer0()interrupt1{staticunsignedcharBit=0;//静态变量,退出程序后,值保留TH0=THCO;TL0=TLCO;Bit++;if(Bit=4)Bit=0;P1|=0x0f;//先关位码P0=Duan[Data_Buffer[Bit]];//开段码switch(Bit)//送位码{case0:P10=0;break;case1:P11=0;break;case2:P12=0;break;case3:P13=0;break;}}五、思考题用按键进行显示模式选择键,实现上述
本文标题:实验的作业
链接地址:https://www.777doc.com/doc-4652166 .html