C语言程序:
#include <reg51.h> //包含特殊功能寄存器库 sbit P1_1=P1^1; char i; void main() {
TMOD=0x10;
TH1=0xD8;TL1=0xf0; EA=1;ET1=1; i=0; TR1=1; while(1) {
if (i= =0) {P1_1=1;} if (i= =1) {P1_1=0;} if (i= =2) {P1_1=0;} } ; }
void time0_int(void) interrupt 3 //中断服务程序 {
TH1=0xD8;TL1=0xf0; i++;
if (i= =3) {i=0;} }
21. 用8051单片机的串行口扩展并行I/O接口,控制16个发光二极管依次发光,画出电路图,用汇编语言和C语言分别编写相应的程序。
解:
采用在串口连接两个CD4094来实现,电路图如下:
ORG 0000H LJMP MAIN
ORG 0100H
MAIN: MOV SCON,#00H
MOV R4,#10H MOV R3,#00H MOV R2,#01H CLR P1.0