摘要:
有感于我做单片机实验的时候,在网上找的参考代码老是写得很糟糕又或者排版很丑,所以我决定将自己做单品机实验的源代码全部放出。另外,因为公布了题目和答案,也希望老师不要以这些千百年不变的题目作为课程的作业了。请看到本文的老师思考一下怎么将课程练习和实际的项目开发结合起来,因为没有人喜欢写那种没有实际应用价值的代码;请思考一下怎么通过实验来激发学生的兴趣,而不是动辄以学分威逼学生去完成课程作业。以下篇章中的代码有如下的特点: 1、注释多,因为这是面向初学者的,所以代码的注释中包含了很多相关的知识点,也写出了代码的目的,争取给初学者无障碍阅读代码的体验。 2、函数以小函数居多,争取不给人长长的函数那种 阅读全文
摘要:
1.实现对红外遥控器的解码,并用其实现一些简单的控制/******************************************************************************** lcd1602显示遥控器接p3.2 * ** 按下上面的按键分辨显示遥控器上面的按键数据 * ** 连接方法:使用红外功能时 J1跳线短接 * *********************************************************************************/#include #include #define uchar unsig. 阅读全文
摘要:
1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次接线:P0接J12、P1接J20、P2接J19/**1.控制点阵红绿交替显示,分别从上到下,从左到右循环闪烁三次**/#include unsignedchar code table_LeftRight[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedchar code table_TopBottom[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};enum DisplayDirecte{ Left2Right, Right2Left, T 阅读全文
摘要:
1.利用实验板和配件,设计一个时钟,时间显示在LCD1602上,并按秒更新,能够在实验板上设计3个按键调整时,分,秒。其功能为:功能选择键,数值增大和数值减小键。利用板上AT24C02设计实现断电保护显示数据的功能。=============Clock.h=============#ifndef __CLOCK_H__#define __CLOCK_H__//========全局变量区============================================unsignedchar T_High_50ms=(65536-45872)/256;unsignedint T_Low_5 阅读全文
摘要:
1.利用单片机控制LCD1602,在LCD1602上显示字符串,并使其整屏左移。#include#define uchar unsigned char#define uint unsigned intuchar code table[]="Hello World!";uchar code table1[]="I am a boy!";sbit lcden=P2^7; //液晶使能端sbit lcdrs=P2^6;sbit LCDWR=P2^5;uchar num;/********************************************* 阅读全文
摘要:
1.利用单片机控制PCF8591的AD转换,控制AD0和AD1电位器,在数码光上显示DA转换的值。2.利用单片机控制PCF8591的DA转换,让发光二极管D1由暗到亮变化,整个过程时间差不多2s左右,再由亮到暗变化,循环变化。以下代码将1、2实验合并成一个实验。Lab6.1#include#include #define PCF8591 0x90 //PCF8591 地址#define uchar unsigned char#define uint unsigned int#define ulong unsigned long//=========全局变量区================== 阅读全文
摘要:
1. 用C语言编程,利用定时器产生一个0~99秒变化的秒表,并且显示在数码管上,每过一秒将这个变化写入实验板上AT24C02,当关闭实验板电源,并再次打开实验板电源时,单片机从AT24C02中将原来写入的数据读出来,接着继续变化在数码管上。#include#define uchar unsigned char#define uint unsigned int//=========全局变量区============================================bit write=0; //写24C02的标志;sbit sda=P2^0; sbit scl=P2^1;sbit h 阅读全文
摘要:
1. 以2400bps从计算机发送任一字节数据,当单片机收到该数据后,将其送到数码管显示,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned long/**题目要求:以2400bps从计算机发送任一字节数据,当单片机收到该数据后,将其送到数码管显示,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。**//**步骤接线方式:1、P0接数码管J12,实现段选2、译码器和数码管位选输 阅读全文
摘要:
1.当单片机的INT0进入低电平触发方式,进入相应的中断服务程序,P0口做输出口,接8只发光二极管,点亮发光二级管,控制蜂鸣器响。当INT1为低电平时进入中断服务程序,发光二级管灭。接线:将P0和JP1连接、P3和JP5连接#include #define uchar unsigned char#define uint unsigned intsbit beer = P1 ^5; //蜂鸣器sbit button0 = P3 ^2; //独立按键3sbit button1 = P3 ^3; //独立按键4void int0() interrupt 0//外部中断0{ P0 =0; beer = 阅读全文
摘要:
1. 单片机驱动蜂鸣器的实验;a) 说明:Lab51单片机实验板的蜂鸣器连接到单片机的P1.5b) 基本要求:控制蜂鸣器每2秒响0.5秒。#include #define unit unsigned int void delay(unit x){ unit i=x; unit j; for(;i>0;--i){ for(j=x;j>0;--j); }}void main(){ while(1){ P1=0x00; delay(250); //0.5秒 P1=0xff; delay(420);//2秒 }}2. 单片机驱动继电器输出实验;a) 说明:Lab51单片机实验板的蜂鸣器连接 阅读全文