大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 17:28:36
大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位

大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位
大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位效果.

大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位
//假设三个开关分别接到P1.0、P1.1、P1.2,当按下时IO口为0
#include
unsigned char Led1,Led2,Led3,Led4;
sbit KeyA=P1^0;
sbit KeyB=P1^1;
sbit KeyC=P1^2;
unsigned char LedSegmentTab[]=\x05\x05//定义共阴极数码管
\x05\x05 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
\x05\x05 //0,1 ,2,3,4,5,\x05 6,7 ,8 ,9
void Delay100us(int Times);
\x05\x05
main()
{
\x05int number,temp;\x05\x05\x05//待显数字
\x05number = 0;
\x05Led1 = 0x00;\x05\x05//全显0
\x05Led2 = 0x00;
\x05Led3 = 0x00;
\x05Led4 = 0x00;
\x05//定时器1初始化
\x05TMOD = 0x10;\x05\x05//T1:Gate = 0,不受外部中断信号影响
\x05\x05\x05\x05//\x05 C/T = 0,选择为定时方式
\x05\x05\x05\x05//\x05 M1,M0 = 0,1 构成16位定时器
\x05\x05\x05\x05//T0:在程序中不使用.
\x05TH1 = 0x3c;\x05\x05//指定定时时间为50ms,即每50ms扫描一次数码管.
\x05TL1 = 0xb0;\x05\x05//65536-50*1000/(12/12) = 15536 = 3cb0h
\x05 ET1 = 1;\x05\x05 //开定时器1中断
\x05while(1)
\x05{
\x05\x05while(KeyA&KeyB&KeyC); //等待按键
\x05\x05if(KeyA) //按键A
\x05\x05{
\x05\x05\x05number++;
\x05\x05\x05if(number == 9999)
\x05\x05\x05\x05number = 0;
\x05\x05}
\x05\x05if(KeyB)
\x05\x05{
\x05\x05\x05if(number>0)
\x05\x05\x05\x05number--;
\x05\x05}
\x05\x05if(KeyC)
\x05\x05\x05number = 0;
\x05\x05
\x05\x05Led4 = number/1000;
\x05\x05temp = number%1000;
\x05\x05Led3 = temp/100;
\x05\x05temp = number%100;
\x05\x05Led2 = number/10;
\x05\x05Led1 = number%10;\x05
\x05\x05
\x05}
}
\x05
//功能描述:定时器1用于数码管扫描
void timer1() interrupt 3 using 2
{
\x05TH1 = 0x3c;\x05\x05\x05\x05\x05//重新赋值
\x05TH0 = 0xb0;
\x05P0 = LedSegmentTab[Led1];
\x05P2 = P2 & 0xfe;\x05\x05\x05\x05//点亮第一个数码管
\x05Delay100us(10);\x05\x05\x05\x05//延时1ms
\x05P0 = LedSegmentTab[Led2];
\x05P2 = P2 & 0xfd;\x05\x05\x05\x05//点亮第二个数码管
\x05Delay100us(10);\x05\x05\x05\x05//延时1ms
\x05P0 = LedSegmentTab[Led3];\x05
\x05P2 = P2 & 0xfb;\x05\x05\x05\x05//点亮第三个数码管
\x05Delay100us(10);\x05\x05\x05\x05//延时1ms
\x05P0 = LedSegmentTab[Led4];
\x05P2 = P2 & 0xf7;\x05\x05\x05\x05//点亮第四个数码管
\x05Delay100us(10);
}
void Delay100us(int Times)
{
\x05Times = Times * 100;
\x05while(Times--);
}
以上程序用Keil编译通过,至于能不能用,需要自己做一下仿真

大学C语言 单片机程序设计 计数器设计大学C语言效果要求:用四个LED表示二进制计数值,开关A每开关一次,计数器加1,并通过LED灯表示出当前值;开关B每开关一次,计数器减1;开关C可实现复位 英语翻译C语言程序设计、VC++可视化语言设计、JAVA程序设计基础、VB程序设计、数据结构、计算机网络应用、自动控制理论、单片机原理及接口技术、微机原理、数字信号处理等.自动控制理 英语翻译面向对象程序设计 C语言 电路分析 低频电子线路 数字逻辑电路 嵌入式系统与应用 高频电子线路 单片机系统设计 信息论与编码 通信原理 集成电路设计 信号与系统 数字信号处理 数字电压表设计 单片机 C语言用C语言编写的单片机数字电压表设计,用数码管显示 单片机设计一个定时器|计数器,能使发光二极管亮一秒熄灭一秒,周而复始 用单片机设计出租车计价器,使用c语言编程,使用的是51系列的单片机.计价器可以显示3位数,精确到0.1元.用数码管显示. 51单片机k1按下3分钟后,k2按下时,灯亮5秒钟,怎样用C语言设计? 单片机C语言设计里说的可重入函数是什么?和不可重入函数的区别是什么? c语言计算器程序设计包含加减乘除简单的函数运算 51单片机的C语言P27是什么意思 单片机C语言中P3 &=~(1 设计计数器的基本原理 英语翻译计算机文化基础实验逻辑与智慧外语法律基础大学体育军事理论大学物理实验C语言程序设计C语言及程序设计实验世界旅游地理外语马克思主义哲学原理大学体育线性代数概率论与 用VHDL语言设计编写一个异步清零的模9计数器 哪位朋友可以帮个忙~单片机课程设计4 4个16*16点阵LED电子显示屏的设计,有谁能用汇编语言实现.也可以用C语言. 在单片机c编程 比较两个数的大小,输出大的数.且带串行口中断声明:不是平常用的C语言编程的,而是 “单片机”c编程。用keil软件开发的,并非TC 帮忙设计一下这个计数器 单片机C语言中p2=0xFF,