单片机编程题练习_第1页
单片机编程题练习_第2页
单片机编程题练习_第3页
单片机编程题练习_第4页
单片机编程题练习_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 假定甲乙机以方式1进行串行数据通信,晶振=12MHz,要求波特率为1200bps。乙机发送,甲机接收。请画出电路图并写出初始化发送(查询)和接收(中断方式)程序。2、 口线P1.0接一个发光二极管,由定时器0控制,用于演示1秒钟亮、1秒钟暗的效果。3、 给80C51单片机扩展一片6116,0809和8155,要求0809采用中断方式,8通道工作;采用138译码选择芯片。请画出系统连接图,写出各芯片的地址范围并写出8155内各口及其内部的RAM地址范围。4、 已知系统的连接如图所示,试编写程序实现下列功能:(1) .编写上电显示程序,显示“123456”。(2) .编写主程序,功能为:当有键按下(0~7号)时,都显示键号;无键按下,保持原有显示状态。5、选用DAC0832芯片产生一个三角波,要求幅值为0~2.5V。

6、 假定甲、乙机以方式1进行串行数据通信,晶振频率为6MHz。要求波特率为1200bps,甲机发送数据88H(查询方式),乙机接收(中断方式)。请画出电路图并编程实现上述功能。50uFI74LS2443^-4JY4白2^12¥11^41Y4A3IV33AUVZ?*«斗鼻T14-由直询A4T-SAftppfpfppp9123cc££pFFF50uFI74LS2443^-4JY4白2^12¥11^41Y4A3IV33AUVZ?*«斗鼻T14-由直询A4T-SAftppfpfppp9123cc££pFFF®7盹站駅时ft?吓抽p-fppfphf0GEBBBG74L8244-2*42¥^l^2^32¥3<A?2¥ZiSftl2VLLA4IVJI:ftjivsIA21Y2.写出各口的地址和控制字A口地址:B口地址:C口地址:控制口地址:控制字:.显示程序8、已知ADC0809单片机的连接如下图所示,试写出启动0809第3通道A/D转换的程序段。、把外部2000H内容送到内部RAM的20H单元。、找出20H~22H三个单元中的最大数,放在A累加器中。

