用8个数码管和8个74HC595组成扩展电路,使用单片机的SPI或者任意2个GPIO模拟数据线和时钟线按照时序发送数据即可。
中断方式:ORG 0000H JMP MAIN ORG 000BH JMP T0_INT MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536-62500)MOV TL0, #LOW (65536-62500)SETB TR0 MOV A, #7FH MOV P0, A M_LOOP:SJMP M_LOOP ;--- T0_INT:MOV TH0, #HIGH(65536-62500)MOV ...
ORG 0000H;利用定时器中断产生延迟 AJMP MAIN;ORG 000BH;定时器0入口地址 AJMP LABEL;进入中断服务程序 MAIN:MOV TMOD,#01H;SETB TR0;SETB EA;SETB ET0;MOV TH0,#00H;MOV TL0,#00H;以上是定时器中断初始化 MOV R1,#0FEH;我这里认为流水灯是低电平有效 SJMP LABEL:MOV A,R1;RR A;循环...
最直接的例子,就是定时器初始化,比如:TMOD=0x01;//定时器0设为工作方式1 TH0=(65536-50000)/256;//初值高八位赋值给TH0 TL0=(65536-50000)%256;//初值低八位赋值给TL0
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它...
ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,#0FEHLOOP: MOV P1,A LCALL DELAY RL A SJMP LOOPDELAY: MOV R2,#200DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END
(1)编制从上往下流水灯程序,这个电路,很有特点。按照电路的要求,流水灯程序如下,已经经过验证:ORG 0000H LJMP MAIN MAIN:MOV A, #01H M_LOOP:XRL A, #00110011B MOV P3, A XRL A, #00110011B RL A CALL DL_200ms SJMP M_LOOP ;--- DL_200ms:MOV ...
include<reg51.h> define uchar unsigned char;uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f uchar number,nn=0;uchar dat[]={2,0,1,2,1,1,4,5,8,2};void t0isr() interrupt 1 { TH0=(...
单片机流水灯C语言程序的源代码如下:include //51系列单片机定义文件 define uchar unsigned char //定义无符号字符 define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) //8个流水灯...
include<reg51.h>#define uchar unsigned charuchar led[5]={0x7e,0x3c,0x18,0x00,0xff};uchar num;sbit key=P1^0;main(){P0=0xff;num=0;while(1) { if(key==0) { while(key==0); P0=led[num]; num++; num%=5; } }} ...