郭天祥_十天学通单片机_所有课后作业+答案

合集下载

郭天祥单片机C语言课后答案

郭天祥单片机C语言课后答案

郭天祥单片机C语言课后答案郭天祥十天学通单片机 TX-1C单片机实验板所有课作业+答案,特别整理,供单片机爱好与学习者使用讲次内容细节第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。

点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。

第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD及DA、ADC0804的操作方法、DAC0832的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。

第八讲1602液晶、12864液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51单片机的定时器设计一个时钟综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。

(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第十一讲用DS12C887时钟芯片设计一个高精度时钟D S12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等。

十天学会单片机郭天祥(LESSON3_数码管静态显示及定时器和中断应用)

十天学会单片机郭天祥(LESSON3_数码管静态显示及定时器和中断应用)

LED数码显示方式及电路 数码显示方式及电路 静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示 方式。静态显示的特点是每个数码管的段选必须接一个8位 数据线来保持显示的字形码。当送入一次字形码后,显示字 形可一直保持,直到送入新字形码为止。这种方法的优点是 占用CPU时间少,显示便于监测和控制。缺点是硬件电路比 较复杂,成本较高。
MCS-51单片机的中断系统结构 主程序 中断请求 执行主 程序 断点 继续执行 主程序 执行 中断 处理 程序 中断返回 中断响应
引起CPU中断的根源,称为中断源。中断源向CPU提出 中断的根源,称为中断源。中断源向 引起 中断的根源 中断源 提出 的中断请求。 暂时中断原来的事务A,转去处理事件B。 的中断请求。CPU暂时中断原来的事务 ,转去处理事件 。 暂时中断原来的事务 对事件B处理完毕后 再回到原来被中断的地方( 断点), 处理完毕后, 对事件 处理完毕后,再回到原来被中断的地方(即断点), 称为中断返回。实现上述中断功能的部件称为中断系统 中断系统( 称为中断返回。实现上述中断功能的部件称为中断系统(中 断机构)。 断机构)。
89C52
RXD TXD ALE PSEN
LED
P20
P21
P22
U1
P10 P11 P12 P13 P14 P15 P16 P17 1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 17 16 P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 VCC GND RXD TXD ALE/P PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 40 20 10 11 30 29

(完整版)十天学会单片机C语言_郭天祥---课后习题答案

(完整版)十天学会单片机C语言_郭天祥---课后习题答案

郭天祥十天学通单片机TX-1C单片机实验板所有课作业+答案,特别整理,供单片机爱好与学习者使用讲次内容细节第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51 知识简介,如何申请免费芯片样品。

点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。

第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60 秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA 的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD 及DA、ADC0804 的操作方法、DAC0832 的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10 位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。

第八讲 1 602液晶、12864 液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51 单片机的定时器设计一个时钟综合运用51 单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。

(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第^一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10 年,并带有闹钟功能、年、月、日、时、分、秒等。

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理

郭天祥_十天学通单片机_实验板所有课后作业+答案_特别整理郭天祥《十天学通单片机》———“ TX-1C单片机实验板”所有课后作业+答案,特别整理,供单片机爱好与学习者使用第一讲学单片机预备知识、如何点亮一个发光管单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。

点亮一个发光管,第二讲流水灯设计、蜂鸣器发声、继电器控制简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用。

第三讲数码管显示的原理、数码管的静态显示共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用第四讲数码管的动态显示原理及应用实现动态扫描概念、定时器、中断加深用单片机的定时器及中断设计一个60秒定时器第五讲独立键盘、矩阵键盘的检测原理及实现键盘用来做什么、如何键盘检测、消抖、键盘编码、带返回值函数写法及应用第六讲AD、DA的工作原理及实现、运放电路模拟电压与数字电压的关系、为什么要使用AD 及DA、ADC0804的操作方法、DAC0832的操作方法第七讲串口通讯原理及操作流程串口通讯工作方式、10位数据通讯、波特率概念、如何根据波特率计算定时器初值、串口打印在调试程序中的应用。

第八讲1602液晶、12864液晶显示原理及实现最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作第九讲IIC总线AT24C02芯片工作原理IIC总线工作原理、目前非常通用的一种通信机制第十讲利用51单片机的定时器设计一个时钟综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟。

(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信)第十一讲用DS12C887时钟芯片设计一个高精度时钟DS12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等。

郭天祥十天学会单片机完整

郭天祥十天学会单片机完整

26))选:择T其1实运为行低控电制有平位有。效还是f下lo降a沿t 有效。
32
3.4e-38~3.4e38
所通谓信主 有从并型式行,通即信有在和数串个行单通片信d机两o中种ub,方l有式e一。个是主机,其余的是从机,从机6要4服从主机的调1度.7、e支-3配0。8~1.7e308
补I682个C充总发必线光要上管字符型的传由理送上论的至7有 无知数下识据间,信 隔即号1缺scu是流什hn广动a么s义,8ri补g的其什n,中e么既每d。包个c括9h管a地亮r址50A信0m号s,,灭B又50包0括ms真,亮正时的蜂8数8鸣据器信响号,。灭时0关-~1闭22蜂58鸣5~器1,27一直重复下去。
16
0~65535
1微0机10中B有->内10部-总> 无A线H和外部u总n线si两g类ne。d sБайду номын сангаасort int
16
0~65535
C-3P2U76在8处~3理27某67一事件A时u,n发si生g了n另ed一事lo件nBg请i求nCt PU迅速去处理(中3断2发生); 0~4294967295
一、数据位的有效性规定
2 10
8
1000
3 11
9
1001
4 100
10
1010
5 101
11
1011
十六进制
▪ 是二进制的简短表示形式。 十进制中的0-15分别表示为十六进制的0、1 、2、3、4、5、6、7、8、9、A、B、C、D 、E、F
▪ 熟练掌握二进制与十六进制之间的转换。 规律:一般把四个二进制数放在一起转换成 一个十六进制数,转换时先把二进制数转换 成十进制数,再把十进制数转换成十六进制 数。