9、编写程序完成以下功能:每响应一次外部中断,发光二极管亮一秒钟。六、简单编程题:、用间接寻址方式,把外部20H内容送到内部RAM的20H单元。、依据第四题接线图,写出启动0809第3通道A/D转换的程序段。、编写串行口方式1串行发送初始化程序。(省略波特率发生器初始化)。10、 假定甲乙机以方式1进行串行数据通信,晶振=6MHz,要求波特率为1200。甲机发送,乙机接收。请画出电路图并计算出波特率,写出初始化发送和接收程序。11、 当系统选用12MHz晶体振荡器时,由定时器0控制产生周期为4ms(脉冲宽度为2ms)的方波序列(采用中断方式),并由P1.0输出,请编写实验程序。12、 已知8155与单片机的连接如图所示。WTINEDTOUT丿RESET-1WTINEDTOUT丿RESET-1(1).写出8155中RAM及各口的地址。(2).将A口和B口定义为基本输入方式,C口定义为输出方式,定时器作为方波发生器,对输入脉冲进行24分频,写出8155的初始化程序。13、 ADC0809与8051单片机的硬件接口如下图所示,模拟量输入选择7通道,编制A/D转换程序,将转换结果送30H单元。14、 已知8279与单片机的连接如图所示,8708为同相驱动器。试编写程序实现下列功能:.编写中断服务子程序,完成读键值功能,将键值放入20H单元。(2).编写主程序,功能为:当1#键按下时,显示“98211”;当2#键按下时,显示“98212”;其它键返回。15、当系统选用6MHz晶体振荡器时,由CTCO控制产生周期为2ms(脉冲宽度为1ms)的方波序列,并由P1.0输出,请编写程序。16、实验题假定甲乙机以方式1进行串行数据通信,晶振=6MHz,要求波特率为1200。甲机发送,乙机接收。请计算出波特率,写出初始化发送和接收程序。17、 若8255芯片的片选端与8031的P2.7相连,A1A0端与地址总线A1A0相连,现要求8255工作在方式0,A口作为输入,B口作为输出,且将C口的第6位PC5置1,请编写初始化工作程序。18、 选用DAC0832芯片,设计有三路模拟量同时输出的MCS—51系统,画出硬件结构框图,编写数模转换程序。19、 已知8279与单片机的连接如课本P186图所示。试编写程序实现下列功能:(1).显示字符“ HELLO”;(2).编写中断服务子程序,完成读键值功能,将键值放入20H单元。20、 ADC0809与8051单片机的硬件接口如下图所示,模拟量输入选择7通道,编制A/D转换程序,将转换结果送30H单元。21、 试编写一段对中断系统初始化的程序,使之允许,,T0,串行口中断,且使T0中断为高优先级中断。22、 使用位操作指令实现下列逻辑操作,要求不得改变未涉及位的内容。(1) 使ACC.0置1;(2) 清除累加器高4位;(3) 清除ACC.3,ACC.4,ACC.5,ACC.6。23、试编写程序,将内部RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH,和2DH中。24、编写两个16位数的减法:6F5DH-13B4H,结果存入内部RAM的30H,31H单元,30H存差的低八位。25、 两个四位BCD码相加,被加数和加数分别存于50H,51H,52H,53H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数存放在54H,55H和56H中(56H用来存放最高位的进位),试编写加法程序。26、 试编程对8155进行初始化。设A口为选通输出,B口为基本输入,C口作为控制联络口,并启动定时器/计数器按方式1工作,定时时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHZ。27、 在一个8031应用系统中扩展一片2764,一片8155和一片6264。试画出其系统框图,并指出所扩展的各个芯片的地址范围28、 设计一个4X4行列式键盘电路并编写键扫描子程序。29、 试设计一个用8155与有32个按键的键盘连接的接口电路。编写程序实现以下功能:用8155定时器定时,每隔2s读一次键盘,并将其读入的键值存入8155片内RAM40H开始的单元中。30、 用8051的P1口作8个按键的独立式键盘接口。试画出其中中断方式的接口电路及相应的键盘处理程序。31、 试用8255为8051微机系统设计一个键盘接口。键盘为3X4个键,其中10个为数1〜9,两个为功能键RESET和START。具体要求:(1) 按下数字键后,键值存入3040H开始的单元中(每个字节放一个键值)。(2) 按下RESET(复位)键后,键PC复位成0000H。(3) 按下START(启动)键后,系统开始执行用户程序(用户程序的入口地址4080H)。试画出该接口的硬件连接图并进行程序设计。32、 试设计一个LED显示器/键盘电路。33、 试为8051微机系统设计一个LED显示器接口,该显示器共有八位,从左到后分别DG1〜DG8(共阴极式),要求将内存3080H〜3087H八个单元中的十进制(BCD)依次显示在DG1〜DG8上。要求:画出该接口硬件连接图并进行接口程序设计。34、 在一个fosc=12MHz的8031应用系统中,接有一片A/D器件ADC0809,它的地址为FEF8H〜FEFFH。试画出有关逻辑框图,并编写定时采样8个通道的程序。设采样频率为2ms一次,每个通道采10个数,把所采的数按0〜7通道的顺序存放在以1000H为首地址的外部RAM中。35、 在一个fosc=12MHz的8031应用系统中,接有一片D/A器件DAC0832,它的地址为7FFFH,输出电压为0〜5V。请画出有关逻辑框图,并编写一个程序,当其运行后0832能输出一个矩形波,波形占空比为1:5。高电平时电压为2.5V,低电平时为1.25V。36、试编写延时2ms的程序37、 用查表程序求0〜8之间整数的立方。38、 编写有6个命令键的散转程序。键号为0、1、2、3、4、5;6个键A、B、C、D、1、2的ASCII码放在累加器A中。39、 按下列要求编程。(1) R7内容送R6中;(2) 外RAM50H单元内容送内RAM50H单元;(3) 外RAM1000H单元内容送外RAM2000H单元;(4) ROM1000H单元内容送外RAM8000H单元;已知无符号二字节乘数存在42H41H中,另一无符号乘数存在40H中,试编程实现: 42H41HX40H—42H41H40H已知fosc=12MHz,试编写延时2s子程序。用软件实现逻辑运算:Q=(R+S)T+(U+V)。其中Q、R、S、T、U和V均为位变量,依次存放在以位地址40首址的位寻址区中。43.已知某单片机系统每隔1s测一次温度,8位温度A/D值存在特殊功能寄存器SBUF中,试求其1分内的平均值,存40H。44.已知显示数(W255)存在30占,试将其转换为共阴显示字段码,存入首址为40H的内RAM中(设共阴显示字段码表已知,且已存在首址为TABD的ROM中)。45•已知外RAM1000H单元开始存有一组数据,其长度存放在该数据区首字节,要求统计出其中大于10、等于10和小于10的数的个数,并把统计结果分别存入内RAM30H~32H单元。已知图8-15循环灯电路,VRXD、VTXD、PIOX1分别为P1.5~P1.7,试利用单字节虚拟串行输出子程序VUARTO编制程序,使发光二极管从右到左,每隔0.5秒依次点亮,不断循环。已知图8-16并入串出电路,VRXD、VTXD、PIOX1分别为P1.0〜P1.2,试利用单字节虚拟串行输出子程序VUARTI编制程序,每隔1秒(运用T0中断,fosc=6MHz)从74HC165并行口输入状态数据,并存入内RAM30H。80C51P1.4~P1.7分别与93C46CS、SK、DI和DO相连,试将80C51内RAM中以30H为首址的10字节数据存入AT93C46首址为40H的区域中。

