本人刚学习VB编程 有什么代码大全来让我们这些英语不好的菜鸟参考么?
这些通用的属性,希望以对你有用
修改对象的前景颜色:ForeColor属性。
修改对象的背景颜色:BackColor属性。
对象的标题或内容:Caption属性。
对象是否需要三维立体的外观:Appearance属性。
对象是否自动对齐到它所在容器的边缘:Align属性。
对象是水平放置还是垂直放置:Orientation属性。0为水平,1为垂直。
对象在它所在容器内的位置和大小:Left,Top,Width,Height属性。
对象内部坐标系统的左上角位置和内部大小:ScaleLeft,ScaleTop,ScaleWidth,
ScaleHeight属性。
当鼠标在对象上时显示的不同形状:MousePointer属性。
当鼠标在对象上时显示的提示文字:TooltipText属性。
在对象外部是否包围有1个边框:BorderStyle属性。
对象边框的颜色:BorderColor属性。
改变对象上文字成不同字体:Font属性。可分别开来:
① 是否要粗体:FontBold属性;
② 是否要斜体:FontItalic属性;
③ 设置字体名称:FontName属性。
④ 设置字号大小:FontSize属性。
⑤ 是否要加删除线:FontStrikethru属性。
⑥ 是否要加下划线:FontUnderline属性。
由用户自定义的1个对象标记:Tag属性。
设置1个对象是否可自动拖放操作,同时不响应对象事件:DragMode属性。
对象在拖放过程中显示的图标:DragIcon属性。
当对象中内容很多,对象大小不够时,是否自动扩大对象的尺寸以完全显示对象的内容:AutoSize属性。
对象是否在界面中可见:Visible属性。
对象是否有效:Enabled属性。
当对象是对象数组时,确定对象的下标:Index属性。
对象是否可通过TAB键转移获得焦点:TabStop属性。
用TAB键转移焦点时本对象所处的顺序位置:TabIndex属性。
如果对象可设置为不同样式,选择各种样式:Style属性。
选择对象中文本的的对齐方式是左对齐,右对齐还是居中对齐:Alignment属性。
使对象中文本从右到左显示(如"国和共民人华中"):RightToLeft属性。
获得对象所处的容器对象:Container属性。
如果对象是数据绑定对象,则:①对象绑定到哪个数据对象:DataSource属性;②对象绑定到哪个字段:DataField属性。③更改对象显示数据的格式:DataFormat属性;④绑定对象中数据内容是否被改变:DataChanged属性。
返回对象的父对象:Parent属性。
返回对象在代码中的名称:Name属性。
在对象上显示图片:Picture属性。
对象的当前值或当前状态:Value属性。
如果对象的作用是体现1段范围,则:
① 范围的最小值:Min属性。
② 范围的更大值:Max属性。
③ 对象的当前值:Value属性;
④ 用户对当前值每次较小的改变量:SmallChange属性;
⑤ 用户对当前值每次较大的改变量:LargeChange属性。
允许用户在对象内选中一部分内容进行操作:Sel……属性。如SelStart选中内容的开始位置,SelLength选中内容长度等。
让本对象与1个ImageList对象建立关联以使用其中的图片:ImageList属性。
对象的手工拖放 *** :Drag *** ,Drag 1开始拖放;Drag2停止拖放rag 0取消拖放。
在界面中移动对象的位置和大小:Move *** 。
赋予对象以焦点:SetFocus *** 。
当几个对象重叠在一起时,决定对象显示或被遮盖:Zorder *** .Zorder 0显示;Zorder 1遮住。
清空对象内容:Clear *** 。 ★ 系统对象:就是在VB中已定义好的不用自行创建的,有:
App对象:当前的应用程序。
Clipboard对象:Windows剪贴板。
Screen对象:显示屏幕。
Printer对象:系统打印机。
Debug对象:调试窗口(调试时用)。
Screen对象的属性:
active control:拥有焦点的控件。
active form:拥有焦点的窗体。(仅限于本程序所包含窗体)
TwipsPerPixelX:对象中每一水平象素的缇数。(好象是1象素=15缇)
TwipsPerPixelY:对象中每一垂直象素的缇数。(好象是15)
Clipboard剪贴板对象的 *** :
clear *** :清空剪贴板。
粘贴文本gettext *** :返回剪贴板中的文本。(如text1.text=clipboard.gettext)
粘贴图象getdata *** :返回剪贴板中的图象文件。
复制文本settext *** :复制文本到剪贴板。clipboard.settext
文本,类型格式;可以利用"类型格式"参数来改变文本成bmp等图象格式,有意思。???
复制图象setdata *** :使用指定的图形格式将图形保存到剪贴板。注:在使用本 *** 向剪贴板复制图象前,必须先用Clear *** 清空剪贴板原有图象。如:
Clipboard .Clear
Clipboard .SetData Picture1.Picture, 2
其中参数2表示图形为bmp格式。
getformat *** :返回剪贴板中项目的格式。
剪贴板对象中项目格式有如下几种:vbCFtext(值为1)文本格式;vbCFBitmap(2)位图bmp格式;vbCFMetafile(3)图元文件wmf格式;vbCFDIB(8)与设备无关的位图格式(DIB),vbCFPalette(9)调色板格式;vbCFlink(HBF00)动态数据交互链。
检查剪贴板项目格式的例子如:
If Clipboard.GetFormat(vbCFText)=True then
mnupaste.enabled=true
end if
注:在剪贴板中可以同时包含文本和图象,互不干扰。
★ 使用打印机打印:1,打印文本:Printer对象的print *** :格式:
Printer . print 文本内容 如:Printer . print "李新宁"
在使用print *** 把文本输出到打印机前,还可对字体进行设置,如:
Printer.FontSize = 14
Printer.Print "你好"
字体的设置有FontName,FontUnderline等。
2,打印整个窗体:窗体的PrintForm *** ,格式:Form对象。PrintForm.
将窗体客户区及其上可见的控件全部打印到纸上,如图形,表格等。能保留原来的位置和格式,如果要使某些控件(如按纽、表格线等)不打印到纸上,只要将其Visible属性设为False即可。如:
Command1.Visible = False
Form1. PrintForm
打印机对象Printer有以下一些属性 *** :
NewPage *** :在打印作业中开始新的一页。
EndDoc *** :结束打印设置并将全部结果输出到打印机(真正打印开始);
KillDoc *** :中断当前打印作业。
Page属性:打印时包含的页号。
如下例:
Printer . Print "" 初始化打印机,作好打印准备。
Printer.FontName = "Arial" 设置字体
Printer.FontBold = True
Printer.Print Label1.Caption 用粗体打印标签label1中的文本
Printer.FontBold = False
Printer.Print Text1.Text 不用粗体打印文本框中文本
Printer.EndDoc 结束打印设置并真正打印所有指定内容
★
各对象通用属性一则:tooltiptext属性--当鼠标在该对象上暂停时显示的小文本框,用于作一些对用户的提示。如:label1.tooltiptext="哇,太酷了!",注意,弹出的小文本框不会自动消失,直到鼠标离开它,如果只是作短暂的提示,那么,就用一个timer对象吧。
★ 控件的Clear *** :清除控件对象中的内容。对所有对象可用,如剪贴板也不例外,写法为:clipboard.clear
★ 同一窗体内所有界面元素焦点的次序属性:tabindex属性,它决定用tab键移动焦点时的对象次序。
★ 指定鼠标指针形状的属性:对象的
mousepointer属性,有0--15种不同的指针形状,还可以选"99"自定义形状(结合mouseicon属性指定图形文件),这样在运行程序时,当鼠标移到指定对象时,指针就会变成定义的形状了。
★ 对象的大小属性:height 高度;width 宽度
例,我们可以做一个"放大镜",当用户单击图片框时,图片框加大尺寸:
Private Sub Image1_Click()
Image1.Height = Image1.Height + 50
Image1.Width = Image1.Width + 40
End Sub
★ 改变对象在代码中的名字:"(名称)"属性:如"command1"改成"cmd1"
命名的约定:由于"(名称)"属性改变的是对象在代码中使用的名字,因此,需要起一个有相关意义而又标明相关控件类别的好名字,规则是:在你起好的名字前加上三个字母前缀:combobox
:前缀为cbo
checkbox: chk
command button cmd
common dialog dlg
data dat
★ 对象通用事件mousemove事件,当鼠标移到该对象时发生,用作特殊效果非常好。
★
在使用mousemove事件时,有时有一种情况,在对象上每移动一点鼠标,就会触发该事件,哪怕总是在这个对象上移动,而我只是想当鼠标之一次移上该对象时,使相关事件发生(如发一个声音),怎么办?可以事先设一个变量,在mousemove事件用if语句和改变变量值的办法来实现--只"if真"一次。自已试试吧。
★ 通用 *** setfocus作用:赋予对象焦点,格式:
对象名.setfocus。注:SetFocus *** 必须赋予界面中可视即Visible属性为真的控件上。
★
在使用setfocus *** 赋予一个对象焦点时,不能在form_load事件中直接进行赋予(如在其中写command1.setfocus),因为焦点只能赋到可视(visible为真)的控件上,在load加载还未完成时,窗体及其上的控件都是不可视的。这一点值得注意,但可以在加载完后转移焦点, *** 是在之一个获得焦点的对象的gotfocus事件中写:command1.setfocus,就可以了。
图形 *** :
在图形 *** 中,首先要确定坐标系统和度量单位,可通过对象的scalemode属性改变坐标度量单位,有七种可选单位(缺省为1-缇)。一般用3(象素)。
cls:如picture1.cls 清空对象(对象内部清屏)
pset:画点并指定颜色。格式:
对象名.pset(点的坐标x,y),点的RGB颜色
picture1.pset(1000,500),RGB(255,0,0)
point:查看某个点的颜色值(一个8位以内的长整数)。格式:
对象名.point(点的坐标x,y)
x=picture1.point(1240,5910)
line:画线,矩形(加B)或画填充框(加BF)。格式:
对象名.line(x1,y1)-(x2,y2),颜色,B或BF
如果加上B或BF,则表示画矩形,B表示用指定颜色在两坐标间画矩形
框,但矩形框内部不进行颜色填充,而加BF,则用指定颜色填满整个矩形块。
Picture1.Line (100, 100)-(1000, 1000), RGB(244, 244, 0), BF
画了一个黄色矩形块。
circle:画圆,椭圆或圆弧。格式:
对象名.circle(x,y圆心坐标),半径,颜色,圆弧起点,圆弧终点,椭圆纵横比
picture1.circle(1000,500),400,RGB(0,0,255)
圆弧起点与终点在-2pi到2pi值之间(以度为单位)。
★ 打开或运行本机磁盘上指定的程序、文件(夹)、Internet地址等,功能与开始菜单"运行"相同,格式:Shell
"Rundll32.exe URL.dll,FileProtocolHandler 路径及文件名",1例如: Shell
"rundll32.exe url.dll,Fileprotocolhandler c:\windows",1 打开文件夹。
Shell "rundll32.exe url.dll,Fileprotocolhandler
http://www.cctv.com/",1 打开网页。
Shell "rundll32.exe url.dll,Fileprotocolhandler c:\美女.bmp",1
使用关联程序打开文件。
在Windows2000中怎么不可以?
★
指定对象所属的容器,用set关健字和对象的Container属性:,如要把在窗体form1中的一个按纽改放到picture1中去,那么用
Set Command1.Container =
Picture1.可以作为容器的有Form,Picture和Frame.格式:set 对象名.Container=容器名
★ 与绘图有关的属性(Form窗体或Picture对象):
CurrentX和CurrentY:设置当前光标的位置。如在指定位置进行输出。如:
Form1.CurrentX = 40:Form1.CurrentY = 50:Print "aaaaaaaaaaaa"
drawmode:选择绘图时线条颜色的产生 *** (位与,或,。覆盖等)共16种。
drawstyle:设置画线的线型(有0-6种,0与6为实线,1为虚线,2为点线,3,4,5为点虚线)。
drawwidth:画线的宽度。
autoredraw:自动重画。(?:绘图是否在内存中直接分配空间来存放该图形信息,以便在被遮住等情况发生而重新显示时自动调用内存进行图形恢复。如果为节省内存不要这项功能,就要在代码中用paint事件来实现。)
★
通用属性与事件一则:对象的CausesValidation属性和Validate事件,这两个总是在一起使用:validate事件在对象即将失去焦点前发生,在此事件中如果设一个参数Cancel=True的话,那么窗体中其他预先设好的causesvalidation属性为true的对象就不能获得焦点(缺省时都为true),因此可用来选择性地限制某些对象,直到关健对象的Validate事件cancel等于False为止。如:
Private Sub Form_Load()
Command1.CausesValidation = False
Text2.CausesValidation = True 这个对象将受到限制
End Sub
Private Sub Text1_Validate(Cancel As Boolean)
在缺省情况下,cancel总为false
If Text1.Text "1234" Then
MsgBox "密码错误!", , "错误"
Cancel = True
End If
End Sub
运行时,如果你输入的不是1234,那么当你试图将焦点改变到text2时(如鼠标单击或用TAB键等),就会出现"密码错误"提示,并使焦点仍在text1中。
★ 通用属性:定制度量刻度的四个属性:
scaleleft,scaletop:自定义设置对象内绘图区域左上角坐标,缺省为0,0。如果进行了设置,则该对象内所有的绘图 *** 都将基于左上角的新坐标值进行,如原在左上角为0,0下form1.pset(100,50)画了一点,改变form1.scaleleft=100,form1.scaletop=50后,这个点就跑到左上角去了。
scalewidth,scaleheight:自定义设置对象内绘图区域宽度和高度。现有的绘图区域将根据这两个属性设置的值,确定新的单位刻度。如随便设form1.scalewidth=100,则不管怎样,反正就是将绘图区的宽width划分成100等份,每份就是新的单位刻度(还可设为负数)。
当以上四个属性中的任何1个被人为地改变后,其ScaleMode属性自动变为0用户自定义型。
★ 控件的通用属性几则:
HelpContextID:设置上下文编号,为程序提供上下文帮助,格式:
对象.HelpContextID=编号
hWnd:返回窗体或控件的句柄。[还有hdc是设备场景句柄]
parent:返回本对象的上一级对象。如对象command1放在form1中,那么
command1.parent.Cls 就是父窗口form1清屏。等价于form1.cls
利用parent属性,可以将对象作为参数来传递。
★ 对象的Drag *** :对象的手工拖动操作。
拖放:1,自动拖放--只要将要拖动对象的Dragmode属性设为1自动拖放,此时对象不再响应鼠标事件,如Click事件等。专等按下鼠标的拖动操作发生。
2,手工拖放--常用此 *** 。首先把要拖动对象的Dragmode属性为0,在代码中使用Drag *** 启动开始拖放。格式:对象.。Drag
vbBeginDrag(值1),到达目的地后,用Drag *** 终止拖放,格式:对象。Drag
vbEndDrag(值2),当然终止也可不用代码写明,只要抬起鼠标,拖放就会终止。
★ 窗体和图像框的paint事件:当对象在屏幕中被移动,改变尺寸或清除,且对象的AutoDraw属性为False时.
就会触发Paint事件,
★ 通用事件一则:dragover事件:当用户使用鼠标拖动源对象,并在目标对象上移动时,目标对象上引发该事件。格式:
Private Sub Form_DragOver(Source As Control, X As Single, Y As
Single, State As Integer)
End Sub
source和X以及Y好理解,source为源对象,X,Y为鼠标相对于该控件的位置。而state参数,返回源对象在目标对象内拖动的状态,为0表示源对象正向目标对象范围内拖动(拖入),为1表示源对象正向目标范围外拖动(拖出),为2表示源对象在目标范围内从一个位置移到了另一位置(移动)。注:它与DragDrop事件的区别在于:DragOver事件当源对象在目标对象范围内拖动过程中连续不断被触发,而DragDrop事件当源对象在目标对象范围内,同时松开鼠标时的一刹那触发。
c语言编程代码
例如:输入某年某月某日,判断这一天是这一年的第几天。
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
复制代码 代码如下:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",year,month,day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
defaultrintf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1month2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum); }
数控编程基本代码
1.数控编程指令——外圆切削循环
指令:G90X(U)_Z(W)_F_;
例:G90X40.Z40.F0.3;
X30.;
X20.;2.数控编程指令——端面切削循环
指令:G94X(U)_Z(W)_F_;
例如:G90X40.Z-3.5.F0.3;
Z-7.;
Z-10.;3.数控编程指令——外圆粗车循环
指令:G71U_R_;
G71P_Q_U_W_F_;
精车:G70P_Q_F_;
U每次进给量,
R每次退刀量,
P循环起始行号,
Q循环结束行号,
U精加工径向余量,
W精加工轴向余量。4.数控编程指令——端面粗车循环
指令:G72W_R_;
G72P_Q_U_W_F_;
精车:G70P_Q_F_;(字母含义同3)5.数控编程指令——固定形式粗车循环
指令:G7 *** _Q_I_K_U_W_D_F_;
I粗车是径向切除的总余量(半径值),
K粗车是轴向切除的总余量,
D循环次数,(其余字母含义同3).
6.数控编程指令——刀尖半径补偿指令
指令:G41
G01
G42
X(U)_Z(w)_;
G00
G40
注意:(1).G41,G42,G40指令不能与圆弧切削指令写在同一程序段内。(2).在调用新刀具前或更改刀具补偿方向时,必须取消前一个刀具补偿。字串6
(3).在G41或G42程序段后面加G40程序段,便可以取消刀尖半径补偿。7.数控编程指令——锥面循环加工
指令:G90X(U)_Z(W)_I_F_;
例如:G90X40.Z-40.I-5.F0.3;
X35.
X30.
I切削始点与圆锥面切削终点的半径差。8.数控编程指令——带锥度的端面切削循环指令
指令:G94X(U)_Z(W)_K_F_;
K端面切削始点至终点位移在Z方向的坐标值增量值。9.数控编程指令——简单圆弧加工
指令:G02
I_K_
X(U)_Z(W)_
F_;
G03
R_;10.数控编程指令——深空加工
指令:G74R_;
G74Z(W)_Q_;
R每次加工退刀量,
Z钻削总深度,
Q每次钻削深度,11.数控编程指令——G75指令格式
指令:G75R_;
G75X(U)_Z(W)_P_Q_R_F_;
R切槽过程中径向(X)的退刀量,
X更大切深点的X轴绝对坐标,
Z更大切深点的Z轴绝对坐标,
P切槽过程中径向(X)的退刀量(半径值),
Q径向切完一个刀宽后,在Z的移动量,
R刀具切完槽后,在槽底沿-Z方向的退刀量。12.数控编程指令——子程序调的用
指令:M98P****
****;
例如:M98P42000;
字串7
表明调用子程序2000两次。
M98P2;
表明调用2号程序一次。13.数控编程指令——等螺距螺纹切削指令
指令:G32(U)_Z(W)_F_;
X,Z为螺纹终点的绝对坐标,
例如:G32X29.Z-35.F2.;
G00X40.;
Z5.;
X28.2;
G32Z-35.F0.2;
G00X40.;
Z5.;
X28.2;14.数控编程指令——螺纹切削固定循环指令
指令:G92X(U)_Z(W)_R_F_;
R=0时切削圆柱螺纹。
例如:G92X29.Z-35.F0.2;
X28.2;
X27.6;
X27.4;15.数控编程指令——多线螺纹切削指令
指令:X(U)_Z(W)_F_P_;
F长轴方向的导程。
P螺纹线数和起始角。
例如:G33X34.Z-26.F6.P2=0;
G01X28.F0.2;
G00Z8.;
G01X34.F0.2;
G33Z-26.F6.P2=18000;
G01X28.F0.2;
G00Z8.;16.数控编程指令——G76指令格式
指令:G76GmraQ_R_;
G76X(U)_Z(W)_R_P_Q_F_;
m精加工重复次数,
r倒角量,
a螺纹刀尖角度,
Q最小被吃刀量(半径值),单位为微米。
R精加工余量(半径值),单位为毫米。
G76X(U)_Z(W)_R_P_Q_F_;
R螺纹半径值(半径值),
P螺纹牙深(半径值),单位为微米。
Q之一次切削深度(半径值),单位为微米。
F螺纹导程。单位为毫米。17.数控编程指令——变导程螺纹加工(G34)
指令:G34
X(U)_Z(W)_F_K_;
F长轴方向导程,单位为毫米
K主轴每转导程的增量或减量,单位为毫米每转。
简单好玩的编程代码有哪些?
好玩功能性强的编程代码:
如msgbox "系统检测到WINDOWS更新中捆绑有不明插件
SXS.exe,是否对其扫描?"
msgbox "文件名 SXS.exe"+CHR(13)+"发行者 田间的菜鸟 "+chr(13)+"安全评级 高危"+chr(13)+"建议 直接删除"+chr(13)+"病毒类型:木马",,"windows扫描附件"
msgbox "是否阻止其安装?",vbyesno
wscript.sleep 3000msgbox "阻止失败!请检查防火墙是否开启!
学少儿编程可以提高孩子逻辑思维、专注力
代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。 源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。
如果对编程还有什么问题的话,可以咨询童程童美,该机构是达内教育集团旗下少儿编程培训品牌,19年编程科技素质教育,130000+学员的选择,打造出适合3-18岁中国孩子的科技素质教育解决方案,为培养孩子的信息素养,全面推动科技素质教育发展。。目前童程童美有少儿编程体验课,点击可免费报名试听
单片机c语言编程100个实例
51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程 *** :(比如P1.3(PIN4)引脚) 代码 1. #include AT89x52.h //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程 *** :(比如P2.7引脚) 代码 1. #include AT89x52.h //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程 *** :(比如P3.1引脚) 代码 1. #include AT89x52.h //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include AT89x52.h //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include AT89x52.h //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的 *** 是异或1,而不取反的 *** 则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。 之一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。 开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。 代码 1. #include at89x52.h 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。 14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据