ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:232.20KB ,
资源ID:25397473      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25397473.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机20道复习题参考答案doc.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机20道复习题参考答案doc.docx

1、单片机20道复习题参考答案doc1.用P0 口驱动LED灯,要求循环左移,从右向左每次两个LED灯亮,程序重复执行。【一个排线。排1(PO-LED)#include DelaylOms(SO);(include LED = LED 2;unsigned char a, b;void DelaylOms(unsigned int c);if (P0 = OxCO)for (;cO;c-)main()LED = 0x03;for (b=38;b0;b-)unsigned char LED;(LED = 0x03;)for (a=130;a0;a);while (1)P0 = LED;void De

2、laylOm$(unsigned int c)2.用P0 口驱动LED灯做左右跑马灯程序,先向左侧跑马,每次左移2位,初始 时是2位LED灯亮,以后每次2个灯亮。待4次过后,再向右侧跑马,每次 右移1位,初始时是1位LED灯亮,以后每次1个灯亮,执行8次。程序重复执行。【一个排线。排 1 (PO-LED)】存include LED = LED 2;P0 = LED;(ftinclude unsigned char a, b;void DelaylOms(unsigned int c); 延时Delayl0ms(50);for (;c0;c)10msLED = 0x80;P0 = LED;(ma

3、in。for(i=0;i0;b-)(Delayl0ms(50);(unsigned char LED;LED = LED l;P0 = LED; for (a=130;a0;a);unsigned char i;/Oxfe = llll 1110LED = 0x03;Delayl0ms(50);while (1)/LED = OxO3;PO = LED;P0= LED;for(i=0;i0;a-);DelaylOms(l);GPIO_LED = ledValue;if (K3=0)void DelaylOms(unsigned int c)unsigned char a, b;keyValue

4、 = 3;4.单个静态数码管流动显示HELLO-LACo【一个排线。排1(PO-JP3(右上角)】unsigned char a, b;for (;c0;c)(for (b=38;b0;b-)(for (a=130;a0;a-);#lncludeWdefine GPIO_DIG POvoid DelaylOms(unsigned int c);unsigned char codeDIG_CODE10)=0x76,0x79,0x38,0x38,0x3f,0x40,0x38,0x77,0x39;void main(void)(unsigned char i = 0;while(l)GPIO_DIG

5、 = DIG_CODEi;i+;if(i = 10)i = 0;Delayl0ms(50);void Delayl0m$(unsigned int c)5.8位动态数码管显示BAD-FOODo【两个排线。排1 (P0-LED)排2(P1-J16)ttinclude#define GPIO_DIG P0define GPIO.PLACE Plunsigned char code DIG_PLACE8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code DIG_CODE80x7c,0x77,0x5e,0x40,0x7L0x3f,

6、0x3f,0x5e;unsigned char Display Data (8);void DigDisplayO;void main(void)(unsigned char i;for(i=0; i8; i+)(DisplayData(i) = DIG_CODE(i;while(l)(DigDisplayO;void DigDisplay()unsigned chari;unsigned int j;for(i=0; i8; i+)(GPIO_PLACE = DIG_PLACEiGPIO_DIG = DisplayDatai;j = 10;whlle(j-);GPIO_DIG = 0x00;

7、6.矩阵键盘,按键移位,按键8次,显示“8765ABCD”。void DigDisplayO(unsigned char i;unsigned int j;for(i=0;i8;i+)(switch(i)case(O):LSA=O;LSB=O;LSC=O; break;case(l):LSA=l;LSB=O;LSC=O; break;case(2):LSA=0;LSB=l;LSC=0; break;case(3):LSA=l;LSB=l;LSC=0; break;case(4):LSA=0;LSB=0;LSC=l; break;case(5):LSA=l;LSB=0;LSC=l; break;

8、case(6):LSA=0;LSB=l;LSC=l; break;case(7):LSA=l;LSB=l;LSC=l; break;GPIO_DIG=DisplayDatai;j=10;while(j-);GPIO_DIG=OxOO;void KeyDown(void)(unsigned int a=0;GPIO_KEY=OxOf;if(GPIO_KEY!=OxOf)(DelaylOms(l);a=0;if(GPIO_KEY!=OxOf)KeyState=l;GPIO_KEY=OXOF;#includedefine GPIO_DIG POWdefineGPIO_KEYPlsbit LSA=P2

9、A2;sbit LSB=P2A3;Sbit LSC=P2A4;unsigned char code DIG_CODE17=(0x5e,0x39,0x7c,0x00,0x77,0x6d,0x7d,0x00,0x07,0x7f;unsigned char Key Value;unsigned char KeyState;unsigned char DlsplayData8;void DelaylOms(unsigned int c);void KeyDownf);void DigDisplay();void main(void)KeyState=O;while(l)KeyDown();if(Key

10、State=l)(DisplayData7=DisplayData6);Di$playData(6)=Di$playData(5);DisplayData5=DisplayData(4);DisplayData4=DisplayData3;DisplayData3=DisplayData2;DisplayData2=DisplayDatal);DisplayDatal=DisplayData(O);DisplayDataOj=DIG_CODEKeyValue;KeyState=O;)DigDisplay();switch(GPIO_KEY)case(0X07):Key Va I u e=0;

11、b rea k;case(0X0b):KevValue=4;break;case(OXOd): KeyValue=8;break;ca$e(0X0e):KeyValue=12;break;GPIO_KEY=OXFO;switch(GPIO_KEY)(ca$e(0X70):KeyValue=KeyValue+3;break;case(OXbO):KeyValue=KeyValue+2;break;case(OXdO): KeyValue=KeyValue+l;break;case(OXeO): break;while(aO;c)for (b=38;b0;b)(for (a二 130;a0;a);

12、)7. RS232串口发送试验,通过串口发送“好好学习天天向上”到 电脑,上位机用串口调试助手一直接收“好好学习天天向上” OTH1=OXF3;unsigned char a, b;8.用TO定时器(P3.4端子)做计数器中断实验,计数器端(P3.4)来的脉冲取自端子Pl.7。P1.7端子产生方波信号。P0.0SHUCHUPulse = 0;case 2:LS138A=0; LS138B=1; LS138C=0; break;case 3:LS138A=1; LS138B=1; LS138C=0; break;case 4:LS138A=0; LS138B=0; LS138C=1; break

13、;case 5:IS138A=1; LS138B=0; LS138C=1; break;case 6:LS138A=0; LS138B= 1; LS138C=1; break;case 7:LS138A=1; LS138B=1; LS138C=1; break;delay(150);void main(void)(PO=Oxff;Pl=Oxff;P2=0xff;IT0=l;EA=1;EXO=1;while(l)(display。;void counter(void) interrupt 0(EXO=O;LedNumVal+;9.4位数码管上显示外部中断计数,用单片机通过译码器控制数 码管和外部

14、中断使用,P0 口接显示,中断来自于独立按键控制, 每当按下一次按键,中断里的某个作为计数的变量加lo P3.2- 按键。P2.2、3、4-ABCo PO-LEDinclude include sbit LS138A=P2A2;sbit LS138B=P2A3;sbit LS138C=P2A4;unsigned int LedNumVal = 0 ,LedOut8;unsigned char code Disp_Tab = 0xC0,0xF9广0xA4广OxBO广0x99广0x92广0x82广0xF8广0x80尸0x90,0x88广0x83,0xC6广OxAl广0x86广0xbf,0xc7广0

15、x8c广Oxcl, Oxff, 0xf7void delay(unsigned int i)(charj;for(i; i 0; i)for(j = 200; j 0; j);display unsigned char i;LedOut(0)=Disp_Tab(LedNumVal%10000/1000;LedOutl)sDisp_Tab(LedNumVal%1000/100&0x7f;LedOut2=Disp_TabLedNumVal%100/10;LedOut3=Disp_TabLedNumVal%10;for( i=0; i8; i+) P0 = LedOutfi);switch(i)ca

16、se 0:LS138A=0; LS138B=0; LS138C=0; break;case1:LS138A=1; LS138B=0; LS138C=0; break;EXO=1;void UsartConfiguration()SCON=0X50;TMOD=0X20;PCON 二 0X80;TH1=OXF3;TL1=OXF3;TR1=1;void DigDisplayO(unsigned char i;unsigned int j;for(i=0;l8;iw)switch(i)case(O):LSA=O;LSB=O;LSC=O; break;case(l):LSA=1;LSB=O;LSC=O;

17、 break;case(2):LSA=O;LSB=1;LSC=O; break;case :LSA=1;LSB=1;LSC=O; break;case(4):LSA=O;LSB=O;LSC=1; break;case(5):LSA=1;LSB=O;LSC=1; break;case(6):LSA=O;LSB=1;LSC=1; break;case(7):10.单片机将串口接收到的数据以10进制显示在数码管上。(用单片机通过译码器控制数码管的位选端子。)【P2.2、3、4.译码器的 A、B、Co PO-LED#include#define GPIO_DIG P0sbit LSA=P2A2;sbi

18、t LSB=P2A3;sbit LSC=P2A4;unsigned char code DIG_CODE17=(0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char DlsplayData8;void DigDisplayO;void UsartConfiguration();void main()(unsigned char receiveData;UsartConfiguration();while(l)(if(RI = 1)(receiveData = S

19、BUF;RI = 0;DisplayDatafO = 0x00;DisplayDatafl = DIG.CODE(receiveData /100;DisplayData2 = DIG_CODEreceiveData % 100/ 10;DisplayData3 = DIG_CODEreceiveData % 10;DisplayData =0x00;DisplayData(5) = DIG_CODE(receiveData /100);DisplayData =DIG_CODE (receiveData % 100/10;DisplayData7 = DIG_CODEreceiveData

20、% 10;)DigDisplay();LSA=1;LSB=1;LSC=1; break;GPIO_DIG=DisplayDatai;j=10;while(j-);GPIO_DIG 二 0x00;)11.用单片机采集8个开关的状态,然后将采集到的结果通过发光二极管显示。当某一 开关闭合时,采集到的数据为“0”,与其对应的发光二极管亮,当某一开关断开时 采集到的数据为“1”,与其对应的发光二极管不亮。include case(OxBF):include define GPIO.KEY Pl#define GPIO_LED P0void DelaylOms(unsigned int c);unsig

21、ned char Key_Scan();void main(void)(unsigned char ledValue, keyNum;ledValue = 0x01;while (1)(keyNum = Key_Scan();switch (keyNum)(case(OxFE):ledValue = 0x01;break;case(OxFD):ledValue = 0x02;break;case(OxFB):ledValue = 0x04;break;case(0xF7):ledValue = 0x08;break;case(OxEF):ledValue = 0x10;break;case(O

22、xDF):ledValue = 0x20;break;ledValue = 0x40;break;case(0x7F):ledValue = 0x80;break;default:break;GPIO_LED = ledValue;)unsigned char Key_Scan()unsigned char key Value = 0 J;if(GPIO_KEY != OxFF)(DelaylOms(l);if(GPIO_KEY != OxFF)(keyValue = GPIO.KEY;i = 0;while (i0;a-);unsigned char az b;for (;cO;c-)(fo

23、r (b=38;b0;b-)12.用单片机控制八个发光二极管进行花样显示,显示规律为:(1)八个LED依次左移 点亮,(2)八个LED依次右移点亮,然后再从进行循环。【一个排线。排l(PO-LED) #include PO = LED;Delayl0ms(50);LED = LED 1;LED = LED | 0x80;void DelaylOms(unsigned int c);unsigned char LED;void main()(unsigned char i;“首先赋值LED-/LED = 0x01;for (d=2;d0;d-)(13.制作一个09的数秒器,并将计数值在数码上显示

24、出来。【P0JP3】#includedefine GPIO_DIG P0void Delayl0ms();unsigned char code DIG_CODE10=0x3Fr 0x06z 0x5B, 0x4F, 0x66, 0x6D, 0x7D,0x07,0x7F, Ox6F;void main(void)(unsigned char i = 0;while(l)GPIO_DIG = DIG_CODEi;for (c=200;c0;c-)for (b=10;b0;b-)for (a=124;a0;a-);14.设计一个4*4的行列式键盘,当按下某一个按键时,在LED数码管上显示该按键的键号。

25、【P0-JP3。Pl独立按键。74HC165短接帽断case(OXOb): KeyValue=4;break;15.设计一个流水花样灯。花样灯由八个发光二极管构成,正常情况下 花样灯正反向循环流水点亮,控制按钮SW按下时,花样灯中的发 光二极管交替点亮,当SW断开后花样灯恢复至正常状态。按键通过外部中断实现。【PO-LED。P3.2独立按键】for (b=38;b0;b-)#includevoid UsartConfiguration();void main()UsartConfiguration();while(l)()void U$artConfiguration()SCON=0X50;T

26、MOD=0X20;PCON=0X80;TH1=OXF3;#include#define uchar unsigned char#define uint unsigned intsbit ledl=PlA0;uchar num;void main()TMOD=0x01;TH0=(655364S872)56;TLO 二(6553645872)%256;EA=1;ETO=1;TRO=1;while(l)17.由串口调试助手发送“考生姓名和学号”给单片机,单片机接收到后返回给串口调试助手。TL1=OXF3;ES=1;EA=1;TR1=1;void Usart() interrupt 4(unsigned char receiveData;receiveData=SBUF;RI = O;SBUF=receiveData;whil

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1