推荐阅读最新更新时间:2024-11-01 15:31
51单片机12分频 ----- 学习笔记
51单片机12分频的原因 由于初期设计硬件技术缺陷,使执行指令时需要子时钟,就把12个振荡周度期规定为1个机器周期。 51单片机是12M晶振,如果是单指令周期的语句,刚好是1us,其他语句好似1us的整数倍,便于计算指令时间。 AT公司的AT89系列51单片机,工艺上存在不足,分频后频率降低,程序得以稳定执行,不易跑飞。 AT新出的单片机和一些公司出的新单片机不一定要用问12M的晶振,11.05925M也行,18M也行,即35M以内的无源晶振(两脚的)都可以的。 图片素材来源于网络 晶振频率为12MHz定时器/计数器计算 一个计算脉冲所用的时间=一个机器周期 一个机器周期=1
[单片机]
51单片机与GPS串口通信
最近在考研调剂没有学校要, 找工作又找不到, 快崩溃了。 刚想找点乐子,忘掉烦恼。开了一下自己的工具箱,发现以前买了一块二手的车载GPS,因为一直没有资料就放在那没有用。 仔细看了一下GPS发现芯片的LOGO和型号还是看得出来的,这是一块用了索尼CXD2931R作为接收GPS信号的芯片,本来想到网上看看有没有现成的作品,可是很遗憾没能找到(可能已经别淘汰了),没办法只能到ALLDATASHEET上下了这份芯片的手册, 看了下手册,发现sony的这款GPS芯片很高档呀:集成32位处理器、DSP、RAM和ROM的容量也很大(怪不得GPS价格这么贵)。 原来GPS使用串口来给主机发送信息的,这块GPS的通信速
[单片机]
基于STC51单片机的自动门铃
设计要求:# 利用红外对管检测是否有人进出 在触发红外对管后,使用PWM驱动蜂鸣器,使其发出叮咚叮咚的声音 设计概述:# 按照设计要求,为了直观的说明脉冲宽度调制技术(PWM),所以门铃的声音效果为叮咚叮咚形式。所需要的单片机芯片为STC89C52,所用的硬件工具是由华清远见开发的基于STC89C52的智能小车。该小车配备所需要的红外探测模块和蜂鸣器模块,红外探测模块由P3口控制,蜂鸣器模块由P2口控制。STC89C52是一种低功耗,高性能的8位微控制器,是加强版的80C51单片机,但是与80C51单片机一样不具备PWM硬件模块,所以我们需要自己写一个程序来软件模拟PWM方波。 PWM是一种方波,可以实现数字信号控制模
[单片机]
基于51单片机之触控调光台灯实验
****************************** Copyright(C) CaKe ************************************ =================================== ==============**版权信息 : CaKen工作室 ============== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== =
[单片机]
KST-51单片机:c语言编程实现数码管动态显示秒表的倒计时
/*60S倒计时*/ /*个位每1S变一次,从0~9*/ /*十位,个位为0的下一秒十位发生变化*/ #include reg52.h sbit ADDR0=P1^0; sbit ADDR1=P1^1; sbit ADDR2=P1^2; sbit ADDR3=P1^3; sbit ENLED=P1^4; unsigned char code LedChar = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90 }; void main() { unsigned int cnt=0; //记录中断次数 unsigned int sec=0; //记录
[单片机]
89C51单片机40s倒记时数码管动态显示
此程序已经通过测试,电路连接是:一个2位的共阴数码管,位选是P3.6,P3.7口,段选是P0口,还有如下3个按键 sbit buzz = P2^2; sbit clear = P2^0; sbit start = P2^1; 分别是喇叭,清除和开始 与gnd相连即可. #include reg51.h #include intrins.h const unsigned char LED7Code ={ 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x
[单片机]
51单片机按键程序中while(!key)的作用是什么
我相信大家也是常常遇到过这一句代码while(!key);,那么大家知道这句代码是有什么用吗?在这我就和大家分享一下,还是用代码来说话吧: #include reg52.h typedef unsigned int uint; typedef unsigned char uchar; sbit key=P1^0; void delay(uint x) { uchar i; while(x--)for(i=0;i 120;i++); } void scan_key(void) { uchar j; if(key==0)//判断按键是否被按下 delay(10);//按键消抖 if(key==0)
[单片机]
跟我学51单片机(五):单片机动态扫描驱动数码管
一、本文内容提要 本刊第四期介绍了单片机外接键盘的原理,并给出了应用实例。本期将介绍单片机动态驱动段式数码管。通过该讲,读者可以掌握段式数码管的工作原理和如何通过动态驱动的方法设计电路以及程序。 二、原理简介 常用的段式数码管有七段式和八段式,八段比七段多了一个小数点,其他的基本相同。所谓的几段就是指数码管里有相应的几个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形(见图1(a))。从各发光二极管的电极连接方式又可以分为共阳极和共阴极两种类型。共阴极则是所有的二极管的阴极连接在一起,而阳极是分离的(见图1(b));而共阳极就是所有二极管的阳极是公共相连,而阴极则是分离的(见图1(c))。本
[单片机]