49.试统计某展览会参展人数。已知展览会有4个入口,且均已安装检测探头,每进入一人,能产生一个负脉冲,分别输入P3.2、P3.3、P3.4、P3.5。估计参展人数多于10万,试编程,将累计参展人数存32H、50.已知循环灯电路图6-4,试编程使发光二极管从右至左,每隔0.3秒依次点亮,不断循环。试以串行方式1设计一个发送程序。已知fosc=11.0592MHz,波特率为2400b/s,SM0D=1,16个发送数据存在内RAM30H为首地址的区域中。设计一个串行方式2发送子程序(SM0D=0),将片内RAM40H~47H中的数据串行发送,第9数据位作为奇偶校验位(不校对)。编制一个串行方式2接收子程序(SMOD=1),接收10个数据,并核对奇偶校验位,接收核对正确,存首址为50H的内RAM中;发现错误,置位错误F0,并停止接收。已知一MCS—51单片机系统的片内RAM20H单元存放了一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。P08051P2.5F2.6P2.7ALC0832/ldYOCSIocn_l顽P08051P2.5F2.6P2.7ALC0832/ldYOCSIocn_l顽SWR2AGNEXFZRvccILECYADPTR片外01H片外00H片外8000H55、根据图示电路,编写程序,使0832输出负向锯齿波。56、设计用单片机P1口控制1位共阴极LED。按键1按下,循环显示0〜5,按键2按下,按100Ms的间隔显示0和1。设计硬件电路,并编程实现上述功能。57、单片机用内部定时方法产生频率为lOOKHz等宽矩形波,假定单片机的晶振频率为12MHz,请编程实现。使用定时器中断方法设计一个秒闪电路,让LED显示器每秒钟有4OOms点亮。假定晶振频率为6MHz,画出电路连接图并编写程序。使用8O31设计一个键盘接口(可用8155或8255)。键盘共有12键(3行X4列)其中10个为数字键0〜9,两个为功能键RESET和START。具体要求如下:按下数字键后,键值存入3040H开始单元中。按下RESET键后,将PC复位为0000H按下START键后,系统开始执行用户程序(用户程序的入口地址为4080H)试画出该接口的硬件连接图并进行程序设计。试为8051设计一个LED显示器接口,该显示器共有八位,从左到右分别为DG1〜DG8(共阴极接法),要求将内存3080H〜3087H八个单元中的十进制数(BCD)依次显示在DG1〜DG8上。要求:画出电路图并进行编程。已知MCS-51单片机系统片内RAM20H单元存放乐一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。请写出完成下列操作的指令:使累加器A的低4位清0,其余位不变。使累加器A的低4位置1,其余位不变。(1)使累加器A的低4位取反,其余位不变。63、试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。(1)使ACC.0置位;(2)清除累加器高4位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6。64、 试编写程序段实现外部RAM2000H单元的内容传送到内部RAM20H中的操作。65、 试编写程序段实现外部RAM2000H单元的内容传送到外部RAM3000H中的操作。66、 试编写程序段,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。67、 试编写程序段,完成两个16位数的减法:7F4DH—2B4EH,结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。68、 试编写程序段,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。69、 试编写程序段,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。70、 在内部RAM的21H单元开始存有一组单字节不带符号数,数据长度为30H,要求找出最大数存入BIG单元。71、 编写程序,把累加器A中的二进制数变换成3位BCD码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H中。72、 编写程序,求内部RAM中50H~59H十个单元内容的平均值,并存放在5AH单元。73、 设有100个无符号数,连续存放在外部RAM1000H地址开始的区域,编程统计其中的正数、负数和0的个数,并分别存放在内部RAM的20H、21H、22H单元中。74、 编程分别将外部RAM的0000H〜0000FH、1030H〜1050H、2050H〜3000H地址单元清零。75、 试编程对8255初始化,使其A口按方式0输入,B口按方式1输出,C口上半部分按方式0输出,下半部分按方式1输出。76、 编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。

