为什么电脑识别不到usb设备我的电脑是EFI

查看: 255|回复: 0
大三刚刚接触单片机,自己独立做的小程序
交通灯设计
#include &reg51.h&
#define uchar unsigned char
#define uint unsigned int
uint num=0,sec=0,t0=0,t1=0,tt,shi,
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管真值表
/*延时函数*/
void delay(int z)
for(i=z;i&0;i--)
& & & & for(j=100;j&0;j--);
/*初始化函数*/
void init()
& & & & TMOD=0X01;
& & & & TH0=()/256;
& & & & TL0=()%256;
& & & & EA=1;
& & & & ET0=1;
& & & & TR0=1;
& & & & P1=0x00;
/*倒计时显示子程序*/
void display()
& & & & shi=tt/10;
& & & & ge=tt%10;
& & & & P2=0
& & & & P0=table[ge];
& & & & delay(1);
& & & & P2=0
& & & & P0=table[shi];
& & & & delay(1);
void timer0() interrupt 1&&//T0中断
& & & & TH0=()/256;
& & & & TL0=()%256; //重装初值
& & & & t0++;& && && && && && &&&//中断记次
& & & & if(t0==20)& && &&&//定时1s到
& & & & & & & & t0=0;
& & & & & & & & sec++;
& & & & & & & & if(sec==8)& &//8秒后进入第二状态
& & & & & & & & {
& & & & & & & & & & & & num=1;
& & & & & & & & }
& & & & & & & & if(sec==10)& &//10s后进入第三状态
& & & & & & & & {
& & & & & & & & & & & & num=2;
& & & & & & & & }
& & & & & & & & if(sec==15)& &//15s后进入第四状态
& & & & & & & & {
& & & & & & & & & & & & num=3;
& & & & & & & & }
& & & & & & & & if(sec==17)& &//17s后又进入第一状态
& & & & & & & & {
& & & & & & & & & & & & sec=0;
& & & & & & & & & & & & num=0;
& & & & & & & & }
void main()
& & & & init();
& & & & while(1)
& & & & & & & & if(num==0)& &//第一状态
& & & & & & & & {
& & & & & & & & & & & & tt=8-& &//东西绿灯倒计时
& & & & & & & & & & & & display();
& & & & & & & & & & & & P1=0x0c;& &//南北绿灯倒计时
& & & & & & & & }
& & & & & & & & if(num==1)& &&&//第二和第四状态同是黄灯闪烁
& & & & & & & & {
& & & & & & & & & & & & tt=10-
& & & & & & & & & & & & display();& &//黄灯倒计时
& & & & & & & & & & & & P1=0x0a;& & //黄灯亮
& & & & & & & & & & & & delay(7);
& & & & & & & & & & & & P1=0x08;& &//黄灯灭& & & & & & & &
& & & & & & & & & & & & }
& & & & & & & &
& & & & & & & & if(num==2)& & //第三状态
& & & & & & & & {
& & & & & & & & & & & & tt=15-
& & & & & & & & & & & & display();& & //南北绿灯倒计时
& & & & & & & & & & & & P1=0x21;& && &//南北绿灯 东西红灯
& & & & & & & & }
& & & & & & & & if(num==3)& && &&&//第二和第四状态同是黄灯闪烁
& & & & & & & & {
& & & & & & & & & & & & tt=17-
& & & & & & & & & & & & display();& & //黄灯倒计时
& & & & & & & & & & & & P1=0x11;& && &//黄灯亮
& & & & & & & & & & & & delay(7);
& & & & & & & & & & & & P1=0x01;& &&&//黄灯灭
& & & & & & & & & & & & }
& & & & & & & & }
22:58 上传
点击文件名下载附件
下载积分: 黑币 -5
19.11 KB, 下载次数: 1, 下载积分: 黑币 -5
22:58 上传
点击文件名下载附件
下载积分: 黑币 -5
878 Bytes, 下载次数: 1, 下载积分: 黑币 -5
Powered by后使用快捷导航没有帐号?
来自ValentinRuhry的创意,这哥们用整整500
群里高手多
帮忙写个程序
谢谢。。。
本帖最后由 扯嘴角微笑牵强 于
16:28 编辑
& && && &群里高手多&&帮我写个程序&&每个按键单独控制一个LED&&长按2秒开(输出低电平) 再长按3秒关& &如此循环&&要求每一路都独立工作不影响&&长按2秒或3秒后动作 没达到时间则清零&&达到时间后灯就亮 不需要等按键松开& &先谢谢了。。。发我邮箱&&
(309.97 KB, 下载次数: 0)
22:21 上传
22:27 上传
点击文件名下载附件
下载积分: 下载币 -5
18.76 KB, 下载次数: 1, 下载积分: 下载币 -5
开关延时是个问题,要没有开关延时就行
长按2秒开(输出低电平) 在长按3秒关&&你的意思是说 如果一直按着不放,两秒开 亮三秒后关闭 两秒后又开......是吗?中间如果断开呢?就是长按2秒开了 松手&&led一直亮?
楼上说得对,楼主得把需求提清除,其实程序实现并不难
荖鬼 发表于
长按2秒开(输出低电平) 在长按3秒关&&你的意思是说 如果一直按着不放,两秒开 亮三秒后关闭 两秒后又开.... ...
谢谢&&已经写清楚了 帮我看看能不能实现&&
刘贺 发表于
楼上说得对,楼主得把需求提清除,其实程序实现并不难
已经写清楚了&&觉得还有没写明白的 麻烦再说一下&&再帮我看看能不能实现这个程序&&谢谢
#include &reg52.h&
#define uchar unsigned char
#define uint unsigned int
& & & & /*********初始化*********/
& & & & void init ()
& & & & & & & & P1=0
& & & & & & & & P2=0
& & & & /*********延时*********/
& & & & void delay (ms)
& & & & & & & &
& & & & & & & & while(ms--)
& & & & & & & & {
& & & & & & & & & & & & for(i=0;i&114;i++);
& & & & & & & & }
& & & & /*********扫描**********/
& & & & uchar scankey ()
& & & & & & & & key=0
& & & & & & & & if(P1!=0xff)
& & & & & & & & {
& & & & & & & & & & & & delay(5);
& & & & & & & & & & & & if(P1!=0xff)
& & & & & & & & & & & & & & & & key=P1;
& & & & & & & & & & & & //
& & & & & & & & }
& & & & & & & &
& & & & /*********显示*********/
& & & & void led()
& & & & & & & & P2=
& & & & /********主函数*******/
& & & & void main ()
& & & & & & & & init();
& & & & & & & & while (1)
& & & & & & & & {
& & & & & & & & & & & & if(P2==0xff)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & key=scankey();
& & & & & & & & & & & & & & & & while ((key==scankey())&&(i&3))
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & delay(500);
& & & & & & & & & & & & & & & & & & & & i++;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & if(i==3)
& & & & & & & & & & & & & & & & & & & & led();
& & & & & & & & & & & & & & & & & & & & i=0;
& & & & & & & & & & & & }
& & & & & & & & & & & & else
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & & key=scankey();
& & & & & & & & & & & & & & & & while ((key==scankey())&&(i&4)&&(key!=0xff))
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & delay(500);
& & & & & & & & & & & & & & & & & & & & i++;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & if(i==4)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & key=0
& & & & & & & & & & & & & & & & & & & & led();
& & & & & & & & & & & & & & & & & & & & i=0;
& & & & & & & & & & & & & & & & }& & & &
& & & & & & & & & & & & }
& & & & & & & & }
我刚学单片机 ,应该还有更好的写法 或者说 可以优化一下, 能力有限,你试试
如果原来灯是灭的,长按超过2s(延时不是很准,大约),打开led;如果原来是亮的,长按超过3s(大约,不是特别准),灭掉led。长按过程中,时间未到松手,保持原状态,大体就是这样子的
荖鬼 发表于
如果原来灯是灭的,长按超过2s(延时不是很准,大约),打开led;如果原来是亮的,长按超过3s(大约,不是特别 ...
写得不是很规范,大家一起学习
本帖最后由 荖鬼 于
21:51 编辑
荖鬼 发表于
#define uchar unsigned char
#define uint unsigned int
这是之前按我的理解写得,你看看
Copyright &
Powered by第一个单片机程序(C语言编写)_C语言中文网
&&/&&&&/&&&&/&&
忙活了半天,准备工作做了那么多,终于要编写我们的程序代码了。如果学过 C 语言的话,你应该很轻松的跟着我的编程自己写出来,如果没学过 C 语言也没关系,你先照着我的抄,我会在合适的位置写出来对 C 语言语法的解释,这样抄几次后再看看解释,就应该很明白了,抄的时候一定要认真,尤其标点符号不可以搞错。
第一个单片机程序:
#include &reg52.h&
//包含特殊功能寄存器定义的头文件
sbit LED = P0^0;
//位地址声明,注意:sbit 必须小写、P 大写!
void main(){
//任何一个 C 程序都必须有且仅有一个 main 函数
//分号表示一条语句结束
先从程序语法上来分析一下:
main 是主函数的函数名字,每一个 C 程序都必须有且仅有一个 main 函数。
void 是函数的返回值类型,本程序没有返回值,用 void 表示。
{}在这里是函数开始和结束的标志,不可省略。
每条 C 语言语句以;结束的。
逻辑上来看,程序这样写就可以了,但是在实际单片机应用中,存在一个问题。比如我们的程序空间可以容纳 100 行代码,但是我们实际上的程序只用了 50 行代码,当运行完了50 行,再继续运行时,第 51 行的程序不是我们想运行的程序,而是不确定的未知内容,一旦执行下去程序就会出错从而可能导致单片机自动复位,所以我们通常在程序中加入一个死循环,让程序停留在我们希望的这个状态下,不要乱运行,有以下两种写法可以参考:
参考程序一:
#include &reg52.h&
sbit LED = P0^0;
void main(){
参考程序二:
#include &reg52.h&
sbit LED = P0^0;
void main(){
程序一的功能是程序在反复不断的无限次执行 LED = 0;这条语句,而程序二的功能是执行一次,然后程序直接停留下来等待,相对程序一来说程序二更加简洁一些。针对于图 2-6,我们这个程序能够把小灯点亮,但是这个程序却点不亮我们板子上的小灯,这是为什么呢?
这里大家就要培养一个意识了,我们做单片机编程,实际上算是硬件底层驱动程序开发,这种程序的开发,是离不开电路图的,必须根据我们的电路图来进行程序的编写。如果我们设计电路板的电路图和图 2-6 一样的话,程序可以成功点亮小灯,但是如果不一样,就可能点不亮。
我们的开发板上,还有一个 74HC138 作为 8 个 LED 小灯的总开关,而 P0.0 仅仅是个分开关。如同我们家里总是有一个供电总闸,然后每个电灯又有一个专门的开关,我们刚才的程序仅仅打开了那个电灯的开关,但是没有打开那个总电闸,所以程序需要加上这部分代码。
因为这节课要介绍的内容比较多,所以我们把 74HC138 的原理以及为什么要加额外的代码在下节课统一介绍,这节课我们直接加上这部分代码,大家知道有这么一回事就可以了。
#include &reg52.h&
//包含特殊功能寄存器定义的头文件
sbit LED = P0^0;
//位地址声明,注意:sbit 必须小写、P 大写!
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main(){
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
//点亮小灯
while (1);
//程序停止在这里
写了这么多啰嗦的语句,刚开始大家可能觉得很麻烦,为什么有的书上程序很简单就可以点亮小灯,我们这里却这么麻烦呢。大家要了解一点,就是我们做这个学习板,虽然仅仅提供给大家简单学习使用,但是我们也得按照实际产品的开发模式去设计,所以综合考虑因素很多,大家学到后边就会明白它的设计价值了,这里大家只要跟着我们去做就可以了。
程序编好了,我们要对我们的程序进行编译,生成我们需要的可以下载到单片机里的文件,在编译之前,我们先要勾选一个选项,Project--&Options for Target &Target1‟...,或者直接点图 2-17 中红框内的快捷图标:
图 2-17& 工程选项图标
在弹出的对话框中,点击 Output 选项页,勾选其中的&Create HEX File&复选框,然后点 OK,如图 2-18 所示。
图 2-18& 创建 HEX 文件
设置好以后呢,点击&Project--&rebuild all target files&,或者鼠标点击图 2-19 中红框内的快捷图标,就可以对程序进行编译了。
图2-19& 编译程序
编译完成后,在我们的 Keil 下方的 Output 窗口会出现相应的提示,大家注意看图 2-20,这个窗口告诉我们编译完成后的情况,data=9.0,指的是我们的程序使用了单片机内部的 256字节 RAM 资源中的 9 个字节,code=29 的意思是使用了 8K 代码 Flash 资源中的 29 个字节。
当提示&0 Error(s), 0 warning(s)&表示我们的程序没有错误和警告,就会出现&creating hex file&from &LED&...,意思是从当前工程生成了一个 HEX 文件,我们要下载到单片机上的就是这个HEX 文件。如果出现有错误和警告提示的话,就是 Error 和 warning 不是 0,那么我们就要对程序进行检查,找出问题,解决好了再进行编译产生 HEX 才可以。
图2-20& 编译输出信息
到此为止,程序就编译好了,下边我们就要把编译好的程序文件下载到单片机里了。
2.1 2.2 2.3 2.4 2.5 2.6 2.7刚刚入门。。帮忙编写程序。谢谢!!_单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:133,050贴子:
刚刚入门。。帮忙编写程序。谢谢!!收藏
青浦万达茂-统一运营管理10年,首年6%抵扣房款
既然是刚学,程序自己写呀~不难
第一个和第二个都用到了if条件判断语句,第三个用for循环语句就可以啦
汇编要学吗?
你这是用c还是汇编啊?
想让别人帮你写作业就得付出代价
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 电脑识别不到手机 的文章

 

随机推荐