-
-
2
-
5# include <reg51.h> # include <intrins.h> # define uchar unsigned char # define uint unsigned int sbit enled =P2^0; uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void delay(uchar); void main() { enled=1; while(1) { uchar i; uchar*p; p=dis; for (i=0;i<10;i++) { P0=*(p+i); delay(200); } } } void delay(uchar x) { uint i; while(x--) for(i=500;i==0;i--) { _nop_(); _nop_(); _nop_(); } } 汇编 enled bit p2.0 org 0000h sjmp main org 0030h tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh main: setb enled mov sp,#60 while: mov dptr,#tab mov r6,#10 mo
-
0经核实吧主有娘便是娘Sr 未通过普通吧主考核。违反《百度贴吧吧主制度》第八章规定http://tieba.baidu.com/tb/system.html#cnt08 ,无法在建设 51汇编吧 内容上、言论导向上发挥应有的模范带头作用。故撤销其吧主管理权限。百度贴吧管理组
-
2ENDN1 BIT P2.0 ENDN2 BIT P2.1 LED_NR BIT P2.2 LED_NY BIT P2.3 LED_NG BIT P2.4 ENDE1 BIT P3.0 ENDE2 BIT P3.1 LED_ER BIT P3.2 LED_EY BIT P3.3 LED_EG BIT P3.4 NSNAME BIT 00H TIMES EQU 30H TIME50MS EQU 31H LED1 EQU 32H LED2 EQU 33H ORG 0000H SJMP START ORG 000BH AJMP INT_LED ORG 0030H START: CLR ENDN1 CLR ENDN2 CLR ENDE1 CLR ENDE2 MOV SP,#60H MOV DPTR,#TAB MOV TH0,#3CH MOV TL0,#0BH SETB EA SETB ET0 CLR NSNAME ;0表示北,1表示东 MOV TIMES,#60 MOV TIME50MS,#0 MOV TMOD,#00000001B MOV TCON,#00010000B MAIN: JB NSNAME,DX CLR LED_NG SETB LED_NY SETB LED_NR CLR LED_ER SETB LED_EG SETB LED_EY DIS_NB
-
1org 0000h LJMP MAIN ORG 000BH LJMP INTO MAIN: MOV TMOD,001H MOV TL0,#0B0H MOV TH0,#3CH MOV R1,#20 SETB TR0 SETB ET0 SETB EA SJMP $ INTO: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R1,EXIT MOV R1,#20 CPL P2.0 EXIT: RETI 我把 MOV TMOD,001H中的001h变成#001h P2.0闪烁就慢很多,#不加就快很多,有人知道是为什么么,用的t0中断
-
1本人是学生,因为老师的要求,需要做一个单片机小产品作为期末考察,程序用的是51汇编语言。。。所以呢,求各路大神来支支招指点指点,万分感谢!!!
-
1最近在研究时间片程序,买了一本书看了一下,里面使用c写的,很多看不懂,自己摸索用汇编 写了一个,终于成功了,当然有点简单,就是用51点亮3路流水灯,但是大体的框架已经有眉目了 TSP2a equ 6ch;任务2堆栈区 TSP1a equ 5ah;任务1堆栈区 TSP0a equ 48h ;任务0堆栈区 SPa equ 36h;存储任务的栈顶数组 task_name equ 24h;当前运行的任务的编号 org 0000h ljmp clear;清理内存 org 000bh ljmp IntTime0;时间片中断 org 0030h ;********************* main: mov dptr,#task0;取得任务0的入口地址,存
-
0ORG 0000H LJMP START ORG 000BH LJMP 中断入口 ORG 0030H START:............ 为什么要弄那么多域名 第1个和第3个 不是一样吗 有什么作用
-
1设计要求 能记一个队的就好
-
0
-
8高手指点一二!谢谢了
-
1用了DJNZ命令,中间的程序大概超过一百条吧,用ASM51汇编的时候,提示ADDRESS OUT OF RANGE,应该怎么办呢?
-
3我正在做单片机的课程设计,各位大神有没有以前做过的给发一个,越简单越好,940083144@qq.com.先在此谢过了。
-
5ORG 0000H LJMP START START: MOV A,#0FEH MOV R2,#7 MOV R3,#7 OUTPUT:MOV P0,A RL A ACALL DELAY ;绝对调用子程序 DJNZ R2,OUTPUT MOV R2,#0 OUTPU: MOV P0,A MOV A,R4 RR A ACALL DELAY INC R2 MOV R4,A MOV A,R2 SUBB A,R3 JNC OUTPU LJMP START DELAY: MOV R6,#0 MOV R7,#0 DELAYLOOP: DJNZ R6, DELAYLOOP DJNZ R7,DELAYLOOP RET ;子程序返回 END 这是小弟写的流水灯程序,来回流的。编译没错,就是下到单片机里它只往一个方向流,不流回来。
-
3看看吧 http://tieba.baidu.com/p/50399062 当然,这个讨论的是基于8086cpu的软件编写,哪个是16位的,51是他的小弟弟,8位,但是基本原理是一样的
-
3欢迎来到51单片机汇编吧,希望在这里结交一些单片机汇编的爱好者,与大家共同进步
-
3org 0000h sjmp start org 0030h start: mov sp,#60h main: mov a,#11111111b clr c;c清零 mov r5,#8;记数 main_rlc: rlc a ;左移 mov p0,a call delay djnz r5,main_rlc sjmp main ;到了8次就从新开始 ;*********************延时子程序 delay: mov r6,#200 delay_r6:mov r7,#200 delay_r7:djnz r7,delay_r7 djnz r6,delay_r6 ret ;********************* end c程序 #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int void delay(uint); void main() { while(1) { uchar j; uchar temp; // 以下这个程序也可以 temp=0x01; // P0=0xfe; for(j=0;j<8
-
5交通灯的要求: Main Road Side Street Seconds duration Green Red 30 Yellow Red 5 Red Green 15 Red Yellow 5
-
1led bit p1.0 ;****************************主程序 org 0000h sjmp start org 0030h start: mov sp,#60h clr led main: cpl led;取反led call delay sjmp main ;*******************延时程序 delay: mov r6,#200 delay_r6:mov r7,#100 delay_r7:djnz r7,delay_r7 djnz r6,delay_r6 ret ;***************************** end c程序 #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit led=P1^0; void delay(uint);//延时函数申明 //主函数 void main() { while(1) { led=~led; delay(500); } } //延时函数 void delay(uint x) { while(x--) { uint i; for(i=0;i<100;i++); } }
-
3学了一学期单片机张迎新的汇编
-
2http://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.11.ju
-
2# include <reg51.h> # define uchar unsigned char # define uint unsigned int sbit green_dx=P3^4; sbit red_dx=P3^2; sbit yellow_dx=P3^3; sbit green_nb=P2^4; sbit red_nb=P2^2; sbit yellow_nb=P2^3; sbit enled1=P2^0; sbit enled2=P2^1; uchar led1; uchar led2; uchar times; uchar time50ms; uchar dxnb; void huang_deng(); void display(); void delay(uint); uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void timer0(void) interrupt 1 { time50ms++; if (time50ms==20) { time50ms=0; times--; if(times==0) { times=60; dxnb++; if (dxnb==2) dxnb=0; } } TH0=0X3C; TL0=0X0b; } void main() {
-
0感觉c编起来比汇编方便,但是以前如果没有学汇编,写c程序真的不好理解 /* 名称:K1-K4 按键状态显示 说明:K1、 按下时 LED点亮,松开时熄灭,k2按下时交替变换 K3、K4 按下并释放时 LED点亮,再次按下并释放时熄灭; 主要思想是定义n个位变量,记录按键的以前和当前的状态,根据状态控制led小灯,0表示释放,1表示按下 这种处理方法的好处是假如按键按住不放,单片机不必停留在原地处理当前的按键,我没有看别人怎样写的代码, 自己想出来的,
-
1
-
1http://115.com/file/ckbn3wkg#[新编MCS-51单片机应用设计].张毅刚.彭喜元.姜守达.乔立岩.扫描版.pdf
-
0亲爱的各位吧友:欢迎来到西北小三荼吧! 您可以在本吧内发表留言,并与其它来到这里的朋友分享交流。祝您在贴吧玩得愉快~ 贴吧楼委会
-
0马甲换了valtti换成又(要换哪)