c51 实验板 编写8个按键控制程序,按下8个键,在数码管上分别显示1-8
当编写一个使用微控制器C5 1 控制数字管以显示相应数字8 键的程序时,可以使用几种方法。这是代码的两个简短介绍。
第一个方法包括使用密钥扫描功能检测关键条件并根据密钥值更新数字管显示。
第二种方法使用位移操作通过简化逻辑来确定钥匙值。
第一个方法的代码如下:#include #definecharunsignedchardchar #defineuintunsignedintint#definekeykeydown1 //按按钮按#defineKeyup0 //单击“返回键”。
#DECIPLED_DATEP0 // LED数据端口bitkey_first = 1 ; //按键值codeucharled [] = {0xc0.0xf9 .0xa4 .0xb0.0x9 9 ,0x9 2 ,0x8 2 .0xf8 .0x8 0.0x9 0,}; // LED段的代码一般阳性管voidmain(void); voidkey_scan(void); voidkey_scan(){ucharkey_buff,key_date; key_date = p1 &0xff;如果(key_date!= 0xff){if(key_state!= keydown){if_first == 1 ){key_buff = key_date; key_first = 0;} else {if(key_date == key_buff){key_value = 〜ke y_date; key_state = keydown;}}} else {key_first = 1 ; key_state = keyup;}} voidmain(){wher(1 ){key_scan(); swit ch(key_value){case0x01 :{led_date = led [1 ];} break; case0x02 :{led_date = led [2 ];} break; case0x04 :{led_date = led [3 ];} break; case0x08 :{led_date = led [4 ];} break; case0x1 0:{led_date = led [5 ];} break; case0x2 0:{led_date = L. ed [6 ];} break; case0x4 0:{led_date = led [7 ];} break; case0x8 0:{led_date = led [8 ];} break;默认值:break;}}}第二种方法的代码:#include#defineuchrunSigned#defineuntunint#definedOw键pop pops pop up#decineed_datep0 // bitkey_first = 1 led lad数据; //第一次按键按bitkey_state = keyup; //密钥ucharkey_value的条件; // codecharled的密钥值[] = {0xc0.0xf9 .0xa4 .0xb0.0x9 9 .0x9 2 .0x8 2 .0x5 2 .0xf8 .0x8 0.0x9 0,}; // LED段的代码一般阳性管voidmain(void); voidkey_sc(void); voidkey_scan(){uchari,key_buff,key_date; key_date = p1 &0xff;如果(key_date!= 0xff){if(key_state!= keydown){if_first == 1 ){key_buff = key_date; key_first = 0;} else {ifate == key_buff){for(i = 0; i <8 ; i ++){if(! key_state = keydown;}}} else {key_first = 1 ; key_state = keyup;}} voidmain(){wher(1 ){key_scan(); LED_DATE = KEY_VALUE;}这两种方法都有效地实现了使用8 个键控制数字管以从1 到8 的数字显示的功能。
案例运营商使用第一种方法来确定键值一个接一个地确定键值,而第二种方法则使用位移操作简化逻辑,从而使程序变得更加紧密。
可以根据实际需求。
c51单片机怎么用两个按键控制两个数码管的加减,加到99就好,求程序
建议C5 1 Microsicians首先开始控制两个键和两个数字管,首先建议该程序首先是阅读软件中,以确保程序正确。您可以根据数字管设置钥匙和实际需求的基础。
此操作是该程序正确有效的基础。
接下来,我们必须编写程序。
首先描述主文件。
Russell文件通常用于包括重要的图书馆活动和声明全球变量。
由于电路设计中提供的电路设计与哪个密钥相关联,哪个键连接到了数字管的连接。
这些解释对其追随者至关重要。
然后写一个延迟任务。
延迟功能显示数字太强大的数字数字。
您可以根据需要指定延迟长度。
此操作是确认数字管软显示结果的关键。
主要任务是整个程序的主要部分。
此任务的关键需要应用数字浴缸控制日志。
具体而言,当数字管达到9 9 时,添加或卸下了数字管直到达到数字管9 9 此过程需要持续的自行车自行车以连续完成和减少任务。
主要功能还包括关键作品数量下的项目流灯的说明和频率。
最终确保该程序包含错误,并由错误组成。
程序中的写入错误确保所有定义和用途都是正确的。
完成后,可以在阅读中执行插图试验。
通过观察实施来确保该程序按预期工作。
如果有任何问题,您将需要返回前面的步骤寻求帮助。
为了实现C5 1 微米并减少C5 1 Microbox和两个程序联系,您还可以成功使用基本的编程和减少处理以及两个程序选项卡。
用AT89C51单片机编写一个C语言程序实现2个数码管秒计数器,用4个按键分别控制暂停、加一秒、减一秒和继续
#include求用51单片机接两个数码管,0-99动态显示程序(用C语言)
这是一个示例程序,该程序使用5 1 个微控制器来驱动两个数字管并获得0-9 9 的动态显示。该程序定义了数字管的段代码阵列dsy_code,并通过延迟功能延迟实现显示效果。
主函数主体中0到9 9 之间的数字显示为屋顶。
某些代码如下:#depineucharunsignedchar#defineUintunSignedTuchardsy_code [] 0x6 f}; voiddelay(uintx){uchari; (i = 0; i <1 2 0; i ++);} voidmain(){uchari; p0 = 0x00; p2 = 0x00; P0和P2 端口移植到0,然后进入无限环路,并通过FO循环显示0-9 9 之间的数字。
每当显示数字时,延迟功能都需要延迟才能实现动态显示效果。
5 1 个微控制器P0端口必须连接到拉力电阻。
否则,信号可能不稳定。
您可以将上述代码复制到开发环境中,以查看程序是否正常工作。
求一个C51单片机的在四位共阳极数码管上显示时间的程序(C语言),再按一下键显示的是几月几号,电路图如下
1 Display Module Subroutine 2 Time Subroutine 3 Key Subroutine (ifkey == 0x00 ..) 4 Minimum System ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----- This is a small electronic clock program.如果您知道如何创建此微控制器,可以说我有启动的想法,但我没有详细练习。这只是一个参考,或者我没有在STC中练习过。
初学者一起讨论我可以保证您一定会在线找到此程序,除非您很聪明〜