77、已知系统的连接如图所示,试编写程序实现下列功能:1)编写显示程序,显示“123456”。(2)编写主程序,功能为:当有键按下(0~7号)时,都显示键号;无键按下保持原有显示状态。TqLl?T3±A丄s30vcc89C51P?.IPD«TqLl?T3±A丄s30vcc89C51P?.IPD«••力Ftfr«*PtTCTP2778、试设计MCS-51与DAC0832的接口电路,并编制程序,输出图所示波形。79、 设计并编程,完成单片机的双机通信程序,将甲机片外RAM的1000H〜100FH的数据块通过串行口传送到乙机的20H~2FH单元。片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和V256试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。试将8031单片机外接一片2716EPROM和一片6116RAM组成一个应用系统,请画出硬件连线图,并指出扩展存储器的地址范围。83、利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为1次/秒(8个灯依次亮一遍为一个周期)。应用单片机内部定时器TO工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=216-1(f/12)(2)写出程序清单片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中.设计一个2X2行列式键盘电路并编写键盘扫描子程序。编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。将31H、32H单元与41H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。即(31H)(30H)+(41H)(40H) 32H、31H、30H。输入程序参考程序MOVR0,#30HMOVR1,#40HMOVR2,#02HCLRCL1:MOVA,@R0ADDCA,@R1DAAMOV@R0,AINCR0INCR1DJNZR2,L1CLRAMOVACC.0,CMOV@R0,A在31H、30H单元存入加数如3018,在41H,40H单元存入被加数如8975。输入程序首地址,(从处为2000H),然后开始单步或断点运行该段程序。运行过程中检查数据的变化,并在最后检查(32H)= ,(31H)二 ,(30H)二 。编程实现逻辑运算:Q=(U*(V+W))+X.Y)+Z。设U〜Z的位地址为00H〜05H.Q的位地址为07H。《实际中U〜Z可以是外部输入端口信号或软件设定的一些控制位》。编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去。片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和V256=。编一个程序,将累加器中的一个字符从串行接口发送出去。用查表法编一子程序,将R3中的BCD码转换成ASCII码。片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中。编一子程序,从串行接口接受一个字符。利用调子程序的方法,进行两个无符号数相加。请编主程序及子程序。若图数据块是有符号数,求正数个数。编程并注释。编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。8225A控制字地址为300FH,请按:A口方式0输入,B口方式1输出,C口高位输出,C口低位输入,确定8225A控制字并编初始化程序.编定一个软件延时1S和1min的子程序.设fosc=6Hz,则一个机器周期1仇s。102请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设定为方式2,采用偶校验方式。设晶振频率为6MHz。应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=2i6—t(f/12)(2)写出程序清单应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为1ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=2i6—t(f/12)(2)写出程序清单利用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。编出汇编语言程序。设计一个4位数码显示电路,并用汇编语言编程使"8"从右到左显示一遍。编制一个循环闪烁的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。在8051单片机的INTO引脚外接脉冲信号,要求每送来一个脉冲,把30H单元值加1,若30H单元记满则进位31H单元。试利用中断结构,编制一个脉冲计数程序。利用89C51的P1口控制8个发光俄二极管LED。相邻的4个LED为一组,使2组每隔0。5S交替发亮一次,周尔复始。试编写程序。设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H~59H单元,画出电路图,编出:(1)延时方式;(2)查询方式;3)中断方式中的一种程序。试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。设单片机采用8051,未扩展片外ROM,片外RAM采用一片6116,编程将其片内ROM从0100H单元开始的10B得内容依次外接到片外RAM从100H单元开始得10B中去。1138031扩展8255A,将PA口设置成输入方式,PB口设置成输出方式,PC口设置成输出方式,给出初始化程序。114设计一个2X2行列式键盘电路并编写键盘扫描子程序。115要求将存放在8031单片机内部RAM中30H—33H单元的4字节数据,按十六进制(8位)从做到右显示,试编制程序。采用8255A或8155H并行扩展口设计一个4x4键盘和6位LED显示器电路且编写键扫描程序和动态显示程序。设计一个80311单片机与DAC0832的接口电路,并编写相应的程序。设计一个8031单片机与DACl220的接口电路,并

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论