求一用c语言编写 的利用INTO中断控制的数码管显示程序

求一用c语言编写 的利用INTO中断控制的数码管显示程序,第1张

#include <reg51h>

#define uchar unsigned char

#define uint unsigned int

uchar k = 1;

bit kkk = 0;

sbit k_1 = P3^4;

sbit k_2 = P3^5;

sbit k_3 = P3^6;

sbit k_4 = P3^7;

uchar code smg [10] = {

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x3c,0x07,0x7f,0x37};

void delay10ms ( uint n)

{

uchar i,j ;

while (n--)

for (i = 128;i>0;i--) for (j = 10;j>0;j--);

}

void int0_ser() interrupt 0

{

if (k_1 == 0) {

delay10ms(1);

if (k_1 == 0) {

if (kkk) {

k += 1;

if (k == 10) k = 1;

while(k_1 == 0);

}

}

if (k_2 == 0) {

delay10ms(1);

if (k_2 == 0) {

if (kkk) {

k -= 1;

if (k == 0) k = 9;

while(k_2 == 0);

}

}

if (k_3 == 0) {

delay10ms(1);

if (k_3 == 0) {

k = 1;

while(k_3 == 0);

}

}

if (k_4 == 0) {

delay10ms(1);

if (k_4 == 0) {

k = 0;

while(k_4 == 0);

}

}

}

void main(void)

{

EA = 1;

EX0 = 1;

IT0 = 1;

k = 0;

while (1) P0 = smg[k];

}

String ss="insert into productrate (rateID, productprace,rate,time) values(\'"

+s1+"\',\'"+s2+"\',\'"+s3+"\',\'"+s4+"\')";

中断指令的一般格式

INT n 其中,n称为中断类型码,n=0~255。

中断指令INT n调用n号中断处理程序,在中断处理程序中,用中断返回指令IRET指令使CPU返回主程序断点继续执行。 中断指令(INT n)和调用程序指令(CALL)很相似,它们均转入内存中其它程序段执行,执行完后再转回。

主程序用CALL 目标地址调用子程序,如图3-25所示。主程序用INT n调用中断处理程序,如图3-26所示。数值n是中断处理程序的编号,它代表了中断处理程序的地址。中断处理程序的地址称为中断矢量或中断向量,它是一个4字节值,2字节段地址,2字节偏移量。在8086处理器中,用中断矢量表或称中断向量表来管理256个中断处理程序的地址。

中断向量表存放在内存地址最低区域上(0段0000H~03FFH),共1024字节(256×4),其内存放256个中断处理程序的地址。

例如,设在中断向量表中,0000:0084H~0000:0087H四个单元存放的值依此为00H、20H、00H、30H,则21H号中断处理程序的地址为3000H:2000H。 中断指令INT和中断返回指令IRET的执行过程是:

INT n:

① SP减2,把标志寄存器的值(记为FLAGS)推入堆栈。

② 标志位TF和IF清0,以禁止跟踪方式(单步方式)和屏蔽INTR中断。

③ SP减2,把返回地址的段值(CS)推入堆栈。

④ SP减2,把返回地址的偏移量(IP)推入堆栈。

⑤ 根据中断类型码n,从中断矢量表中取得中断处理程序地址,取得的段地址送给CS,偏移量送给IP。从而使CPU转入中断处理程序运行。

IRET:

中断处理程序中最后被执行的指令是IRET。其 *** 作是:

① 从堆栈中取出一字(INT指令保存的返回地址偏移量),送给 IP,然后使SP加2。

② 从堆栈中取出一字(INT指令保存的返回地址段值),送给 CS,然后使SP加2。

③ 从堆栈中取出一字(INT指令保存的标志寄存器的值),送给 标志寄存器,然后使SP加2。 IRET执行后,CPU返回到INT指令后面的一条指令。

几个特殊的中断处理程序

(1) 0号中断处理程序

0号中断处理程序用于处理除法运算溢出,称为除数为0中断。当CPU检测到除法运算溢出,自动调用0号中断处理程序,无INT 0指令。

(2) 1号中断处理程序

当CPU的TF标志置1时,CPU每执行一条指令,就调用1号中断处理程序,因此,它称为单步中断。 当CPU检测到TF=1时,自动进入单步方式,无INT 1指令。 该中断处理程序用于调试程序。

(3) 2号中断处理程序

用于处理NMI非屏蔽硬件中断请求,无INT 2指令。

(4) 3号中断处理程序 用INT 3指令调用。称为断点中断。用于调试程序。

(5) 4号中断处理程序 用INTO指令调用。该中断处理程序用于处理有符号数运算溢出(OF=1)。称为溢出中断。

中断处理程序的应用:

(1) BIOS和 *** 作系统(如DOS、Windows)的常用功能程序,一般设计为中断处理程序的形式,用INT n指令调用。例如,DOS功能设计为21H号中断处理程序,用INT 21H指令调用。

(2) 硬件中断处理。当外部设备希望CPU处理某事件时,它向中断控制器8259发出一个INTR中断请求,8259再向CPU发出中断请求。

当CPU响应中断时(发出中断响应信号 ),8259向CPU提供中断类型码,CPU就转入对应的中断处理程序,处理该事件。

(3) 程序员编写程序时,也可以把常用的功能程序,设计为中断处理程序的形式,用INT n指令调用。

drop是丢掉,整个的都不要了,删除表的时候连表结构都没了,delete是删除表内的数据,但是表结构还在。

dbf是文件类型,可以用其他程序比如excel打开,into table 放入的是表 不同的数据库不一样

对sql学习的也不是很深入,这是大概的理解,希望能帮到你

微信小程序中scroll-into-view跳转到指定位置是这样使用的:

1、首先第一步,打开微信开发者工具。

2、其次第二步,打开wxml文件,然后在文件里先新建一个scroll-view的标签即可。

3、再次第三步,设置这个scroll-into-view滚动的方向设置为x轴,与此同时设置scroll-into-view的值,这个值就是子元素中的id,表示滚动到哪一个元素,如下图所示。

4、接下来就是设置子元素,先新建一个view的子元素,然后设置class和id,并且多设置几个view标签,以便观察效果。

5、最后一步,点击打开模拟器,在下面我们就可以看到滚动的元素,接着就按照我们之前设置的显示就行了。

以上就是关于求一用c语言编写 的利用INTO中断控制的数码管显示程序全部的内容,包括:求一用c语言编写 的利用INTO中断控制的数码管显示程序、java 中insert into 问题、中断的中断指令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9853882.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存