当前位置:首页 » 课程大全 » 接口技术课程设计

接口技术课程设计

发布时间: 2020-11-28 13:57:58

⑴ 求《微机原理与接口技术》课程设计报告

微机接口课程设计实验报告
一、实验目的:
1. 掌握综合使用基本输入设备,通用接口芯片,专用接口芯片的方法;
2. 熟悉并行接口芯片8255的使用与硬件接口方法, 熟悉8255的各种工作方式,掌握8255的编程方法;
3. 掌握实时处理程序的编制和调试方法;
二、设计要求:
用实验仪器上的并行接口控制键盘和LED显示,设计一个定时显示装置,用四个数码管显示时间(左边两位显示分值,右边两位秒值).
用小键盘控制计时和显示:
C键(清除) 显示00-00
G键(启动) 显示XX-XX变化的分、秒。
S键(停止) 显示XX-XX不变
P键(设置初始值)设置分、秒的初值
E键(终止程序) 熄灭数码管,程序退出

⑵ 微机原理与接口技术课程设计之数字显示倒计时器

DATAS SEGMENT
sec db 24 ;倒数的秒数,可以随意更改
osec db 0
startmsg db "Counting down .... press [p] to puase, [c] to continue, [s] to stop",13,10,"$"
timesup db 13,10,"Times up!"
endmsg db 13,10,"Thanks for using, bye~$"
secStr db 6 p ("$")
curpg db 0
ispause db 0
x db 0
y db 0
DATAS ENDS

STACKS SEGMENT
db 64 p(?)
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
push ax
push bx
push cx
push dx

MOV AX,DATAS
MOV DS,AX

lea dx,startmsg
call puts

;读取时间
mov ah,2ch
int 21h
mov osec,dh ;记下秒数
call getxy ;取得游标的位置

;倒数,显示倒数,查键盘。
;倒数的原理就是 osec 和现在秒数的对比得出
timer:
mov ah,2ch
int 21h
mov ah,6 ;检查键盘
mov dl,0ffh
int 21h
cmp al,"s" ;终止程式
jz done
cmp al,"p" ;暂停程式
jz pause
cmp al,"c" ;继续程式
jz continue
cmp ispause,0
jg timer
cmp osec,dh ;检查秒数的变化
jnz interval
jmp timer
interval:
mov osec,dh ;更新秒数
dec sec
call showcountdown ;显示倒数秒数(sec)
cmp sec,0
jg timer
lea dx,timesup
call puts
jmp done

pause:
mov ispause,1
jmp timer

continue:
mov ispause,0
jmp timer

puts:
mov ah,9
int 21h
ret

showcountdown:
call setxy ;保持显示倒数的位置
xor ax,ax
xor dx,dx
mov al,sec
cbw
mov bl,10
div bl
add al,"0"
add ah,"0"
lea bx,secStr
mov byte ptr[bx],al
mov byte ptr [bx+1],ah
mov dx,bx
call puts
ret

;读取游标的位置
getxy:
mov ah,3
int 10h
mov x,dl
mov y,dh
mov curpg,bh
ret

;设置游标的位置
setxy:
mov ah,2
mov bh,curpg
mov dl,x
mov dh,y
int 10h
ret

done:
pop dx
pop cx
pop bx
pop ax
MOV AH,4CH
INT 21H
CODES ENDS
END START

⑶ 微机原理与接口技术课程设计:交通灯控制系统

您好,我看到您的问题很久没有人来回答,但是问题过期无人回答会被扣分的并且你的悬赏分也会被没收!所以我给你提几条建议:一,你可以选择在正确的分类下去提问,这样知道你问题答案的人才会多一些,回答的人也会多些。二,您可以到与您问题相关专业网站论坛里去看看,那里聚集了许多专业人才,一定可以为你解决问题的。三,你可以向你的网上好友问友打听,他们会更加真诚热心为你寻找答案的,甚至可以到相关网站直接搜索.四,网上很多专业论坛以及知识平台,上面也有很多资料,我遇到专业性的问题总是上论坛求解决办法的。五,将你的问题问的细一些,清楚一些!让人更加容易看懂明白是什么意思!谢谢采纳我的建议

⑷ 微机原理与接口技术课程设计

