uCOS-II 在C51 单片机上的移植
2020-01-03 11:34:47 191KB uCOS-II 在C51 单片机上的移植
1
设计的一款声控LED智能灯,该灯含有8个灯珠,采用一个按键统一控制灯的开与关,也可以通过声音控制开灯,开灯后根据环境光亮度,点亮多个灯珠(最暗时点亮8个灯珠,最亮时点亮1个灯珠)
2020-01-03 11:33:00 44KB C51 PCF8591 声音传感器
1
有电子秒表功能,LED键盘自检等程序;1)上电启动后,时钟计时,显示器显示00:00,并开始计时,每过1秒加1,直至59:59,再加1回到00:00,循环一次是60分钟,计时结束后蜂鸣器响一声报警提示。 2)按下K1键后,选择秒表计时,显示器显示00:00,每过1秒加1,直至59:59,再加一回到00:00,循环一次是60分钟。此秒表计时过程中需要暂停/继续功能时,按下k2键实现,按下k3键实现复位功能并且回到时钟计时,计时结束后蜂鸣器响一声报警提示。 3)再次按下k1键,选择倒计时,显示器显示59秒,每过1秒减1,直至00:00,计时停止,蜂鸣器响一声报警提示,此倒向计时过程中需要暂停/继续功能时,按下k2键实现,按下k3键实现复位功能并且回到时钟计时。按下k4键,倒计时置位,显示器显示59秒。 4)再次按下k1键,回到时钟计时,在秒表计时和倒计时过程中,时钟计时不停止。
2020-01-03 11:32:35 106KB C51 计时器 键盘自检 蜂鸣器自检
1
sht30的基于c51单片机驱动程序:#include #include #include "I2C.h" #include "SHT30.h" #define uint unsigned int #define uchar unsigned char void display(); unsigned char code tableduan[]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; uchar data DIS_ROME[6]= {0,0,0,0,0,0}; //显示缓存区(4) uchar DISP=0;//缓存区指针 uchar SCANF=0xDF;//扫描指针 sbit LED1=P1^0; sbit LED2=P1^1; sbit LED3=P1^2; sbit LED4=P1^3; sbit VOC_A=P3^5; sbit VOC_B=P3^6; sbit dula=P2^6; //IO口定义 sbit wela=P2^7; sbit key=P3^4; sbit beep_dr=P2^3; uint pm1 = 0; uint pm2 = 0; uint pm10 = 0; uchar vr=0; uint intrcnt=0; bit F_1HZ; uint voice_time_cnt; uchar Uart_Buf; uchar Rec_Addr=0; uchar mode=0; uchar Rec_Uart=0; uchar Recive_Buf[30]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; #define key P34 #define const_key_time1 50 unsigned char ucKeySec=0; //被触发的按键编号 unsigned int uiKeyTimeCnt1=0; //按键去抖动延时计数器 unsigned char ucKeyLock1=0; //按键触发后自锁的变量标志 unsigned char displaycnt=0; void keyscan() { if(key==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位 { ucKeyLock1=0; //按键自锁标志清零 uiKeyTimeCnt1=0;//按键去抖动延时计数器清零,此行非常巧妙,是我实战中摸索出来的。 } else if(ucKeyLock1==0)//有按键按下,且是第一次被按下 { uiKeyTimeCnt1++; //累加定时中断次数 if(uiKeyTimeCnt1>const_key_time1) { uiKeyTimeCnt1=0; ucKeyLock1=1; //自锁按键置位,避免一直触发 ucKeySec=1; //触发1号键 } } } void keyservice() { if(ucKeySec) { displaycnt=!displaycnt; } ucKeySec=0; } void UartInit(void) //9600bps@12.000MHz { TMOD=0x01; //设置定时器0为工作方式1 TH0=0xf8; //重装初始值(65535-500)=65035=0xfe0b TL0=0x2f; SCON=0x50; TMOD=0X21; IP =0x10; //把串口中断设置为最高优先级, EA=1; ES=1; ET0=1; TR0=1; } void T0_time(void) interrupt 1 //定时中断 { TF0=0; //清除中断标志 TR0=0; //关中断 keyscan(); keyservice(); display();
2019-12-24 03:12:20 4KB sht30
1
基于C51单片机的小制作,简单而有乐趣。
2019-12-21 22:14:05 47KB 声光控灯
1
初学者很好的入门教程。 在我看来,王静霞老师写的程序比较精炼,在众多的教程程序范例中,她的程序是数一数二的。 图书简介: http://www.phei.com.cn/bookshop/bookinfo.asp?booktype=main&bookcode=G0086420 内容简介    本书在深圳职业技术学院单片机应用技术课程组十余年教学改革经验的基础上,结合目前最新的职业教育改革要求,通过22个工作任务,主要介绍单片机硬件系统、单片机开发系统、单片机并行端口应用、定时与中断系统、显示与键盘接口技术、A/D与D/A转换接口、串行接口通信技术、单片机系统扩展,以及单片机应用系统设计等内容。本书注重技能训练,采用工作任务引导教与学,内容贴近电子行业的职业岗位要求,具有很强的实用性、可读性和趣味性。本教材配有教学课件与练习题参考答案,详见前言。
2019-12-21 22:10:26 31KB C51 单片机 源程序 王静霞
1
电子密码锁课程设计,本系统由AT89S51单片机系统(主要是AT89S51单片机最小系统)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确显示password ok! 密码错误显示password error!超过三次输入错误自动锁定。由P1口控制矩阵键盘含有0-9数字键和A-F功能键。)。除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。
2019-12-21 21:51:27 63.1MB 51单片机
1
本文介绍了一种基于51单片机的MP3播放器设计方案。采用AT89C51SND1C芯片,它是ATMEL公司专门针对MP3设计需求出品的一款微处理器。文章详细论述了播放器的软件和硬件结构设计,此播放器具有一定的实用价值。
2019-12-21 21:39:25 500KB 单片机 MP3
1
程序一:基本控制;程序二:按键控制;程序三:正反转控制。
2019-12-21 21:34:07 10KB C51,单片机
1
用热敏电阻或温度传感器作温度探头,把温度数据转换成BCD码在LED上显示。 显示精度±0。5℃ 能记录和回放温度参数,记录间隔可任意设定(1S到1h,步长1s) 回放数据速度可设定 画出温度变化曲线。 发挥部分: 1 显示精度提高到±0。1℃ 2 显示精度提高到±0。01℃ 3 与实际温度计温度比较,找出温度显示误差曲线,在报告中描出,并分析误差来源 4 实现温度自动补赏
2019-12-21 21:25:11 186KB C51单片机 编程
1