微 控 制 器 作 业 ( 第 四 章 ) 4
5、试用 C51 语言编写将 0-9,A-F 转换成相应的 ASC2 码的程序
答 : 程 序 段 如 下: #include #include void main() { unsigned char ch; scanf("%c", &ch); if(9>=ch>=0||F>=ch>=A) printf("%d
\n",ch); return 0; } 4
11、用 C51 语言和汇编语言混合编程的方法,使单片机的 P1
0 引脚产生占空比为 90%周期为 10ms的方波
答 : 程 序 如 下: C 程 序 文件: #include #define uchar unsigned char sbit P1_0=P1^1; extern delay1ms(unchar x); //外部函数 delay1ms()声明,入口参数为 x main() { for(;;) { P1_0=1; delay1ms(9); //调用外部函数 delay1ms(9),参数 9 送入寄存器 R7 P1_0=0; delay1ms(1); } } void delay1ms() { #pragma asm public_delay1ms //用 public 声 明 _delay1ms 为 其 他 函 数 调 用 ,以 "_"开 头 后 跟 函 数 名 de segment code //定 义 de 段 在 定 义 函 数 段 rseg de //定 义 de 为 当 前 段 _delay1ms:nop dela:mov r1,#0f8h lop1:nop nop djnz r1,lop1 djnz r7,dela ret end #pragma endasm } 微 控 制 器 作 业(第六章) 6
2 、设计一个声光报警器,设备正常运行