直流电机速度一般就是控制它的工作电压调速了,输出不同的工作电压,就能改变它的速度,输出能改变的电压的方法基本上有两种:D/A
或PWM,有反馈的电机可以通过检测反馈精确控制.写程序就是跟据上述原理写的....

⑸ 微机原理接口技术的课程设计,霓虹灯的模拟实现

#include<stdio.h>

#include<stdlib.h>//此库主要是下面的清屏函数,如果不用清屏函数,此库可不需要

#defineM8

chartable[M][M];

voidInitTable()

{

inti,j;

for(i=0;i<M;i++)//先将整张表置空

for(j=0;j<M;j++)

table[i][j]='';

for(i=0;i<M;i++)//画边框

{

table[0][i]='@';

table[i][M-1]='@';

table[M-1][M-i-1]='@';

table[M-1-i][0]='@';

}

}

voidDisplayTable()

{

inti,j;

//clrscr();//TC下可用此方法

//system("cls");//VC6.0下用此方法

for(i=0;i<M;i++)

{

for(j=0;j<M;j++)

printf("%c",table[i][j]);

printf(" ");

}

}

voidDelay()

{

inti,j;

for(i=0;i<10000;i++)

for(j=0;j<10000;j++);

}

voidFillTable()//将对应位置置*

{

inti;

for(i=1;i<M-1;i++)

{

table[i][i]='*';

Delay();//起一定延时,看起来效果好点

DisplayTable();//重新显示那张表格

}

for(i=1;i<M-1;i++)

{

table[M-i-1][i]='*';

Delay();

DisplayTable();

}

}

voidEmptyTable()//将对应位置置空

{

inti;

for(i=1;i<M-1;i++)

{

table[i][M-1-i]='';

Delay();

DisplayTable();

}

for(i=1;i<M-1;i++)

{

table[M-i-1][M-i-1]='';

Delay();

DisplayTable();

}

}

voidmain(void)

{

charcmd;

InitTable();//初始化表格,边框和置空部分

DisplayTable();

scanf("%c",&cmd);

while(!(cmd=='Q'||cmd=='q'))

{

switch(cmd)

{

case'I':

case'i':

FillTable();//填充表格行动

break;

case'O':

case'o':

EmptyTable();//将表格内清除注意程序中填充像写X一样,这边清除时时相反的动作,具体去运行程序观看效果

break;

//default:

//printf(" badcommand,tryitagain! ");

}

scanf("%c",&cmd);

}

}

以上在VC6.0测试通过

以下是在TC下测试通过

#include<stdio.h>

#defineM8

chartable[M][M];

voidInitTable()

{

inti,j;

for(i=0;i<M;i++)/*先将整张表置空*/

for(j=0;j<M;j++)

table[i][j]='';

for(i=0;i<M;i++)/*画边框*/

{

table[0][i]='@';

table[i][M-1]='@';

table[M-1][M-i-1]='@';

table[M-1-i][0]='@';

}

}

voidDisplayTable()

{

inti,j;

clrscr();

for(i=0;i<M;i++)

{

for(j=0;j<M;j++)

printf("%c",table[i][j]);

printf(" ");

}

}

voidDelay()

{

inti,j;

for(i=0;i<20000;i++)

for(j=0;j<30000;j++);

}

voidFillTable()/*将对应位置置**/

{

inti;

for(i=1;i<M-1;i++)

{

table[i][i]='*';

Delay();/*起一定延时,看起来效果好点*/

DisplayTable();/*重新显示那张表格*/

}

for(i=1;i<M-1;i++)

{

table[M-i-1][i]='*';

Delay();

DisplayTable();

}

}

voidEmptyTable()/*将对应位置置空*/

{

inti;

for(i=1;i<M-1;i++)

{

table[i][M-1-i]='';

Delay();

DisplayTable();

}

for(i=1;i<M-1;i++)

{

table[M-i-1][M-i-1]='';

Delay();

DisplayTable();

}

}

voidmain(void)

