教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

单片机程序源代码(2)

来源:网络收集 时间:2026-09-09
导读: } } } 任务七:查询式按键设计 将8个按键从1~8进行编号,如果其中一个键被按下,则在LED数码管上显示相应的键值。 #include #define uint unsigned int #define uchar unsigned char main() { uchar a[16]={0xc0,0x

} } }

任务七:查询式按键设计 将8个按键从1~8进行编号,如果其中一个键被按下,则在LED数码管上显示相应的键值。 #include

#define uint unsigned int #define uchar unsigned char main() {

uchar

a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; P0=0xff; while(P0!=0xff) { switch(P0) {case 0xfe: P2=a[1]; break; case 0xfd: P2=a[2]; break; case 0xfb: P2=a[3]; break; case 0xf7: P2=a[4]; break; case 0xef: P2=a[5]; break; case 0xdf: P2=a[6]; break; case 0xbf: P2=a[7]; break; case 0x7f: P2=a[8]; } } }

任务八:LED数码管显示矩阵键盘按键的设计

设计一个4*4的矩阵键盘,以P1.0~P1.3作为行线,以P1.4~P1.7作为列线。要求:未按下按键时,LED数码管显示“-”,按下按键时,在数码管上显示相应的键值。 #include

#define uchar unsigned char #define uint unsigned int uchar

table[17]={0xbf,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; uint num=0;

void delay(uint x) { uchar i,j; for(i=x;i>0;i--) for(j=120;j>0;j--); }

keyscan() { uint temp; temp=P2; temp&=0x0f; if(temp==0x0e) {

P2=0xf0; temp=P2; temp&=0xf0; switch(temp) { case 0xe0:num=1;break; case 0xd0:num=2;break; case 0xb0:num=3;break; case 0x70:num=4; } }

if(temp==0x0d) {

P2=0xf0; temp=P2; temp&=0xf0; switch(temp) { case 0xe0:num=5;break; case 0xd0:num=6;break; case 0xb0:num=7;break; case 0x70:num=8; } }

if(temp==0x0b) {

P2=0xf0; temp=P2; temp&=0xf0; switch(temp) { case 0xe0:num=9;break;

case 0xd0:num=10;break; case 0xb0:num=11;break; case 0x70:num=12; } }

if(temp==0x07) {

P2=0xf0; temp=P2; temp&=0xf0; switch(temp) { case 0xe0:num=13;break; case 0xd0:num=14;break; case 0xb0:num=15;break; case 0x70:num=16; } }

return num; }

void display(uint num) { if(num==0) P0=0xbf;

P0=table[num] ; }

main() {

uint temp; while(1) {

P2=0x0f; temp=P2; if(temp!=0x0f) keyscan(); display(num); } }

(2)

#include

#define uchar unsigned char #define uint unsigned int sbit LED1=P2^0; sbit LED2=P2^1;

uchar num;

uchar code LED_code[]= { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e };//数码管字形码编码 void delay(uint x) { uchar i,j; for(i=x;i>0;i--) for(j=120;j>0;j--); }//延时函数

void display(uchar num) { P0=LED_code[num]; }//数码管显示函数

void keyscan()//键盘扫描函数 { uchar temp; P1=0xfe;//key1-key4第一行按下 temp=P1; temp&=0xf0; if(temp!=0xf0) { delay(10);//消除抖动 temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xee: num=1; break; case 0xde: num=2; break; case 0xbe: num=3; break; case 0x7e:

num=4; break; } } while(temp!=0xf0)//等待按键释放 { temp=P1; temp&=0xf0; } }

P1=0xfd;//key5-key8第二行按下 temp=P1; temp&=0xf0; if(temp!=0xf0) { delay(10);//消除抖动 temp=P1; temp&=0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: num=5; break; case 0xdd: num=6; break; case 0xbd: num=7; break; case 0x7d: num=8; break; } } while(temp!=0xf0)//等待按键释放 { temp=P1; temp&=0xf0; } }

P1=0xfb;//key9-key12第三行按下

…… 此处隐藏:663字,全部文档内容请下载后查看。喜欢就下载吧 ……
单片机程序源代码(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/604998.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)