完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 fengfuzi 于 2014-2-19 09:11 编辑
我想要实现蜂鸣器和点阵的同时工作,蜂鸣器工作,点阵显示字,每一个分开运行都没问题,但我想让他们同时工作,我觉得应该是中断冲突,大神们给点指点吧。。不胜感激。。。 蜂鸣器程序 #include #define uchar unsigned char ***it beepIO=P1^5; uchar m,n; uchar code T[49][2]={{0,0}, {0xF8,0x8B},{0xF8,0xF2},{0xF9,0x5B},{0xF9,0xB7},{0xFA,0x14},{0xFA,0x66},{0xFA,0xB9},{0xFB,0x03},{0xFB,0x4A},{0xFB,0x8F},{0xFB,0xCF},{0xFC,0x0B}, {0xFC,0x43},{0xFC,0x78},{0xFC,0xAB},{0xFC,0xDB},{0xFD,0x08},{0xFD,0x33},{0xFD,0x5B},{0xFD,0x81},{0xFD,0xA5},{0xFD,0xC7},{0xFD,0xE7},{0xFE,0x05}, {0xFE,0x21},{0xFE,0x3C},{0xFE,0x55},{0xFE,0x6D},{0xFE,0x84},{0xFE,0x99},{0xFE,0xAD},{0xFE,0xC0},{0xFE,0x02},{0xFE,0xE3},{0xFE,0xF3},{0xFF,0x02}, {0xFF,0x10},{0xFF,0x1D},{0xFF,0x2A},{0xFF,0x36},{0xFF,0x42},{0xFF,0x4C},{0xFF,0x56},{0xFF,0x60},{0xFF,0x69},{0xFF,0x71},{0xFF,0x79},{0xFF,0x81} }; uchar code music[][2]={{0,4}, {14,2},{14,2},{16,8},{14,8},{19,8},{18,8},{0,8},{14,4},{14,4},{16,8},{14,8},{21,8},{19,8},{0,8},{14,4},{14,4},{26,8},{23,8},{19,8},{18,8},{29,10},{24,4},{24,4},{23,8},{19,8},{21,8},{23,8}, {0xFF,0xFF}}; void delay(uchar p) { uchar i,j; for(;p>0;p--) for(i=181;i>0;i--) for(j=181;j>0;j--); } void pause() { uchar i,j; for(i=150;i>0;i--) for(j=150;j>0;j--); } void T0_int() interrupt 1 { beepIO=!beepIO; TH0=T[m][0]; TL0=T[m][1]; } void main() { uchar i=0; TMOD=0x01; EA=1; ET0=1; while(1) { m=music[0];n=music[1]; if(m==0x00) {TR0=0;delay(n);i++;} else if(m==0xFF) {TR0=0;delay(30);i=0;} else if(m==music[i+1][0]) {TR0=1;delay(n);TR0=0;pause();i++;} else {TR0=1;delay(n);i++;} } } 来自小组: 机器人 |
|
相关推荐
7个回答
|
|
这个是点阵的程序
/**********************慧净电子实验板例程************************ * 平台:HL-1 HJ-3 HJ-C52 + Keil uVision4 + STC89C52 * 名称:8x8点阵静态显示0-9 * 公司:慧净电子科技有限公司 * 淘宝:http://shop37031453.taobao.com * 网站:www.hjmcu.com www.hlmcu.com * 编写HJMCU * 日期:2008-8-08 * QQ : 398115088 121350852 * 晶振:11.0592MHZ * 说明:免费开源,不提供源代码分析,有问题直接到慧净论坛交流 * 论坛:http://hjdz.5d6d.net * 硬件设置:直接接到LCD1602位置,注意脚号。 * 使用说明: ******************************************************************/ /**********************************包含头文件**********************************/ #include #include "74hc595.h" /********************************定义变量和数组********************************/ unsigned char code table[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,}; unsigned char code Digit_Tab[9][8] = { {0x0C,0x06,0xCC,0x80,0x80,0xCC,0x06,0x0C}, //字模取模方式 阴码 逆向 逐列式 {0x92,0x92,0xFE,0x00,0xFE,0x92,0x92,0xFE},/*"0",0*/ {0x10,0x90,0x7E,0x12,0x9A,0xFE,0x10,0x10},/*"未命名文件",0*/ {0x08,0x84,0x86,0x94,0xFF,0x94,0x84,0x80},/*"1",1*/ {0x00,0x00,0xFE,0x92,0x92,0xFE,0x00,0x00},/*"2",2*/ {0x38,0xFE,0x90,0xD4,0x7F,0x54,0xDC,0x90},/*"3",3*/ {0x00,0x4C,0x2A,0x89,0xFC,0x08,0x28,0x40},/*"4",4*/ }; unsigned int count; unsigned char cnta; unsigned char cntb; /******************************************************************************/ /* 函数名称 : Timer0 */ /* 函数描述 : T0中断函数 */ /* 输入参数 : 无 */ /* 参数描述 : 无 */ /* 返回值 : 无 */ /******************************************************************************/ void Timer0(void) interrupt 1 using 0 { TH0 = (65536 - 1200) / 256; TL0 = (65536 - 1200) % 256; Ser_IN(table[cnta]); //8X8点阵列扫描 Ser_IN(Digit_Tab[cntb][cnta]); //8X8点阵行送扫描数据 Par_OUT(); //74HC595输出显示 cnta++; if(cnta == 8) { cnta = 0; } count++; if(count == 1200) { count = 0; cntb++; if(cntb == 7) { cntb = 0; } } } /******************************************************************************/ /* 函数名称 : main */ /* 函数描述 : 主函数 */ /* 输入参数 : 无 */ /* 参数描述 : 无 */ /* 返回值 : 无 */ /******************************************************************************/ void main(void) { TMOD = 0x01; TH0 = (65536-1000) / 256; TL0 = (65536-1000) % 256; TR0 = 1; ET0 = 1; EA=1; while(1) { ; } } /******************************************************************************/ |
|
|
|
{:13:}{:13:}
|
|
|
|
|
|
一个main函数,通过调用子涵数实现功能,可以分别用T0、T1 做为中断
|
|
|
|
用两个定时器,声音的优先级高一点就行了。
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11762 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:51 , Processed in 0.689131 second(s), Total 89, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号