{

charcmd;

InitTable();/*初始化表格,边框和置空部分*/

DisplayTable();

scanf("%c",&cmd);

while(!(cmd=='Q'||cmd=='q'))

{

switch(cmd)

{

case'I':

case'i':

FillTable();/*填充表格行动*/

break;

case'O':

case'o':

EmptyTable();/*将表格内清除注意程序中填充像写X一样,这边清除时时相反的动作,具体去运行程序观看效果*/

break;

/*default:

//printf(" badcommand,tryitagain! ");*/

}

scanf("%c",&cmd);

}

}


⑹ 微机原理与接口技术 电子钟课程设计

哈哈,感觉你的这个课程好有意思啊,那是不是就可以自己在家制造钟鸟啊…

⑺ 谁来帮帮我啊....微型计算机接口技术课程设计

MINUTE EQU 41H ;存放分信息的单元
SECOND EQU 42H ;存放秒信息的单元
NUM EQU 43H ;存放T0溢出次数的单元
ORG 0000H ;程序入口
AJMP MAIN
ORG 0030H ;主程序入口
MAIN:MOV SP,#60H ;指定堆栈栈底
MOV HOUR,#00H
MOV MINUTE,#00H
MOV SECOND,#00H ;将时、分、秒分别清零
MOV NUM,#0
MOV TMOD,#01H ;设T0工作于方式1,用于定时
MOV TH0,#4CH ;设置T0的初始值
MOV TL0,#00H
MOV IE,#00H ;关中断
SETB TR0 ;开启定时器T0
LOOP:NOP
NOP
ACALL DISPLAY ;调用显示子程序
NOP
NOP
LOOP1:JB TF0,TIME ;等待定时溢出
LJMP LOOP1
TIME:CLR TR0 ;关闭定逼?
PUSH DPL ;保护现场
PUSH DPH
PUSH ACC
MOV TH0,#4CH ;重新设置T0的值
MOV TL0,#00H
SETB TR0 ;开启T0
MOV A,NUM
INC A ;溢出次数+1
MOV NUM,A
CJNE A,#0AH,TT1 ;检测键盘
MOV P1,#0FH ;设键盘初值
MOV R0,#04H ;延时消抖
LCALL DELAY
JNB P1.0,T0C1 ;为0表示P1.0按下,转T0C1调整秒
JNB P1.1,T0C2 ;为0表示P1.1按下,转T0C2调整分
JNB P1.2,T0C3 ;为0表示P1.2按下,转T0C3调整时
TT1: CJNE A,#140,RR4
MOV NUM,#00H
T0C1:MOV A,SECOND
INC A ;秒单元内容加1
DA A ;调整为BCD码
MOV SECOND,A
CJNE A,#60H,RR4 ;不为60秒继续等待
setb flag:
clr flag
RR1: MOV SECOND,#00H ;为60秒将秒单元清零
T0C2:MOV A,MINUTE
INC A ;分单元内容加1
DA A ;调整为BCD码
MOV MINUTE,A
CJNE A,#60H,RR4 ;不为60分继续等待
RR2: MOV MINUTE,#00H ;为60分,分单元清零
T0C3:MOV P1,#0F0H ; 1小时闪一次
LCALL DELAY ;延时
MOV P1,#0FH
MOV A,HOUR
INC A ;时单元内容加1
DA A ;调整为BCD码
MOV HOUR,A
CJNE A,#24H,RR4 ;不为24小时继续等待
RR3: MOV HOUR,#00H ;为24小时,时单元清零
RR4: POP ACC ;恢复现场
POP DPH
POP DPL
LJMP LOOP
DELAY:MOV R1,#10H ;延时子程序
DELAY1:MOV R2,#20H
DJNZ R2,$
DJNZ R1,DELAY1
DJNZ R0,DELAY
RET
DISPLAY:MOV DPTR,#TAB ;送表头基地址
MOV A,HOUR
ANL A,#0FH ;屏蔽时高位
MOVC A,@A+DPTR ;查时高位
MOV P0,A
CLR P2.6 ;开显示
MOV R0,#1 ;延时消除鬼影
LCALL DELAY
SETB P2.6 ;关显示
MOV A,HOUR
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.7
MOV R0,#1
LCALL DELAY
SETB P2.7
MOV A,MINUTE
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
MOV R0,#1
LCALL DELAY
SETB P2.4
MOV A,MINUTE
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.5
MOV R0,#1
LCALL DELAY
SETB P2.5
MOV A,SECOND
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
CLR P2.2
MOV R0,#1
LCALL DELAY
SETB P2.2
MOV A,SECOND
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV P0,A
CLR P2.3
MOV R0,#1
LCALL DELAY
SETB P2.3
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
setb flag: clr flag

