单片机原理与C51语言程序设计与基础教程 课后习题答案(5)

2019-08-31 19:42

sbit PB1=P2^0; sbit PB2=P2^1; main() { unsigned char i=0; PB1=PB2=1; while(1) { SEG=TAB[i]; if(PB1==0) { debouncer(); if(PB1==0) { debouncer(); i=(i<9)?i+1:0; }

if(PB@==0) { debouncer(); i=(i>0)?i-1:9; } } } }

void debouncer(void) { int i; for(i=0;i<2400;i++); }

2. #include \sbit speaker=P0^0 ; unsigned char keys;

unsigned char tone[]={108,102,91,86,77,68,61,57}; void delay8us(unsigned char x) {

unsigned char i,j; for(i=0;i

void sound (unsigned char x) {

char i;

for(i=0;i<60;i++) {

speaker=1; delay8us(tone[x]); speaker=0; delay8us(tone[x]); } }

main() {

P2=0xff; while(1)

{ keys=~P2; switch (keys) { case 0x01: sound(0);break; case 0x02: sound(1);break; case 0x04: sound(2);break; case 0x08: sound(3);break; case 0x10: sound(4);break; case 0x20: sound(5);break; case 0x40: sound(6);break; case 0x80: sound(7);break; } } }

3. #include \sbit output=P0^0 ;

sbit s1=P2^0; sbit s2=P2^1; sbit s3=P2^2; sbit s4=P2^3; sbit s5=P2^4; sbit s6=P2^5; sbit s7=P2^6; sbit s8=P2^7;

unsigned int count=0;

#define TH_M1(65536-count)/256 #define TL_M1(65536-count)%6

main() { IE=0x82;

TMOD=0X01; output=1; P2=0xff; while(1) { if(s1==0) count=5; else if(s2==0) count=10; else if(s3==0) count=50; else if(s4==0) count=100; else if(s5==0) count=500; else if(s6==0) count=1000; else if(s7==0) count=5000; else if(s8==0) count=10000; TH0=TH_M1; TL0=TL_M1; TR0=1; while(TF0==0); TF0=0; output=~output; } }

第12章

填空题

1. 双键互锁方式和N键巡回方式 2.动态 静态 3.直插式 贴片式 4. 中断方式

5. 段控信号 位控信号

选择题 1.b 2.c 3.AB 4.B 5 B

上机题

1. #include %unsigned char

TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; char disp[2][4]={{2 0 0 8},{0 3 1 5}}; void delay1ms(int);

code

void scanner(char); main() {

char i; while(1) {

for(i=0;i<2;i++) {

scanner(i); P1=0xff;

delay1ms(480); } } }

void delay1ms(int x) {

int i,j;

for(i=0;i

for(j=1;j<=120;j++); }

void scanner(char x) {

char i,j,BCD,scan; for(i=0;i<30;i++) {

scan=0xf7;

for(j=0;j<4;j++) {

p2=0xff; P1=scan;

BCD=disp[x][j]; P2=TAB[BCD]; delay1ms(4); scan>>=1; }

} }

2. #include \#define SEG P2 #define SCANP P1 sbit LED=P0^&;

#define count_M1 50000

#define TH_M1 (65536-COUNT_M1)/256 #define TH_M1 (65536-COUNT_M1)%6 int count_T0=0;

#define count_M2 250

#define TH_M2 (256-count_M2)

unsigned char code TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; char disp[2]={0xc0,0xc0}; char seconds=0; char scan=0; main() { IE=0X8A; TMOD=0X21; TH0=TH_M1;TL0=TL_M1; TR0=1; TH1=TH_M2;TL0=TL_M2; TR1=1; LED=1; while(1); }

void T0 1s(void) interrupt 1 { TH0=TH_M1;TL0=TL_M1; if(++count_T0==20) { count_T0=0; seconds++; if(++count_T0==20) { count_T0=0; seconds++; if(seconds==60) { seconds=0; LED=~LED; } } disp[1]=TAB[second/10]; disp[0]=TAB[second]; } }


单片机原理与C51语言程序设计与基础教程 课后习题答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国立体电影眼镜市场调查及未来五年投资前景预测报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: