云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2

《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 15:20:54

.

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};//代码表 void dl_ms()

//延时1ms函数

;

{ unsigned int j; for(j=0;j<200;j++) }

void display(void)//显示函数 { uchar segcode, bitcode, i; bitcode=0xfe; //位码赋初值 for(i=0;i<6;i++)

{ segcode=dis_buf[i];//显示缓冲器内容查表 P0=table[segcode]; P3=bitcode; dl_ms( ); P3=0xff;

//关闭显示

bitcode=bitcode<<1; //调整位码 bitcode=bitcode|0x01; } }

void main(void)

{ dis_buf[0]=1; dis_buf[1]=2; dis_buf[2]=3; dis_buf[3]=4; dis_buf[4]=5;dis_buf[5]=6; while(1) { display( ); } }

(2)定时调用

定时调用是通过定时器/计数器的定时功能来定时一定的时间(如20ms),定时时间到来调用显示函数。 void main(void) //定时调用 { TMOD=0x01;

TH0=-20000/256; TL0=-2000%6; EA=1;ET0=1; TR0=1;

dis_buf[0]=1;dis_buf[1]=2;dis_buf[2]=3;

可编辑

.

void time0_int( ) interrupt 1 {

TH0=-20000/256; TL0=-2000%6; display( ); }

dis_buf[3]=4;dis_buf[4]=5;dis_buf[5]=6; while(1) ; }

【例6-6】独立式按键示例

C51源程序如下: #include

#define uchar unsigned char #define uint unsigned int uchar data key2;

code uchar dirtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80}; void dl_6( ) { uint i;

for(i=0;i<600;i++); }

void key( ) { uchar key1; P1=0xff; key1=P1;

可编辑

.

if(key1!=0xff)

{ dl_6( ); P1=0xff;key1=P1; if(key1!=0xff) { key1=P1; switch(key1)

{ case 0xff: key2=8; break; case 0xfe: key2=0; break; case 0xfd: key2=1; break; case 0xfb: key2=2; break; case 0xf7: key2=3; break; case 0xef: key2=4; break; case 0xdf: key2=5; break; case 0xbf: key2=6; break; case 0x7f: key2=7; break; default:break; } } } }

void main( ) { key2=8; while(1) { key( );

P3=dirtab[key2]; } }

【例6-7】 4×4矩阵键盘示例

可编辑

.

#include

#define uchar unsigned char #define uint unsigned int uchar data dir_buf;

code uchar dirtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};

code uchar keytab[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7, 0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77}; void delay(void); void keyscan( ); void dir( ); uchar key; void main(void) { dir_buf=16; while(1)

{ keyscan( ); dir( ) ; } }

void dir( )

{ P2=dirtab[dir_buf];}

void delay(void)

可编辑

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};//代码表 void dl_ms() //延时1ms函数 ; { unsigned int j; for(j=0;j<200;j++) } void display(void)//显示函数 { uchar segcode, bitcode, i; bitcode=0xfe; //位码赋初值 for(i=0;i<6;i++) { segcode=dis_buf[i];//显示缓冲器内容查表 P0=table[segcode]; P3=bitcode; dl_ms( ); P3=0xff; //关闭显示

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com