第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/7/9 22:04:58 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

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)

可编辑

《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9mq08751z66ksx797jw59jajr88l5800wt4_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top