微处理器与接口技术技术复习资料

更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
请根据前面计算分析结果,用C51语言补充填写完整程序驱动电路。控制共阳数码管显示1~99,时间间隔为1s。要求使用单片机定时器0(T0)方式1的中断方式定时1s。 #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code table[]={ 0xc0, 0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e, 0x8c, 0xc1,0x91,0x7c,0x00,0xff}; //定义段码表 void Display(unsigned int number); //显示函数声明 uint times=0 //定义变量 存储定时器 0 的溢出次数 uint sec=0; // 定义变量存储秒时间 void main() //主程序 { //①设置T0为定时、方式1 //②T0的高8位初值 //③T0的低8位初值 //④开总中断 //⑤开T0中断 //⑥启动T0定时器TR while(1) //无限循环 { if(sec==99) sec=0; Display(sec); //LED 子程序 } } void Timer0() //⑦中断函数说明及中断类型号 { //⑧重新设置T0的高8位初值 //⑨重新设置T0的低8位初值 TR0=1; //启动T0 if( ) //⑩判断已经计时够1秒钟 { //⑪溢出次数清零,秒计数+1 } else //⑫溢出计数器自加 } //数码管显示函数 void Display(unsigned int number)//LED 子程序 { static uint display_value; display_value = number; a0= (display_value /1) %10; // 提前需要显示的数据的个位 a1= // ⑬提前需要显示的数据的十位 //显示第一个数码管程序 P2=0xff; //全关闭消去影 P0=0XF1; //点亮第一个数码管 P2=table[a0]; //显示个位 delay_ms(20); //动态扫描延时 P2=0xff; //全关闭消去影 P0=0XF2; //点亮第二个数码管 P2=table[a1]; //请补充显示第二个数码管的程序 delay_ms(20); //动态扫描延时 }