啊啦啊啦.老大.继续时钟.

⑻ 急需一份微机原理与接口技术课程设计

课题名称:闰年计算
1.实验目的:
(1) 学习分支、中断、和逻辑表达。
(2) 熟悉汇编语言程序的编译、链接过程。
2.实验内容:
利用DOS 21H中断类型的10号键盘功能调用,将键盘接受到的年份数值的字符串按字节存入缓冲区。将字符串中的每个字符转换为对应的十进制数值(利用0-9这10个数的ASCⅡ码值比其本身大30H的关系),利用判断某年是否为闰年的表达式,输入该年是否为闰年的信息。
3.编程提示:
(1)找到判断是否为闰年的方法。判断闰年规则:如果某年能被4整除但不能被100整除或者该年能被400整除,则该年为闰年。
(2)判断某年为闰年的汇编语言表达式为:
(((AX) MOD 4 EQ 0) AND ((AX) MOD 100 EQ 0)) OR ((AX) MOD 400 EQ 0)
其中,(AX)中存放的是从键盘输入的年份值。
(3)参考流程见图:

4.汇编程序:
data segment ;定义数据段
infon db 0dh,0ah,'Please input a year: $'
Y db 0dh,0ah,'This is a leap year! $'
N db 0dh,0ah,'This is not a leap year! $'
w dw 0
buf db 8
db ?
db 8 p(?)
data ends
stack segment stack
db 200 p(0)
stack ends
code segment
assume ds:data,ss:stack,cs:code
start:mov ax,data
mov ds,ax
lea dx,infon ;在屏幕上显示提示信息
mov ah,9
int 21h
lea dx,buf ;从键盘输入年份字符串
mov ah,10
int 21h
mov cl, [buf+1]
lea di,buf+2
call datacate
call ifyears
jc a1
lea dx,n
mov ah,9
int 21h
jmp exit
a1: lea dx,y
mov ah,9
int 21h
exit: mov ah,4ch
int 21h
datacate proc near;
push cx;
dec cx
lea si,buf+2
tt1: inc si
loop tt1
;lea si,cx[di]
pop cx
mov dh,30h
mov bl,10
mov ax,1
l1: push ax
sub byte ptr [si],dh
mul byte ptr [si]
add w,ax
pop ax
mul bl
dec si
loop l1
ret
datacate endp
ifyears proc near
push bx
push cx
push dx
mov ax,w
mov cx,ax
mov dx,0
mov bx,4
div bx
cmp dx,0
jnz lab1
mov ax,cx
mov bx,100
div bx
cmp dx,0
jnz lab2
mov ax,cx
mov bx,400
div bx
cmp dx,0
jz lab2
lab1: clc
jmp lab3
lab2: stc
lab3: pop dx
pop cx
pop bx
ret
ifyears endp
code ends
end start

⑼ 微机原理与接口技术课程设计之秒表/时钟计时器的设计

你也说了 是24小时计时法
那12点肯定是12点啦
楼主是想问24点时候是24点还是0点吧,
很负责的告诉版你,是0点

因为权24进制中,满24该进到下一位了,剩下应该是0
就像10进制中的满10进1 10已经进到十位了,个位现在是0啦……

⑽ 求计算机接口技术课程设计:温度采集及显示控制

那要看你所要求的温度范围了,如果是-20-100度就没必要使用AD转换器了。直接使内用数字温度探头如:DS1621,DS1620,DS18B20等。如容果需要温度范围比较宽就要用到模拟探头如PT100。用数字温度探头简单思路:AT89C2051+MC14499+DS18B20即可构成温度采集及4位数码管显示。如果需要模拟探头比较麻烦,要做信号调理电路使PT100随温度的变化输出连续变化的限定电压。AT89C2051+TLC1549+MC14499+TLC5615+信号调理构成。带10位DA输出,但中间细节部分要你自己做了。

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919