1.编程查找内部RAM的30H~40H单元中是否有0AAH这个数据,若有,则将50H单元置为0FFH,否则清50H单元为0。
2.查找20H~4FH单元中出现11H的次数,并将查找结果存入50H单元。
3.已知单片机的fOSC=12MHz,分别设计延时0.1s、1s、1min的子程序。
答:延时1ms的子程序:执行时间(机器周期)
该程序段总的执行时间为:
(1+4×255+2)μs=1023μs≈1ms
延时时间为100ms的子程序:
该程序段总的执行时间为:
4.试编写8B外部数据存储器到内部数据存储器的数据块传送程序,外部数据存储器地址范围为40H~47H,内部数据存储器地址范围为30H~37H。(https://www.xing528.com)
5.试编写8B内部数据存储器到外部数据存储器的数据块传送程序,外部数据存储器地址范围为2040H~2047H,内部数据存储器地址范围为30H~37H。
6.试编程使内部数据存储器的20H~4FH单元的数据块按降序排列。
答:采用冒泡法排序。冒泡排序法的基本算法是:N个数排序,从数据存放单元的一端(如起始单元)开始,将相邻2个数依次进行比较,如果相邻2个数的大小次序和排序要求一致,则不改变它们的存放次序,否则相互交换两数位置,使其符合排序要求,这样逐次比较,直至将最小(降序)或最大(升序)的数移至最后。然后,再将N-1个数继续比较,重复上面操作,直至比较完毕。
可采用双重循环实现冒泡法排序,外循环控制进行比较的次数,内循环实现依次比较交换数据。程序如下:
7.试编写一个用查表法查0~9字形段码的子程序,调用子程序前,待查表的数据存放在累加器A中,子程序返回后,查表的结果也存放在累加器A中。
8.内部RAM的20H单元开始有一个数据块,以0DH为结束标志,试统计该数据块长度,将该数据块传送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。
9.内部RAM的DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。
10.内部RAM的DATA1和DATA2单元开始存放着2个等长的数据块,数据块的长度放在LEN单元中。请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
