四、编程题
1、编制程序。将30H单元开始存放的8字节二进制数(低位在30H)与40H单元开始存放的8字节二进制数(低位在40H)相加,结果存入40H单元开始的8个单元中(低位在40H)。 2、编写程序。判别RAM中30H单元的内容,若(30H)>10,则31H单元内容置01H; 若(30H)=10,则31H单元内容置02H;若(30H)<10,则31H单元内容置03H。 3、编写程序,使内部RAM中20H和30H单元内容互换。
5、编写程序。两个无符号数比较,内部RAM的20H单元和30H单元各存放了一个8位无符号数,请比较这两个数的大小,若(20H)>=(30H),则P1.0清零,否则P1.1清零。 6、现有一5V蜂鸣器,用89C51设计一系统,由P1.0控制蜂鸣器周而复始地响20ms,停20ms。要求20ms定时时间由定时器0产生。画出电路,编写程序(fosc=6MHz)。 7、使用89C51片内定时器1编一个程序,从P1.0输出50Hz的对称方波(fosc=12MHz)。 8、使用89C51片内定时器1(工作在方式2)为波特率发生器,欲以9.6kHz通过串口通信,串口工作在方式3,请先算定时器初值,再编写初始化程序(fosc=11.0592MHz)。
9、利用89C51的P1口控制8个发光二极管LED,LED1-LED4为一组,LED5-LED8为一组,使二组每隔0.5秒交替发亮一次,周而复始。画出电路,编写程序。
10、编写计算下式的程序。设乘积和平方结果均小于255。a、b值分别存在3001H和3002H单元中,结果存于片外3000H单元中。 (12分) (a+b)+10 (a+b)<10
22
Y= (a+b) (a+b)=10
22
(a+b)-10 (a+b)>10
11、请用位操作指令编程,求下面逻辑方程,结果由P2.3输出。(10分)
P2.3=( / P1.5 × B.4 + / ACC.7) × P1.0
12、编程计算下列算式的程序,结果存入40H ~ 42H单元中(42H单元为高位)。(10分) AB123H - 43ADCH
13、编程计算下列算式的程序(10分)
CDH+15H-38H-46H
14、请用位操作指令编程,求下面逻辑方程,结果由P1.7输出。(10分)
P1.7=ACC.0*(B.0+P2.1)+/P3.2
2
2
31