




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1冒泡排序的ARM汇编程序ORG 09B0HQUE: MOV R3,#50HQUE1: MOV A,R3 MOV R0,A MOV R7,#0AH CLR 00H MOV A,R0Q12: INC R0 MOV R2,A CLR C MOV 22H,R0 CJNE A,22H,Q13 SETB C Q13: MOV A,R2 JC Q11 SETB 00H XCH A,R0 DEC R0 XCH A,R0 INC R0 Q11: MOV A,R0 DJNZ R7,Q12 JB 00H,QUE1 SJMP $ END2 ARM汇编 希尔排序法对10个带符号数进行排序 Code:void shell(int src,int l,int r) int ih; r+; for(ih=1;ih(r-l)/9;ih=ih*3+1); /eax,ih /ebx,il /ecx,ir /edx,cmps _asm push eax push ebx push ecx push edx push esi push edi;貌似这堆进栈用处不大哎 mov edi,src mov eax,dword ptr ih LIH: cmp eax,0 jna EXIH mov ebx,eax dec ebx LLH: cmp ebx,dword ptr r jnb EXLLH mov ecx,ebx mov edx,dword ptr edi+ecx*4 LCMP: mov esi,eax dec esi cmp ecx,esi jna EXCMP push ecx sub ecx,eax cmp edx,dword ptr edi+ecx*4 pop ecx jnb EXCMP push ebx push ecx sub ecx,eax mov ebx,dword ptr edi+ecx*4 pop ecx mov dword ptr edi+ecx*4,ebx pop ebx sub ecx,eax jmp LCMP EXCMP: mov dword ptr edi+ecx*4,edx inc ebx jmp LLH EXLLH: push ecx mov ecx,3 push edx cdq idiv ecx pop edx pop ecx jmp LIH EXIH: pop edi pop esi pop edx pop ecx pop ebx pop eax 351单片机C语言对流水灯编程,用定时中断做#includedefine uchar unsigned char uchar m=0,i=0; void main() TMOD|=0x01; /定时器0工作方式为1 TH0=(65536-50000)/256; /装初值 TL0=(65536-50000)%256; EA=1; /开总中断 ET0=1; /开定时器中断 TR0=1; /开启定时器 while(1); /等待中断void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; m+ ;if(m=5) /12M晶振 定时5*50MS=250MS m=0; P1=(0X01i); /P1接8个LED if(+i=8) i=0; 4单片机编程C语言和汇编都可以。外部中断int0口控制p2.3口得报警器。中断信号是开关量,就是行程开关。本程序晶振为:12MHZ,报警输出频率为:100HZ ORG 0000H LJMP MAIN ORG 0003H ;INT0中断入口 LJMP XC_INT0ORG 000BH ;T0中断入口 LJMP BJ_T0 ORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#0ECH ;定时初值,定时值为5ms MOV TL0,#78H SETB EA SETB EX0 SETB ET0 CLR IT0 SJMP $;=int0外部中断子程序=XC_INT0:PUSH ACC PUSH PSW SETB TR0 POP PSW POP ACC RETI;=报警频率产生T0中断=BJ_T0: CPL p2.3 MOV TH0,#0ECH MOV TL0,#78H RETI5单片机外部中断的编程设计单片机程序,基于T0用定时中断设计秒表,秒计数结果在数码管显示,用外部中断INT0(边沿触发方式)对秒计数结果进行清零,用P3.0对秒计数进行启动和停止控制。T0定时中断50毫秒,进行20次中断得到1秒的定时,秒计数结果送P1口进行LED显示,将外部中断设置成边沿触发方式。/*/#include sbit shiwei=P20;/定义接口 sbit gewei=P21; /*/ unsigned char code table=/数码显示表 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f; /*/ void msdelay()/5 ms 延时 int x,y; for(x=(65536-15)%256;x;x-) for(y=(65536-15)/256;y;y-); /*/ /*/ void init()/初始化 TMOD=0x11; PX0=1; TH0=(65535-50)/256; TL0=(65535-50)%256; TH1=(65535-100)/256; TL1=(65535-100)%256; EX0=1; ET0=1; ET1=1; EA=1; TR1=1; /*/ unsigned char passtime=0;/全局变量 unsigned char timecount=0; /*/ main() unsigned char count; count=0; init(); while(P30!=1); msdelay(); if(P30=1)/确定开始或者结束 count+; if(count%2) TR0=1; else TR0=0; void clear() interrupt 0/清零 TR0=0; timecount=0; passtime=0; void timer() interrupt 2/50ms 定时 timecount+; if(timecount=20) timecount=0; passtime+;/50*20=1s TH0=(65535-50)/256; TL0=(65535-50)%256; TR0=1; void displaytimer() interrupt 2/用于数码管的两位显示,十位和各位 TH1=(65535-100)/256; TL1=(65535-100)%256; shiwei=0;/动态显示,其中P2.0=0十位选通 P2.1=各位选通 gewei=1; P0=tablepasstime/10;/十位 msdelay(); msdelay(); msdelay(); shiwei=1; gewei=0; P0=tablepasstime%10;/各位 msdelay(); msdelay(); msdelay(); TR1=1; 6. 80c51单片机很简单的中断编程试编写一段对中断系统初始化的程序,使之允许INRO(上面有一横),INT1(上面有一横),T0,串行口中断,且使T0中断为高优先级。ORG 0000H LJMP START ORG 0003H LJMP _X0_INT ORG 000BH LJMP _T0_INT ORG 0013H LJMP _X1_INT ORG 001BH LJMP _T1_INT ORG 0023H LJMP _S_INTSTART: MOV IE, #10010111B MOV IP, #00000010B ._X0_INT: . RETI . .END7. 利用外部输入中断设计一个应用系统,实时显示P3.3引脚上出现的负跳变脉冲的个数。用51单片机ORG 0000HAJMP STARTORG 0013H AJMP INT1ORG 0100HSTART:SETB EA ;总中断允许SETB IT1 ;外部中断1允许MOV R0,#00HHERE:SJMP HEREINT1:INC R0RETIEND8. 基于单片机的交通信号灯模拟控制系统设计 设计内容及要求: 1、硬件设计 单片机主电路、交通灯接口电路、LED数码管显示电路,键盘控制电路。 2、软件设计 系统流程图、各功能程序 设计环境: Protel99SE 、WAVE仿真环境、H51/L仿真器、单片机多功能实验箱 实现目标: (1)正常情况下交叉路口的轮流通行(主道3个LED红、黄、绿控制直行,支道3个LED红、黄、绿,切换时间自行设定); (2)特殊情况控制通行方式控制,用按键开关K1控制主道通行,支道禁行,K2控制支道通行,主道禁行,特殊情况控制通行放行。 (3)有紧急情况时用按键开关K0控制两道均为红灯; (4)4位LED数码管能够显示双直行方向绿灯和红灯的等待时间。2位LED数码管显示程序:P0口接数码管段,P2口接数码管位。 P3口接键盘,P1口接发光二极管 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0P ORG 000BH LJMP T0INT ORG 0013H LJMP INT1P ORG 001BH LJMP CTC1 ORG 0100HMAIN: LCALL CSHIH ;初始化LOOP: LCALL TONGX ;通行路口 LCALL H_BCD2 ;计算(1位HEX转换为2位BCD码) LCALL YIMA ;译码 LCALL LED4W ;显示 CLR 00H JNB 00H,$ DJNZ R6,LOOP MOV R6,#100 JNB 10H,LOOP1 ;启动特殊功能K0 JB 10H,$LOOP1: JNB 11H,LOOP2 ;启动特殊功能K1 JB 11H,$ NOPLOOP2: JNB 12H,LOOP3 ;启动特殊功能K2 JB 12H,$ NOPLOOP3: DJNZ TIME,LOOP SETB 02H SJMP LOOPTONGX: JB 01H,DONGX JB 02H,HUANG1 MOV P1,#21H SJMP TX_OUTHUANG1: MOV P1,#22H MOV TIME,#1 DJNZ R5,TX_OUT MOV R5,200 CLR 02H CPL 01H MOV TIME,#15 SJMP TX_OUTDONGX: JB 02H,HUANG2 MOV P1,#0CH SJMP TX_OUTHUANG2: MOV P1,#14H MOV TIME,#1 DJNZ R5,TX_OUT MOV R5,200 CLR 02H CPL 01H MOV TIME,#15TX_OUT: RETLED4W: MOV A,XWEI MOV B,#3 MUL AB MOV DPTR,#LED4T JMP A+DPTRLED4T: LJMP LD4W1 LJMP LD4W2 LJMP LD4W3 LJMP LD4W4LD4W1: MOV LEDD,MLED1 MOV LEDW,#1 INC XWEI SJMP LED4WELD4W2: MOV LEDD,MLED2 MOV LEDW,#2 INC XWEI SJMP LED4WELD4W3: MOV LEDD,MLED3 MOV LEDW,#4 INC XWEI SJMP LED4WELD4W4: MOV LEDD,MLED4 MOV LEDW,#8 MOV XWEI,#0LED4WE: RETYIMA: MOV R0,#BLED1 ;四位LED MOV R1,#MLED1 MOV R7,#2 MOV DPTR,#YIMTABYIMA1: MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,YIMA1 RETYIMTAB: DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4 DB 6DH,7DH,07H,7FH,6FH ;5,6,7,8,9CSHIH: MOV TIME,#15 MOV XWEI,#0 MOV LEDD,#0 MOV LEDW,#0 MOV R6,#100 ;1秒延时 MOV R5,#200 ;2秒延时 MOV P1,#21H MOV 20H,#0 MOV 22H,#0 MOV TMOD,#61H ;T0方式1 MOV TTH0,#0D8H ;10ms MOV TTL0,#0F0H MOV TL0,TTL0 MOV TH0,TTH0 MOV TL1,#0FFH MOV TH1,#0FFH MOV IE,#8FH SETB TR0 SETB TR1 MOV BLED1,#0 MOV BLED2,#0 MOV MLED3,#0 MOV MLED4,#0 RETH_BCD2: MOV A,TIME MOV B,#10 DIV AB MOV BLED2,A MOV BLED1,B MOV MLED3,#0 MOV MLED4,#0 RETT0INT: MOV TL0,TTL0 MOV TH0,TTH0 SETB 00H RETIINT0P: CPL 10H SETB P1.2 CLR P1.1 CLR P1.0 SETB P1.5 CLR P1.4 CLR P1.3 RETIINT1P: CPL 11H CLR P1.2 CLR P1.1 SETB P1.0 SETB P1.5 CLR P1.4 CLR P1.3 RETICTC1: CPL 12H MOV P1,#0CH RETIBIAOZ DATA 20H ;标志:.0定时到。XWEI DATA 60H ;显示位,4位:03TTL0 DATA 61HTTH0 DATA 62HTIME DATA 66H ;倒计时时间BLED1 DATA 74H ;显示数据BCDBLED2 DATA 75HBLED3 DATA 76HBLED4 DATA 77HMLED1 DATA 78H ;显示数据译码MLED2 DATA 79HMLED3 DATA 7AHMLED4 DATA 7BHLEDD EQU P0 ;数码管段LEDW EQU P2 ;数码管位 END1. 用汇编语言调用C语言实现n个数相加,n为C函数的参数,由汇编语言传递,结果存放在R5寄存器中。答:C程序:intallsum(int n)int i;intnsum = 0;for(i=1;i=n;i+)nsum += i;returnnsum; 汇编程序:AREA scaller, CODE,READONLYIMPORT allsum/导入allsum ENTRY/入口点 MOVR0,#20BLallsum/“B”子函数调用命令“L”返回主函数MOVR5,R0HALT B HALT/死循环当这几个引脚输出高电平的时候发光二极管熄灭;当这几个引脚输出低电平的时候发光二极管点亮。END2.利用S3C2410X的GPF4、GPF5、GPF6、GPF7四个I/O管脚控制4个LED发光二极管,编程使其实现所有LED全亮,间隔一段时间,所有LED全灭。电路原理图如下:附F组端口寄存器定义:GPFCON寄存器(端口F配置寄存器)GPFCON位描述GPF715:1400=Input 01=Output 10=EINT7 11=ReservedGPF613:1200=Input 01=Output 10=EINT6 11=ReservedGPF511:1000=Input 01=Output 10=EINT5 11=ReservedGPF49:800=Input 01=Output 10=EINT4 11=ReservedGPF37:600=Input 01=Output 10=EINT3 11=ReservedGPF25:400=Input 01=Output 10=EINT2 11=ReservedGPF13:200=Input 01=Output 10=EINT1 11=R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧道防水堵漏合同范本
- 违约合同退租协议模板
- 途虎养车加盟协议合同
- 纺织采购保险合同范本
- 测量设备租赁合同范本
- 水产专业考试题及答案
- 证券资格从业考试一年及答案解析
- 四川省安全培训题库及答案解析
- 外交从业资格考试及答案解析
- 2025年市政施工员考试试题及答案
- 2025年北京市高考英语试卷真题(含答案解析)
- 医务科依法执业自查表
- 拍卖行业发展趋势PPT
- 《人力资源管理全套课件》
- 眼科常见疾病诊疗指南
- 厂级岗前安全培训教材
- 征兵宣传主题PPT
- 全桥LLC自动计算表格
- 高中数学竞赛讲义-高中数学竞赛
- YB/T 100-1997集成电路引线框架用4J42K合金冷轧带材
- GB/T 19816.3-2005涂覆涂料前钢材表面处理喷射清理用金属磨料的试验方法第3部分:硬度的测定
评论
0/150
提交评论