完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include "74hc595.h" #include "boardinit.h" #include "delay.h" uchar juzhen_keyscan(); ***it weixuan=P2^6; //数码管位选 ***it duanxuan=P2^5; //数码管段选 unsigned char code shuzhi[19]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0X89,0X7F,0XBF}; // 共阳数码管显示数组 0-dp uchar temp,num_juzhen; // 0 1 2 3 4 5 6 7 8 9 A b c d E F H . - void main() { boardinit();//板卡硬件初始化 P3=0xff; //P3口初始化 P2=0X00; //P2口初始化 duanxuan=0; weixuan =0; P0=0XFF; //选通数码管所有位 weixuan=1; weixuan=0; duanxuan=1;//让数码管实时更新显示字符 P0=shuzhi[8]; delay(100); while(1) { P0=shuzhi[juzhen_keyscan()];//送字符编码,到数码管显示。 } } uchar juzhen_keyscan() { //************************************************************************* P3=0Xfe;//扫描第一行 temp=P3; if(temp!=0xfe) //判断如果是否有按键按下 { //delay(10);//去除抖动 10ms temp=P3; if(temp!=0xfe) { // while(!(P3==0xfe)); switch(temp) { case 0x7e: num_juzhen=1; break; case 0xbe: num_juzhen=2; break; case 0xde: num_juzhen=3; break; case 0xee: num_juzhen=4; break; } } } //************************************************************************* //************************************************************************* P3=0Xfd;//扫描第二行 temp=P3; if(temp!=0xfd) //判断如果是否有按键按下 { //delay(10);//去除抖动 10ms temp=P3; if(temp!=0xfd) { //while(!(P3==0xfd)); switch(temp) { case 0x7d: num_juzhen=5; break; case 0xbd: num_juzhen=6; break; case 0xdd: num_juzhen=7; break; case 0xed: num_juzhen=8; break; } } } //************************************************************************* //************************************************************************* P3=0Xfb;//扫描第三行 temp=P3; if(temp!=0xfb) //判断如果是否有按键按下 { //delay(10);//去除抖动 10ms temp=P3; if(temp!=0xfb) { //while(!(P3==0xfb)); switch(temp) { case 0x7b: num_juzhen=9; break; case 0xbb: num_juzhen=10; break; case 0xdb: num_juzhen=11; break; case 0xeb: num_juzhen=12; break; } } } //************************************************************************* //************************************************************************* P3=0Xf7;//扫描第四行 temp=P3; if(temp!=0xf7) //判断如果是否有按键按下 { //delay(10);//去除抖动 10ms temp=P3; if(temp!=0xf7) { //while(!(P3==0xf7)); switch(temp) { case 0x77: num_juzhen=13; break; case 0xb7: num_juzhen=14; break; case 0xd7: num_juzhen=15; break; case 0xe7: num_juzhen=16; break; } } } return num_juzhen; //************************************************************************* } |
|
相关推荐
2个回答
|
|
|
|
|
|
我也在学这个,可以一起讨论么
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
366 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之开发板测试
348 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之网络socket程序编程
780 浏览 0 评论
飞凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB设计要点
848 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
900 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11715 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 08:23 , Processed in 0.659553 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号