如何写用PIC12F683 点亮一个LED(用单片机的GP0口)?

[复制链接]
查看11 | 回复6 | 2011-8-19 07:21:12 | 显示全部楼层 |阅读模式
如何写用PIC12F683点亮一个LED(用单片机的GP0口)程序?大家帮帮忙啊,要用C语言写的,我一菜鸟啊
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
你好,我想你的程序只是有些小问题,你贴出来,我帮你改,你的一些引脚设置不对,程序就不能运行,因PIC12F683复用功能好多.菜鸟就不好把握了.追问#includepic.hvoiddelay(intx){inta,b;for(a=x;a0;a--)for(b=110;b0;b--);}voidmain(){TRISIO1=1;if(GPIO1==1){delay(10);if(GPIO1==1){GPIO0=0;TRISIO0=0;}}}注:GP0连LED,GP1连按键,按下按键--GP1输入高电平--点亮LED.编译时正确,但是按下不亮。帮看这程序出问题在哪,或帮我修改下程序,邮箱[email protected]谢谢
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
你好,设计按键时,按下按键GP1拉到地,松开为高电平.现在你是反其道而行,设计要符合人民习惯,虽然也可,但不要自作聪明.另外,没看到你写的I/O口的设置语句,你应该单独写端口初始化函数且调用.在主程序里写:TRISIO0=0;TRISIO1=1;显得乱.要注意12F683的端口是复用的,在定义输入时还要区分模似,和数字.还要关闭比较运算模块.请你亲自查12F683的DATASHEET,对你今后应用有好处.我现只给你提示,你离成功不远了.
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
谢谢,但是我还是不懂端口的复用,哎
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
这个ANSEL寄存器设置模似或数字输入.CMCON0,CMCON1寄存器用于设置PIN5,PIN6.PIN7是关闭比较器或用于I/O口.TRISIO用于设置端口方向.这几个寄存器必须正确设定.查12F683的DATASHEET,你能做好的.不灰心.
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
嗯,我会继续努力的,但愿吧。
回复

使用道具 举报

千问 | 2011-8-19 07:21:12 | 显示全部楼层
#includepic.hvoiddelay(intx){inta,b;for(a=x;a0;a--)for(b=110;b0;b--);}unsignedcharkey_io(){unsignedcharkey;if(GPIO1==1){delay(20);if(GPIO1==1){key=1;}}else{key=0;}returnkey;}voidmain(){unsignedcharkk;bitss=0;while(1){do{TRISIO1=ss;kk=key_io();}while(kk!=0);delay(5000);ss~=ss;}while(1);}这样就ok了,TRISIO1连led,TRISIO0连键盘,按一下亮,在按一下灭,循环。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行