代码:
#include #define uchar unsigned char #define uint unsigned int sbit BEEP = P3^7; uchar code DSY_CODE[]= { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00 }; uchar Pre_KeyNO = 16,KeyNO = 16; void DelayMS(uint ms) { uchar t; while(ms--) { for(t=0;t<120;t++); } } void Keys_Scan() { uchar Tmp; P1 = 0x0f; DelayMS(1); Tmp = P1 ^ 0x0f; switch(Tmp) { case 1: KeyNO = 0; break; case 2: KeyNO = 1; break; case 4: KeyNO = 2; break; case 8: KeyNO = 3; break; default: KeyNO = 16; } P1 = 0xf0; DelayMS(1); Tmp = P1 >> 4 ^ 0x0f; switch(Tmp) { case 1: KeyNO += 0; break; case 2: KeyNO += 4; break; case 4: KeyNO += 8; break; case 8: KeyNO += 12; } } void Beep() { uchar i; for(i=0;i<100;i++) { DelayMS(1); BEEP = ~BEEP; } BEEP = 1; } void main() { P0 = 0x00; while(1) { P1 = 0xf0; if(P1 != 0xf0) Keys_Scan(); if(Pre_KeyNO != KeyNO) { P0 = ~DSY_CODE[KeyNO]; Beep(); Pre_KeyNO = KeyNO; } DelayMS(100); } } 硬件连接:
上一篇:单片机INT0及INT1计数器
下一篇:INTO中断计数器
推荐阅读



推荐帖子
- 【行空板 Python编程学习主控板】开源-行空板扩展板(转换板)设计
- 行空板的IO接口是3.3V电压等级的,而且,我自己的一些模块,与DF的模块接口并不是一样的,所以,设计了一个转接板,一方面,可以连接行空板。也可以将行空板上的信号转换一下,只取信号,电源另外供电。扩展板除了有micro:bit立式的插座,还有一个pice-x4的连接器,可以连接自己设计的主控板反向连接DF的模块。金手指设计,为了兼容自己设计的另一块扩展板。板载5V-3.3V的DCDC电源,根据使用的DCDC芯片不同,2A的输出能力是足够的。正面是一些连接器,电源。背面是一个Typ
-
jinyi7016
嵌入式系统
- 8051系列单片机BASIC语言开发环境简介
- BASIC语言已经发展到QuickBASIC、VisualBasic以后,已经具备了很多结构化思想和编程方式,如函数、模块、局部变量、全局变量、数据传递等。 早期的BASIC语言由于生成的代码不是最终目标机器的代码,而是经过一个RUNTIME程序解释后运行的,因而执行效率低。而单片机的BASIC编译器直接将代码编译成相应芯片的机器码,不需要在单片机的内存中驻留RUNTIME程序,执行效率与其他编译器编译出来的一样。 MCS-Electronics公司开发的BASCOM-8051开发环
-
程序天使
51单片机
- 跪求zrtech的PERII_8KD的资料
- 跪求zrtech的PERII_8KD的资料,各位大大,谢谢啦跪求zrtech的PERII_8KD的资料
-
a972043362
FPGA/CPLD
- PCB的封装
- 今天画一个无线模块的封装,有于模块有天线所以在封装的过程中,文中提及到屏蔽焊盘,“屏蔽焊盘不要将主机的PCB顶层覆铜置于屏蔽焊盘下方”这是什么意思,没有看明白,林外屏蔽焊盘怎么画,球大神解答!! PCB的封装
-
李嘉辉
PCB设计
- 国产M0芯片移植FreeRTOS笔记一
- 本帖最后由LONGSHEN1于2020-9-1017:14编辑 笔者趁着闲暇将FreeRTOS移植到一个国产MCU上,FreeRTOS还是非常容易移植的,网上的参考资料也非常多,FreeRTOS在全球嵌入式市场分析报告中一直是小型嵌入式操作系统使用率最高的,以下是移植记录:一、前期准备准备一个简单的工程模板,比如一个点亮LED的程序即可;二、源码下载从网址https://sourceforge.net/projects/freertos/files/FreeRT
-
LONGSHEN1
实时操作系统RTOS