资源简介
设计一个声光报警器的硬件电路和控制程序。一旦按下SW3按钮开关,发光二级管按规律闪烁,同时扬声器发出声音;当按下SW2按钮开关,发光二级管停止闪烁,声音停止。
硬件设备包括一台微机、一个MIFID微机实验箱、插线若干。控制程序采用Intel8088宏汇编语言编写。
代码片段和文件信息
#include //kbhit();
#include //printf();
#include //delay();
#ifdef __cplusplus //if in C++ mode
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
int p = 0x303;
int pa = 0x300;
int pb = 0x301;
int pc = 0x302;
int pstate = 0xb8; //10111000b
int p2 = 0x05; //00000101b
int p1 = 0x03; //00000011b
int p0 = 0x01; //00000001b
int ou = 0x307;
int ou0 = 0x304;
int ou1 = 0x305;
int ou2 = 0x306;
int mus_freq[]={262294330262262294330262
330349392330349392
392440392349330262392440392349330262
294196262294196262-1};
int mus_time[]={88888888
88168816
444488444488
88168816};
void interrupt handler(__CPPARGS) //数据采集中断服务程序
{
int i = 0; //音符指针
int getout = 1;
int c = 0; //num5num6
int pp = 0;
double mf=0;
disable();
//printf(“hdslkjdf\n“);
//关中断
outportb(0xa1inportb(0xa1)&0xff);
outportb(0x21inportb(0x21)&0xff);
//设置计数器2,1,0
outportb(ou0xb6); //10110110b
outportb(ou0x70); //01110110b
outportb(ou0x36); //00110110b
while(getout)
{
if(kbhit())
{
if(getch()==0x1b)
{
getout = 0;//esc键按下返回
break;
}
}
if(mus_freq[i]== -1) i = 0;
//显示学号
if(c == 0)
{
outportb(pb0xfa); //00000101b
c = 1;
}
else
{
outportb(pb0xf9); //00000110b
c = 0;
}
//扬声器发声设置
//置8255的PC1、PC0为1,使扬声器发声
outportb(pp1);
outportb(pp0);
//设置8255工作状态A口1,B/C口0
//outportb(ppstate);
//计数器2计数初值
mf = 1193100.0/mus_freq[i];
//printf(“%d %d\n“int(mf)%256int(mf/256));
outportb(ou2int(mf)%256); //0x12348c
outportb(ou2int(mf/256));
//算延时的计数初值计数器0,1初值
mf = mus_time[i]*2;
//printf(“%d %d\n“int(mf)%256int(mf/256));
outportb(ou0int(mf)%256); //2*37287 74568/32768
outportb(ou0int(mf/256));
//outportb(ou00x80);
//outportb(ou00x80);
outportb(ou10);
outportb(ou10x80);
//pc7
do{
pp = inportb(pc); //10000000b;
//printf(“%x\n“pp);
pp = pp&0x80;
//printf(“%x\n“pp);
}while(pp == 0); //?????????????????
//getch();
outportb(p0x0e); //00001110b
pp = inportb(pc);
//printf(“%x\n“pp);
//置8255的PC1、PC0为0,使扬声器关闭
outportb(pc0x02); //00000010b
outportb(pc0); //00000000b
i++;
}
//end_mus
outportb(pc0x2); //00000010b
outportb(pc0); //00000000b
outportb(0xa00x62);//发中断结束命令(OCW2)向从片8259发EOI命令
//即指定从片8259的ISR2复位
outportb(0x200x20);//向主片8259发EOI命令,结束当前最高级中断服务
outportb(0xa1inportb(0xa1)&0xfb);
outportb(0x21inportb(0x21)&0xfb);
outportb(p0x4);
//enable();
}
int main()
{
int status;
//int getout=1;
int check = 0;
void interrupt (*oldhandler)(__CPPARGS);
oldhandler=getvect(0x72);//获取原中断向量
setvect(0x72handler);//设置新中断向量
//设状态字8255
outportb(p0xb8);
outportb(pb0xff);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1160672 2009-04-17 13:20 接口课设\2VB.rar
文件 3571200 2010-07-07 19:58 接口课设\MFID微机实验平台.doc
文件 5048 2010-07-07 21:03 接口课设\xiaolanz.asm
..A..H. 162 2010-07-07 20:08 接口课设\~$中断控制的声光报警器的设计-接口课程设计.doc
文件 3691 2009-07-08 20:59 接口课设\基于中断控制的声光报警器的设计\music_final.cpp
文件 4960 2009-07-08 20:59 接口课设\基于中断控制的声光报警器的设计\music_final_final_final.asm
文件 209021 2009-07-08 20:59 接口课设\基于中断控制的声光报警器的设计\电路图.JPG
文件 175304 2009-11-14 15:45 接口课设\基于中断控制的声光报警器的设计.rar
文件 1885696 2010-07-09 01:36 接口课设\声光报警器的设计.doc
..A..H. 162 2010-07-07 20:28 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\~$技术课程设计指导书.doc
文件 32768 2010-06-30 08:18 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\接口技术课程设计指导书.doc
文件 27136 2010-06-30 14:38 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\接口技术课程设计题目明细表(计0701班).xls
文件 26624 2010-06-30 14:38 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\接口技术课程设计题目明细表(计0702班).xls
文件 26112 2010-06-30 14:39 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\接口技术课程设计题目明细表(计0703班).xls
..A..H. 162 2010-07-07 20:01 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\~$报警器的设计.doc
文件 57856 2010-06-30 13:28 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\单通道微机信号采集接口的设计.doc
文件 44032 2010-06-30 13:25 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\双机并行传送接口的设计.doc
文件 36864 2010-06-30 09:37 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\声光报警器的设计.doc
文件 56832 2010-06-30 13:27 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\多通道微机信号采集接口的设计.doc
文件 692736 2010-06-30 12:25 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\步进电机控制接口的设计.doc
文件 35328 2010-06-30 09:32 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书\音乐发生器的设计.doc
文件 117326 2010-07-07 14:49 接口课设\微机接口课程设计(2010).rar
目录 0 2010-07-09 01:40 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)\课程设计任务书
目录 0 2010-07-09 01:40 接口课设\微机接口课程设计(2010)\微机接口课程设计(2010)
目录 0 2010-07-09 01:40 接口课设\基于中断控制的声光报警器的设计
目录 0 2010-07-09 01:40 接口课设\微机接口课程设计(2010)
目录 0 2010-07-09 01:40 接口课设
----------- --------- ---------- ----- ----
8169692 27
............此处省略0个文件信息
- 上一篇:阵列信号处理经典教材讲义
- 下一篇:QQ昵称下划线内含代码
相关资源
- 包库全文查询软件DxAssistantV3.1
- 操作系统 缺页中断
- 图书ISBN信息批量查询程序.rar
- 最短路径查询系统图形界面
- 火车车次查询系统代源代码
- 基于百度地图demo修改了一下公交路线
- 录取查询报名系统
- 完善版火车查询系统
- 熊猫关键词工具 v2.5 长尾关键词挖掘
- 复合衰落信道下分布式MIMO系统中断概
- 贴片电子元件丝印查询带完整目录
- 城市公交查询系统的设计与实现毕业
- 公交查询系统183624
- STM32串口中断接收HAL库
- 政务大厅触摸查询方案
- 话费查询系统 UML EA
- 基于web的公交查询系统
- litePal模糊查询
- 4区SCI期刊目录影响因子查询
- 初级教程篇:按键(中断方式)实现
- STM32F103串口使用空闲IDLE中断接收不定
- STM32_ADC+TIM+DMA
- STM32硬件中断收发I2C数据
- MVC4 根据IP查询天气
- STM32 通过按键调PWM
- stm32f103串口空闲中断收发
- stm32f407实现定时器3Timer3触发ADC双通道
- webgis-天气查询
- 生产过程记录管理查询追溯系统
- 基于web的公交车查询系统含论文
评论
共有 条评论