郭天祥单片机课件作业

郭天祥单片机课件作业
⑷ 所需延时用奏乐指令03 00 04实现。
8、用单片机编程控制共阳数码管
⑴ 扩展板上的数码管先循环显示数字P37七次;
⑵ 单片机上的数码管记录循环显示的遍数;
⑶ 循环显示P37七次后再一直循环显示数字73P,直到按复位键结束程序的运行;
⑷ 所需延时用奏乐指令03 00 04实现。
9、用单片机编程控制共阳数码管
⑶ 循环显示24A九次后再一直循环显示数字A 42,直到按复位键结束程序的运行;
⑷ 所需延时用奏乐指令03 00 04实现。
7、用单片机编程控制共阳数码管
⑴ 扩展板上的数码管先循环显示数字U64九次;
⑵ 单片机上的数码管记录循环显示的遍数;
⑶ 循环显示U64九次后再一直循环显示数字46U,直到按复位键结束程序的运行;
⑶然后三个灯不发光,直到按复位键结束程序的运行,三个灯才恢复为发黄(橙)光;
⑷ 每次亮灯时间用奏乐指令03 00 04实现。
3.用DP801单片机控制DP801-1扩展板上的三色灯,要求:
⑴ 底色为红色,从左到右跑白光(就是不发光,每次只有一个灯不发光,其余的灯发红光);
⑵ 共跑动11次,单片机上的数码管记录跑动的遍数;
⑶然后三个灯不发光,直到按复位键结束程序的运行,三个灯才恢复为发黄(橙)光;
⑷ 每次亮灯时间用奏乐指令03 00 04实现。
8.用DP801单片机控制DP801-1扩展板上的三色灯,要求:
⑴ 底色为绿色,从左到右跑红光(每次只有一个灯发红光,其余的灯发绿光);
⑵ 共跑动6次,单片机上的数码管记录跑动的遍数;
⑶然后三个灯不发光,直到按复位键结束程序的运行,三个灯才恢复为发黄(橙)光;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

lesson1对照TX-1C单片机学习板原理图写程序用位操作和总线操作两种方法完成以下题目1.熟练建立KEIL工程2.点亮第一个发光管.3.点亮最后一个发光管4.点亮1、3、5、75.点亮二、四、五、六6.尝试让第一个发光管闪烁7.尝试设计出流水灯程序====================================== ====================================== ====================================== ====lesson2第一个发光管以间隔200ms闪烁8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。

8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。

用8个发光管演示出8位二进制数累加过程。

8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。

重复此过程。

间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。

间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。

====================================== ====================================== ====================================== ====lesson31、利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。

2、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。

3、同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,1k(hz)的方波。

4、用定时器以间隔500MS在6位数码管上依次显示0、1、2、3….C、D、E、F,重复。

lesson41.利用动态扫描方法在六位数码管上显示出稳定的654321.2.用动态扫描方法和定时器1在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去。

