汇编语言:用单片机的P0、P1、P2口连接20个LED灯,(P0口8个LED、P1口8个LED、P

作者&投稿:盖制 (若有异议请与网页底部的电邮联系)
用汇编语言:单片机P1口接8个LED灯,按P3.1键时,灯由下往上亮,按P3.2键时候,灯从上往下亮~

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EX0INT
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA
MOV R0,#0
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
LOOP:
MOV A,P1
CPL A
MOV P1,A
LCALL DELAY
SJMP LOOP
EX0INT:
PUSH ACC
INC R0
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
RETI
DELAY:
MOV R2,#100
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
TABLE: ; 共阴极数码管显示代码表
DB 0C0H,3FH,06H,5BH,4FH ;01234
DB 66H,6DH,7DH,07H,7FH ;56789
END

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EX0INT
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA
MOV R0,#0
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
LOOP:
MOV A,P1
CPL A
MOV P1,A
LCALL DELAY
SJMP LOOP
EX0INT:
PUSH ACC
INC R0
MOV DPTR,#TABLE
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
RETI
DELAY:
MOV R2,#100
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
TABLE: ; 共阴极数码管显示代码表
DB 0C0H,3FH,06H,5BH,4FH ;01234
DB 66H,6DH,7DH,07H,7FH ;56789
END

;这是刚做的一个24个LED的流水灯,你可以参考一下。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR ;50ms定时
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#03CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MOV R2,#0
MOV R3,#0
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
MOV R4,#0FEH
MOV R5,#0FFH
MOV R6,#0FFH
LOOP:
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC R2
CJNE R2,#20,T0E
MOV R2,#0
INC R3
CJNE R3,#0,T000
MOV P0,#00H
MOV P1,#00H
MOV P2,#00H
T0E:
RETI
T000:
CJNE R3,#1,T001
MOV P0,#0FFH
MOV P1,#0FFH
MOV P3,#0FFH
RETI
T001:
CJNE R3,#25,T002
T002:
JC T003
MOV R3,#0FFH
T003:
MOV P0,R4
MOV P1,R5
MOV P2,R6
MOV A,R4
RLC A
MOV R4,A
MOV A,R5
RLC A
MOV R5,A
MOV A,R6
RLC A
MOV R6,A
XCH A,R4
MOV ACC.0,C
MOV R4,A
RETI
END


单片机用什么语言编写程序?
单片机一般用C语言或者汇编语言来编写程序。建议先学C语言,汇编语言要算地址,汇编语言比较难,所以建议先学C语言。汇编语言要算地址,大多数情况下,单片机运行的程序,都是C语言编写的。不过并不是一般意义上的C语言,而是变种后的C51语言。单片机是典型的嵌入式微控制器(Microcontroller Unit),由运算器...

用c语言循环语句怎么写一个51单片机的时钟啊,用8个数码管显示时间...
include<reg51.h> define uchar unsigned charuchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};\/\/0-9unsigned char sec=0,min=0,hour=12,scanled;unsigned char key,flashbit,mode,time; unsigned char disdat[8];sbit led=P1^0;void delay(...

单片机 题目:用c语言程序 编写程序。求高手 谢谢
1.T = 1\/2000= 500us T\/2 = 250us 因此定时250us T0 工作方式1,初值计算:TH0 = (65536-250)\/256 TL0 = (65536-250)%256 2. 查询法 include <reg51.h> define WAVE 0x01;int main(){ TMOD = 0x01;TH0 = (65536-250)\/256;TL0 = (65536-250)%256;TR0 = 1;while (1){...

用KEIL编写C语言程序实现:单片机是AT89C51,实现一个计时器,数码管为6...
按照你的要求写的程序如下,你拿去测试吧!include "REG52.H"sbit SHUG_01 = P2^0; \/\/数码管1 sbit SHUG_02 = P2^1; \/\/数码管2 sbit SHUG_03 = P2^2; \/\/数码管3 sbit SHUG_04 = P2^3; \/\/数码管4 sbit SHUG_05 = P2^4; \/\/数码管5 sbit SHUG_06 = P2^5;...

用52单片机C语言编写程序,实现00~59计时。要求用T0,工作方式1。_百度...
include <reg52.h> define uint unsigned int define uchar unsigned char sbit dula=P2^6; \/\/段选 sbit wela=P2^7; \/\/位选 uchar shi,ge,num1,num2; \/\/变量 uchar code table[]={0x3f,0x06,0x5b,0x4f,\/\/共阴极字型码 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39...

单片机。分别使用c语言和汇编语言编写一个程序
include<reg52.h>unsigned char aa _at_ 0x30;void main(){ IE = 0x81; IT0 = 1; aa = 0; while(1);}X0_INT() interrupt 0{ aa++; aa %= 100;}\/\/=== ORG 0000H LJMP START INC 30H MOV A, #100 CJNE A, 30H, E...

在使用单片机中,汇编语言和c语言各有什么优缺点?
一、汇编语言:缺点:汇编语言属于低级语言,难理解,编程效率低,编程容易出错。优点:程序执行效率高,占用资源少, 方便对最底层的一些东西进行操作。二、C语言:缺点:危险性高,开发周期长,可移植性不如JAVA。优点:语句少但是灵活度高,针对过程的言语相比于非结构化言语条理性很好接近人类的逻辑思维...

51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT;;定义变量===YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序===START:MOV LED,#0FEH;初始化数据MOV YSJS,#0;MOV TMOD,#10H;定时器1工作于方式1,16位定时...

用C语言编写AT89C51单片机程序,设计一个智能数字钟。
include<reg52.h> define uint unsigned int define uchar unsigned char sbit QB1=P1^0;sbit QB2=P1^1;\/\/数码管段选 sbit QB3=P1^2;sbit QB4=P1^3;sbit QB5=P1^4;sbit QB6=P1^5;sbit fm=P1^6; \/\/蜂鸣器 sbit s1=P2^4; \/\/s5按键,切换显示 sbit s2=P2^3; \/\/s2按键,设置调...

51单片机,stm32,arduino都是用什么语言进行编程的?
51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上大学时也是学习的汇编编程,但是现在我用C语言编程,汇编已经不会了。51单片机比较常用的编程环境是Keil,现在Keil更新到Keil5了。如下是51单片机Keil的编程环境。STM32单片机的编程 STM32单片机是意法半导体推出的高性价比、片上资源...

梨树县13976145360: 汇编语言:用单片机的P0、P1、P2口连接20个LED灯,(P0口8个LED、P1口8个LED、P -
衅威润津: ;这是刚做的一个24个LED的流水灯,你可以参考一下.ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ;50ms定时 ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H SETB TR0 SETB ET0 SETB EA MOV R2,#0 MOV...

梨树县13976145360: 急..急求单片机at89c51的.用汇编语言:单片机p0(p0.0,p0.1,p0.2,p0.3)4个端口接有4个开关 -
衅威润津: ORG 0000H LJMP MAIN ORG 0030H MAIN: ORL p0,#0FH ;在读P0口时先对P0口写1 MOV A,p0 ANL A,#0FH MOV DPTR,#LED7 ;根据从P0口读到的数据查表,TAB中存放数码管的显示码表 MOVC A,@A+DPTR MOV p1,A ;把码表值送数码管显示 AJMP MAIN;共阳数码管显示码表 LED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,86H,0A1H,86H,8EH

梨树县13976145360: 汇编程序:读取p1或p0口高低电平 -
衅威润津: 一开始是p1.0低电平吧 org 0000h ljmp main org 0050hmain: clr p1.1 ;初始化p1.1为低电平clr p1.0 ;初始化p1.0为低电平 main1:jb p1.0,aa ;判断p1.0是不是高电平,是叫跳转到aaljmp main1 aa: setb p1.1 ;p1.1高电平lcall dy ;调用延时clr p1.1 ;p1.1为电平ljmp main1 dy:mov r1,#4 d1: mov r2,#10 d2: mov r3,#25 djnz r3,$ djnz r2,d2 djnz r1,d1 ret end

梨树县13976145360: 单片机用汇编语言.编译一个P1.0加P1.5口给低电平然后P0.0输出一个高电平.P1.0+P1. -
衅威润津: 1、P1.0加P1.5口给低电平然后P0.0输出一个高电平. MOV A,P1 MOV C,ACC.0 ORL C,ACC.5 CPL C ;两个脚都为低电平的时候,执行这条指令后,CY = 1,否则CY = 0 MOV P0.0,C2、P1.0+P1.6=P0.1. MOV A,P1 MOV C,ACC.0 ORL C,ACC.6 MOV P0.1,C3、P1.0+P1.7=P0.2. MOV A,P1 MOV C,ACC.0 ORL C,ACC.7 MOV P0.2,C

梨树县13976145360: MSC - 51单片机一共有几个P口,其各P口的作用 -
衅威润津: MSC-51单片机一共有4个并行口,分别为P0,P1,P2,P3.每个并口有8个IO脚,各并行口可以8个引脚同时使用,输入/输出8位数据.也可以每个IO脚单独使用,做外部检测输入或位控输出.

梨树县13976145360: 典型51单片机的P0,P1,P2,P3口都有哪些功能? -
衅威润津: P0口第一个功能是数据接口,第二个功能是地址低八位,P2口第二个功能是地址高八位.另外除了P0口没有内部上拉电阻外,其他三个都有内部上拉电阻.P1 就没多少功能,就是个准双向I/O口.最重要的就是P3口了,他除了是个准双向I/O口外,第二功能很重要:P3.0 (RXD)串行数据接收端;P3.1 (TXD)串行数据发送端;P3.2 (INT0)外部中断0输入;P3.3 (INT1)外部中断1输入;P3.4(T0)Timer0计数器输入;P3.5(T1)Timer1计数器输入;P3.6(WR)写外部存储器的脉冲输出;P3.7(RD)读外部存储器的脉冲输出;

梨树县13976145360: 怎么用KEIL写一段汇编程序.去控制单片机的P0口输出FF. -
衅威润津: 嘿嘿 俺来帮你 你的要求太简单了 很好实现ORG 0000HLJMP MAINORG 0100H MAIN: MOV P0,#0FFHSJMP $END 解释: ORG 0000H 表示在单片机启动地址的0000H单元 放一条转移指令 LJMP MAIN 转到你的主程序上 你的程序从MAIN: 开始 用传送指令MOV P0,#0FFH 使P0口输出FF(即高电平) SJMP $ 相当于暂停指令 END 为结束汇编呵呵 满意就选满意回答啊

梨树县13976145360: . 单片机编程题,用汇编语言 如果(A)=0,则将P1.0清零,否则P1.0置1 -
衅威润津: (MOV A, 数字. ;A中有了数字) JNZ ASDF ;非零转移. CLR P1.0 ;零,则将P1.0清零. SJMP QWER ;转到结束.ASDF: SETB P1.0 ;否则P1.0置1 QWER: RET ;结束本程序.END

梨树县13976145360: 单片机C语言程序里P0M0,P0M1等等的是什么意思呢? -
衅威润津: 你看到的程序应该是用在STC单片机上的,因为STC单片机的P0,P1,P2,P3口可以设置成四种工作模式,即开机处于的准双向口,推挽输出,高阻输入,开漏输出这四种.如果需要设置成其余的3种,就要通过对各自配置寄存器来设置的,你的P0M0,P0M1就对P0进行设置的,同样有P1M0,P1M1是对P1口进行设置的,以此类推.

梨树县13976145360: 单片机对P0 P1 P2操作时寻址的方式是 -
衅威润津: 它们,都是特殊功能寄存器. 对它们操作,必须使用直接寻址方式.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网