3.利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。

到此保持住。

lesson5数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。

(用定时器设计表)。

在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。

按下16个矩阵键盘依次在数码管上显示1-16的平方。

如按下第一个显示1,第二个显示4...====================================== ====================================== ====================================== ====lesson71.由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发声,发4时关闲蜂鸣器。

1.以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。

2.以16进制发送一个0-65536之间的任一数,当单片机收到后在数码管上动态显示出来,波特率自定。

3. 用AD以1HZ的频率采集模拟信号,然后转换成数字量,再将其以1200bps发送到计算机,在计算机上显示。

4.按下矩阵键盘第一行时以1200bps发送,1,2,3,4,第二行时以2400bps发送5,6,7,8,第三行以4800bps发送,9,10,11,12,第四行以9600pbs 发送,13,14,15,16.============================================================================ ====================================== ====Lesson1作业1用位操作点亮第一个发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明void main() //主函数{led1=0; //将单片机P1.0口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。

}2/ 用总线操作点亮第一个发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件void main() //主函数{P1=0xfe; //将单片机P1口的8个口由高到低分别赋值为11111110 while(1); //程序停止在这里,在后面会讲到为什么这样写。

}3 / / 用位操作点亮最后一个发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件sbit led8=P1^7; //单片机管脚位声明void main() //主函数{led8=0; //将单片机P1.7口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。

}4 // 用总线操作点亮最后一个发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件void main() //主函数{P1=0x7f; //将单片机P1口的8个口由高到低分别赋值为01111111 while(1); //程序停止在这里,在后面会讲到为什么这样写。

}5 // 用位操作点亮1,3,5,7发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明sbit led3=P1^2; //单片机管脚位声明sbit led5=P1^4; //单片机管脚位声明sbit led7=P1^6; //单片机管脚位声明void main() //主函数{led1=0; //将单片机P1.0口清零led3=0; //将单片机P1.2口清零led5=0; //将单片机P1.4口清零led7=0; //将单片机P1.6口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。

}6 // 用总线操作点亮1,3,5,7发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件void main() //主函数{P1=0xaa; //将单片机P1口的8个口由高到低分别赋值为10101010 while(1); //程序停止在这里,在后面会讲到为什么这样写。

}7// 用位操作点亮2,4,5,6发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件sbit led2=P1^1; //单片机管脚位声明sbit led4=P1^3; //单片机管脚位声明sbit led5=P1^4; //单片机管脚位声明sbit led6=P1^5; //单片机管脚位声明void main() //主函数{led2=0; //将单片机P1.1口清零led4=0; //将单片机P1.3口清零led5=0; //将单片机P1.4口清零led6=0; //将单片机P1.5口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。

}8 // 用总线操作点亮2,4,5,6发光管.// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件void main() //主函数{P1=0xc5; //将单片机P1口的8个口由高到低分别赋值为11000101while(1); //程序停止在这里,在后面会讲到为什么这样写。

}9 // 尝试让第一个发光管闪烁.(程序看不懂没关系,后面章节会有详细讲解) // 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明void main() //主函数{unsigned int i; //定义一个int型变量while(1){i=50000; //变量赋初值为50000led1=0; //点亮灯while(i--); //延时i=50000;led1=1; //熄灭灯while(i--);}}9 // 尝试写出流水灯程序(程序看不懂没关系,后面章节会有详细讲解) // 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件void main() //主函数{unsigned int i; //定义一个int型变量while(1){i=50000; //变量赋初值为50000P1=0xfe; //点亮第一个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xfd; //点亮第二个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xfb; //点亮第三个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xf7; //点亮第四个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xef; //点亮第五个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xdf; //点亮第六个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xbf; //点亮第七个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0x7f; //点亮第八个灯while(i--); //延时}}Lesson 21 // 第一个发光管以间隔200ms闪烁// 适用TX-1C单片机实验板// 晶振为11.0592M/*********************************************************/#include<reg52.h> //52单片机头文件#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit led1=P1^0; //单片机管脚位声明void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.{ //delay(500);大约延时500ms.uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void main() //主函数{while(1) //大循环{led1=0; //点亮小灯delay(200); //延时200毫秒led1=1; //熄灭小灯delay(200); //延时200毫秒}}2 // 8个发光管由上至下间隔1s流动//,其中每个管亮500ms,灭500ms,亮时蜂鸣器响//,灭时关闭蜂鸣器,一直重复下去。

相关文档
最新文档